00001 #ifndef INDEXLIST_HPP
00002 #define INDEXLIST_HPP
00003
00014
00015 enum {indexlist_add_allocsize = 3};
00016
00018 class IndexList {
00019 unsigned alloc_size;
00020 unsigned current_size;
00021 unsigned *arr;
00022 unsigned first_not_listed_index;
00023
00024 void Resize(unsigned need_size);
00025 public:
00027 IndexList(unsigned allocsize = 0);
00029 unsigned GetFirstNotListed() const;
00031 void AddIndex(unsigned index);
00033 unsigned GetCurrentSize() const;
00035 unsigned operator[](unsigned i) const;
00037 ~IndexList();
00038 };
00039
00040
00041 #endif