66 T* APIENTRY
Get (SIZE_T index)
const
68 if (index >=
_size)
return (T*)NULL;
83 VOID APIENTRY
Add (T& item)
87 CopyMemory (&
_array[
_size], &item,
sizeof (LPVOID));
95 VOID APIENTRY
Insert (T& item, SIZE_T position)
97 if (position >
_size)
return;
104 (
_size - position) *
sizeof (T));
105 ZeroMemory (&
_array[position],
sizeof (T));
106 CopyMemory (&
_array[position], &item,
sizeof (LPVOID));
116 if (position >=
_size)
return;
120 (&
_array[position])->~T ();
125 (
_size - position) *
sizeof (T));
137 CopyMemory (newArray,
_array, (
sizeof (T) *
_size));
141 if (heapMemory != NULL) heapMemory->
Compact ();
158 for (SIZE_T i = 0; i <
Size (); i++)
180 for (SIZE_T i = 0; i <
_size; i++)
182 CopyMemory (&
_array[i], &base.
_array[i], sizeof (LPVOID));
194 for (SIZE_T i = 0; i < base.
_size; i++)
234 const T* APIENTRY
end ()
const
malloc/realloc/freeを使った標準的なメモリクラス
SIZE_T APIENTRY Compact() const
取得したヒープ領域の整理
T *APIENTRY Get(SIZE_T index) const
指定したインデックスの値を取得
VOID APIENTRY Reserve(SIZE_T size)
事前に空の領域を取得
T *APIENTRY end()
for(auto n : array){}を使用できるようにするインターフェース
const T *APIENTRY end() const
for(auto& n : array){}を使用できるようにするインターフェース
VOID APIENTRY Extend(SIZE_T size=1)
VOID APIENTRY operator+=(const Array< T > &base)
同じ型のArray<T>を末尾に追加
VOID APIENTRY operator=(const Array< T > &base)
同じ型のArray<T>をコピー
T *APIENTRY begin()
for(auto n : array){}を使用できるようにするインターフェース
VOID APIENTRY Clear()
領域の開放
VOID APIENTRY Remove(SIZE_T position)
Array<T>から値を削除
VOID APIENTRY Shurink()
削除を繰り返すことで発生するリザーブ領域を解放
VOID APIENTRY Insert(T &item, SIZE_T position)
Array<T>へ値を挿入
const T *APIENTRY begin() const
for(auto& n : array){}を使用できるようにするインターフェース
VOID APIENTRY Add(T &item)
Array<T>へ値を追加
T *APIENTRY operator[](SIZE_T index) const
Array<T>を配列操作で取得
SIZE_T APIENTRY Size() const
サイズを取得
virtual LPVOID APIENTRY Allocate(SIZE_T bytes, DWORD dwFlags=MEM_ZERO)=0
メモリの取得
virtual LPVOID APIENTRY Reallocate(LPVOID lpvMem, SIZE_T bytes, DWORD dwFlags=MEM_ZERO)=0
取得メモリの拡大
virtual BOOL APIENTRY Free(LPVOID lpvMem)=0
メモリの返却