00001 00004 template<typename T> 00005 class Array : 00006 public List<T> { 00007 public: 00008 Array(); 00009 Array(uint size); 00010 Array(uint size, uint num, ...); 00011 virtual ~Array(void); 00012 00013 bool init(uint size); 00014 void uninit(void); 00015 00016 bool add(T data); 00017 bool insert(uint index, T data); 00018 bool replace(T oldItem, T newItem); 00019 bool replaceIndex(uint index, T newItem); 00020 void remove(T data); 00021 void removeIndex(uint index); 00022 void clear(void); 00023 T get(uint index); 00024 T& getRef(uint index); 00025 void set(uint index, T data); 00026 00027 uint size(void); 00028 uint length(void); 00029 uint used(void); 00030 bool has(T data, uint* out = 0); 00031 bool resize(uint size); 00032 00033 T operator [] (uint index); 00034 const T operator [] (uint index) const; 00035 protected: 00036 uint len, last; 00037 T* array; 00038 };