13 #pragma warning(disable: 4786)
14 #pragma warning(disable: 4100)
16 #define CRTDBG_MAP_ALLOC
66 uint GetMaxSize()
const;
69 uint GetElemSize()
const;
73 E&
GetAt(uint i)
const;
74 bool SetAt(uint i, E);
78 E& operator[](uint i);
79 const E& operator[](uint i)
const;
84 int Find(
const E&)
const;
88 virtual bool Grow(uint);
207 int n = growto - m_MaxSize;
215 m_Data = (E*) malloc(
sizeof(E) * growto);
222 if (growto < 4) growto = 4;
224 m_Data = (E*) malloc(
sizeof(E) * (growto));
225 memcpy(m_Data, old_data,
sizeof(E) * m_Size);
262 {
return m_MaxSize; }
265 {
return sizeof(E); }
329 if (n <= i) n = i + 1;
350 {
return m_Data[i]; }
353 {
return m_Data[i]; }
356 {
return m_Data[i]; }
386 for (uint i = 0; i < m_Size; ++i)
418 if (!SetAt(index, v))
449 if ((i < 0) || (i >= m_Size))
452 shuffle = m_Size - (i + n);
454 memcpy(elem, elem + n,
sizeof(E) * shuffle);
481 int n = m_Size + src.m_Size;
485 for (uint i = 0; i < src.m_Size; ++i)
486 m_Data[m_Size + i] = src.m_Data[i];
488 m_Size += src.m_Size;
502 DestructItems(0, m_Size - 1);
514 {
return m_Size == 0; }