描述 max 类 对象,该对象将 freelist 对象限制为与已分配的内存块数大致成比例的最大长度。
语法
class max_variable_size
构造函数
| 构造函数 | 说明 |
|---|---|
| max_variable_size | 构造 max_variable_size 类型的对象。 |
成员函数
| 成员函数 | 说明 |
|---|---|
| allocated | 逐量增加已分配的内存块的计数。 |
| deallocated | 逐量减小已分配的内存块的计数。 |
| full | 返回一个值,该值指定是否应将更多的内存块添加到空闲列表。 |
| released | 逐量减小空闲列表上内存块的计数。 |
| saved | 逐量增加空闲列表上内存块的计数。 |
要求
标头:<allocators>
命名空间: stdext
max_variable_size::allocated
逐量增加已分配的内存块的计数。
void allocated(std::size_t _Nx = 1);
参数
_Nx
增量值。
备注
此成员函数将 _Nx 添加到存储值 _Nallocs。 每次调用成功后,cache_freelist::allocate 会将此成员函数调用到运算符 new。 参数 _Nx 是运算符 new 分配的区块中的内存块数。
max_variable_size::deallocated
逐量减小已分配的内存块的计数。
void deallocated(std::size_t _Nx = 1);
参数
_Nx
增量值。
备注
该成员函数从存储值 _Nallocs 中减去 _Nx。 每次调用后,cache_freelist::deallocate 会将此成员函数调用到运算符 delete。 参数 _Nx 是运算符 delete 取消分配的区块中的内存块数。
max_variable_size::full
返回一个值,该值指定是否应将更多的内存块添加到空闲列表。
bool full();
返回值
如果 _Nallocs / 16 + 16 <= _Nblocks,则为 true。
备注
此成员函数由 cache_freelist::deallocate 调用。 如果调用返回 true,则 deallocate 会将内存块放入空闲列表;如果它返回 false,则 deallocate 将调用运算符 delete 以取消分配块。
max_variable_size::max_variable_size
构造 max_variable_size 类型的对象。
max_variable_size();
备注
该构造函数将存储的值 _Nblocks 和 _Nallocs 初始化为零。
max_variable_size::released
逐量减小空闲列表上内存块的计数。
void released();
注解
此成员函数逐量减小存储值 _Nblocks。 每当当前 max 类的 released 成员函数从空闲列表中删除内存块时,cache_freelist::allocate 将对其进行调用。
max_variable_size::saved
逐量增加空闲列表上内存块的计数。
void saved();
备注
此成员函数逐量增加存储值 _Nblocks。 每当此成员函数向空闲列表放入内存块时,cache_freelist::deallocate 将对其进行调用。