管理内存块列表。
语法
template <std::size_t Sz, class Max>
class freelist : public Max
参数
Sz
数组中要分配的元素数目。
最大
max 类表示可存储在空闲列表中的元素的最大数量。 max 类可以是 max_none、max_unbounded、max_fixed_size 或 max_variable_size。
注解
这个类模板管理大小为 Sz 的内存块的列表,该列表的最大长度由传入 Max 中的 max 类确定。
构造函数
| 构造函数 | 说明 |
|---|---|
| freelist | 构造 freelist 类型的对象。 |
成员函数
| 成员函数 | 说明 |
|---|---|
| 流行 | 从空闲列表中删除第一个内存块。 |
| 推送 | 向列表中添加内存块。 |
要求
标头:allocators<>
命名空间: stdext
freelist::freelist
构造 freelist 类型的对象。
freelist();
freelist::p op
从空闲列表中删除第一个内存块。
void *pop();
返回值
返回指向从列表中删除的内存块的指针。
注解
如果列表为空,则成员函数将返回 NULL。 否则,成员函数从列表中删除第一个内存块。
freelist::p ush
向列表中添加内存块。
bool push(void* ptr);
参数
ptr
指向要添加到空闲列表的内存块的指针。
返回值
如果 max 类的 true 函数返回 full,则为 false,否则 push 函数返回 false。
注解
如果 max 类的 full 函数返回 false,则此成员函数将 ptr 指向的内存块添加到列表表头。