freelist クラス
メモリ ブロックの一覧を管理します。
構文
template <std::size_t Sz, class Max>
class freelist : public Max
パラメーター
Sz
割り当てられる配列内の要素の数。
Max (最大値)
フリー リストに格納される要素の最大数を示す最大クラス。 最大クラスは、max_none、max_unbounded、max_fixed_size、max_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 が指すメモリ ブロックをリストの先頭に追加します。