次の方法で共有


cache_chunklist クラス

1 つのサイズのメモリ ブロックを割り当ておよび割り当て解除するブロック アロケーターを定義します。

構文

template <std::size_t Sz, std::size_t Nelts = 20>
class cache_chunklist

パラメーター

Sz
割り当てられる配列内の要素の数。

解説

このクラス テンプレートは operator new を使用して生メモリ チャンクを割り当て、必要なときにブロックをサブ割り当てしてメモリ ブロック用の記憶域を割り当てます。また、割り当てが解除されたメモリ ブロックをチャンクごとの独立したフリー リストに格納し、どのメモリ ブロックも使用中でないときは operator delete を使用してチャンクの割り当てを解除します。

各メモリ ブロックは、Sz バイトの使用可能なメモリと、そのブロックが属しているチャンクへのポインターを保持します。 各チャンクは、Nelts メモリ ブロック、3 つのポインター、int、operator newoperator delete に必要なデータを保持します。

コンストラクター

コンストラクター 説明
cache_chunklist cache_chunklist 型のオブジェクトを構築します。

メンバー関数

メンバー関数 説明
allocate メモリのブロックを割り当てます。
deallocate 指定した位置で始まるストレージから、指定された数のオブジェクトを解放します。

要件

ヘッダー: <allocators>

名前空間: stdext

cache_chunklist::allocate

メモリのブロックを割り当てます。

void *allocate(std::size_t count);

パラメーター

count
割り当てられる配列内の要素の数。

戻り値

割り当てられたオブジェクトへのポインター。

解説

cache_chunklist::cache_chunklist

cache_chunklist 型のオブジェクトを構築します。

cache_chunklist();

解説

cache_chunklist::d eallocate

指定した位置で始まるストレージから、指定された数のオブジェクトを解放します。

void deallocate(void* ptr, std::size_t count);

パラメーター

ptr
記憶域から割り当てを解除される最初のオブジェクトへのポインター。

count
記憶域から割り当てを解除されるオブジェクトの数。

解説

関連項目

<allocators>