00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __UT_SparseArray_h__
00021 #define __UT_SparseArray_h__
00022
00023 #include "UT_API.h"
00024 #include "UT_PtrArray.h"
00025
00026 class ut_SparseEntry;
00027
00028 class UT_API UT_SparseArray {
00029 public:
00030 UT_SparseArray();
00031 ~UT_SparseArray();
00032
00033 int entries() const { return (int)myArray.entries(); }
00034 void append(int index, void *data);
00035 void remove(int index);
00036
00037
00038
00039 void *getRawEntry(int raw_index, int &index);
00040
00041
00042
00043
00044 void *operator()(unsigned int i);
00045 const void *operator()(unsigned int i) const;
00046 void *operator[](unsigned int i) { return operator()(i); }
00047 const void *operator[](unsigned int i) const { return operator()(i); }
00048
00049
00050
00051 int find(int index) const;
00052 private:
00053
00054 UT_PtrArray<ut_SparseEntry *> myArray;
00055 };
00056
00057 #endif