cache_suballoc クラス
1 つのサイズのメモリ ブロックを割り当ておよび割り当て解除するブロック アロケーターを定義します。
構文
template <std::size_t Sz, size_t Nelts = 20>
class cache_suballoc
パラメーター
Sz
割り当てられる配列内の要素の数。
解説
cache_suballoc クラス テンプレートは、freelist<sizeof(Type), max_unbounded>
を使用して、割り当てが解除されたメモリ ブロックを無限の長さのフリー リストに格納し、フリー リストが空になると、operator new で割り当てられた大きいチャンクからメモリ ブロックをサブ割り当てします。
各チャンクには Sz * Nelts
バイトの使用可能メモリと、operator new と operator delete で必要なデータが保持されます。 割り当てたチャンクが解放されることはありません。
コンストラクター
コンストラクター | 説明 |
---|---|
cache_suballoc | cache_suballoc 型のオブジェクトを構築します。 |
メンバー関数
メンバー関数 | 説明 |
---|---|
allocate | メモリのブロックを割り当てます。 |
deallocate | 指定した位置で始まるストレージから、指定された数のオブジェクトを解放します。 |
要件
ヘッダー: <allocators>
名前空間: stdext
cache_suballoc::allocate
メモリのブロックを割り当てます。
void *allocate(std::size_t count);
パラメーター
count
割り当てられる配列内の要素の数。
戻り値
割り当てられたオブジェクトへのポインター。
解説
cache_suballoc::cache_suballoc
cache_suballoc
型のオブジェクトを構築します。
cache_suballoc();
解説
cache_suballoc::d eallocate
指定した位置で始まるストレージから、指定された数のオブジェクトを解放します。
void deallocate(void* ptr, std::size_t count);
パラメーター
ptr
記憶域から割り当てを解除される最初のオブジェクトへのポインター。
count
記憶域から割り当てを解除されるオブジェクトの数。