次の方法で共有


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 newoperator 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
記憶域から割り当てを解除されるオブジェクトの数。

解説

関連項目

<allocators>