定义分配和释放单个大小内存块的块分配器。
语法
template <std::size_t Sz, std::size_t Nelts = 20>
class cache_chunklist
参数
Sz
数组中要分配的元素数目。
备注
这个类模板使用 operator new 分配原始内存的区块,并对块进行细分以在必要时为内存块分配存储空间;其将释放的内存块存储在每个区块的独立释放列表中,并在未使用区块的任何内存块时使用 operator delete 释放区块。
每个内存块保留 Sz 个字节的可用内存和指向其所属于的区块的指针。 每个区块保留 Nelts 内存块、三个指针、一个 int 以及 operator new 和 operator delete 所需的数据。
构造函数
| 构造函数 | 说明 |
|---|---|
| cache_chunklist | 构造 cache_chunklist 类型的对象。 |
成员函数
| 成员函数 | 说明 |
|---|---|
| 分配 | 分配内存块。 |
| deallocate | 从指定位置开始从存储中释放指定数量的的对象。 |
要求
标头:allocators<>
命名空间: stdext
cache_chunklist::allocate
分配内存块。
void *allocate(std::size_t count);
参数
计数
数组中要分配的元素数目。
返回值
指向已分配对象的指针。
cache_chunklist::cache_chunklist
构造 cache_chunklist 类型的对象。
cache_chunklist();
cache_chunklist::d eallocate
从指定位置开始从存储中释放指定数量的的对象。
void deallocate(void* ptr, std::size_t count);
参数
ptr
指向要从存储中释放的第一个对象的指针。
计数
要从存储中释放的对象数量。