41 #ifndef _DYNAMIC_ARRAY_TEMPLATE_H_
42 #define _DYNAMIC_ARRAY_TEMPLATE_H_
65 m_nCurrentSize = nInitialSize;
66 m_pElements =
new T[m_nCurrentSize];
72 delete [] m_pElements;
79 if (m_nElements == m_nCurrentSize)
80 SetCurrentSize(m_nCurrentSize << 1);
82 m_pElements[m_nElements++] = element;
87 if (m_nElements == m_nCurrentSize)
88 SetCurrentSize(m_nCurrentSize << 1);
90 return m_pElements[m_nElements++];
95 if (nIndex < 0 || nIndex >= m_nElements)
98 for (
int i = nIndex; i < m_nElements - 1; i++)
99 m_pElements[i] = m_pElements[i + 1];
115 m_nCurrentSize = nSize;
117 delete [] m_pElements;
118 m_pElements =
new T[m_nCurrentSize];
126 inline const T&
operator[](
const int nElement)
const {
return m_pElements[nElement]; }
127 inline T&
operator[](
const int nElement) {
return m_pElements[nElement]; }
133 void SetCurrentSize(
int nCurrentSize)
135 if (nCurrentSize <= m_nCurrentSize)
137 printf(
"error: tried to set size smaller than current size in CDynamicArray::SetCurrentSize\n");
141 m_nCurrentSize = nCurrentSize;
143 T *pElements =
new T[nCurrentSize];
145 for (
int i = 0; i < m_nElements; i++)
146 pElements[i] = m_pElements[i];
148 delete [] m_pElements;
149 m_pElements = pElements;
const T & operator[](const int nElement) const
bool DeleteElement(int nIndex)
void ClearAndResize(int nSize)
int GetStorageSize() const
CDynamicArrayTemplate(int nInitialSize=10)
const T * GetElements() const
void AddElement(const T &element)
T & operator[](const int nElement)