summaryrefslogtreecommitdiff
path: root/common/array.h
diff options
context:
space:
mode:
authorleo2000-11-12 15:07:20 +0000
committerleo2000-11-12 15:07:20 +0000
commit2a3ef73170c04bee82dd9750e4b32422d88c167f (patch)
treeea6ecb225d527cc233459e0ed5d644d1a367ddde /common/array.h
parent8ece9c427961e0b4c8f0729dc02e0f3aaea16bc6 (diff)
Simple pointer array class
git-svn-id: http://svn.leocad.org/trunk@158 c7d43263-9d01-0410-8a33-9dba5d9f93d6
Diffstat (limited to 'common/array.h')
-rwxr-xr-xcommon/array.h32
1 files changed, 32 insertions, 0 deletions
diff --git a/common/array.h b/common/array.h
new file mode 100755
index 0000000..bb235a9
--- /dev/null
+++ b/common/array.h
@@ -0,0 +1,32 @@
+#ifndef _ARRAY_H_
+#define _ARRAY_H_
+
+template <class T>
+class PtrArray
+{
+ public:
+ PtrArray (unsigned long nSize = 0);
+ ~PtrArray ();
+
+ void SetSize (unsigned long nSize);
+ unsigned long GetSize () const
+ { return m_nLength; }
+
+ T* RemoveIndex (unsigned long nIndex);
+ T* RemovePointer (T* pObj);
+ void Add (T* pObj);
+
+ T* operator [](unsigned long nIndex) const
+ { return m_pData[nIndex]; }
+
+ protected:
+ void Expand (unsigned long nGrow);
+
+ T** m_pData;
+ unsigned long m_nLength;
+ unsigned long m_nAlloc;
+};
+
+#include "array.cpp"
+
+#endif // _ARRAY_H_