次の方法で共有


freelist クラス

メモリ ブロックの一覧を管理します。

構文

template <std::size_t Sz, class Max>
class freelist : public Max

パラメーター

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

Max (最大値)
フリー リストに格納される要素の最大数を示す最大クラス。 最大クラスは、max_nonemax_unboundedmax_fixed_sizemax_variable_size のいずれかにすることができます。

解説

このクラス テンプレートは、サイズ Sz のメモリ ブロックのリストを管理します。リストの最大サイズは Max に渡される最大クラスによって決まります。

コンストラクター

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

メンバー関数

メンバー関数 説明
pop フリー リストから最初のメモリ ブロックを削除します。
push メモリ ブロックをリストに追加します。

要件

ヘッダー: <allocators>

名前空間: stdext

freelist::freelist

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

freelist();

解説

freelist::p op

フリー リストから最初のメモリ ブロックを削除します。

void *pop();

戻り値

一覧から削除するメモリ ブロックへのポインターを返します。

解説

一覧が空の場合、メンバー関数は NULL を返します。 それ以外の場合は、空き一覧から最初のメモリ ブロックを削除します。

freelist::p ush

メモリ ブロックをリストに追加します。

bool push(void* ptr);

パラメーター

ptr
フリー リストに追加するメモリ ブロックへのポインター。

戻り値

最大クラスの full 関数が false を返す場合は true、それ以外の場合、push 関数が false を返します。

解説

最大クラスの full 関数が false を返す場合、このメンバー関数は、ptr が指すメモリ ブロックをリストの先頭に追加します。

関連項目

<allocators>