cache_suballoc 类
定义分配和释放单个大小内存块的块分配器。
语法
template <std::size_t Sz, size_t Nelts = 20>
class cache_suballoc
参数
Sz
数组中要分配的元素数目。
备注
cache_suballoc 类模板使用 freelist<sizeof(Type), max_unbounded>
将释放的内存块存储在长度不受限制的可用列表中,并在可用列表为空时在 operator new 分配的较大区块中细分内存块。
每个区块保留 Sz * Nelts
个字节的可用内存以及 operator new 和 operator delete 所需的数据。 不会释放已分配的区块。
构造函数
构造函数 | 说明 |
---|---|
cache_suballoc | 构造 cache_suballoc 类型的对象。 |
成员函数
成员函数 | 说明 |
---|---|
allocate | 分配内存块。 |
deallocate | 从指定位置开始从存储中释放指定数量的的对象。 |
要求
标头:<allocators>
命名空间: stdext
cache_suballoc::allocate
分配内存块。
void *allocate(std::size_t count);
参数
count
数组中要分配的元素数目。
返回值
指向已分配对象的指针。
注解
cache_suballoc::cache_suballoc
构造 cache_suballoc
类型的对象。
cache_suballoc();
注解
cache_suballoc::deallocate
从指定位置开始从存储中释放指定数量的的对象。
void deallocate(void* ptr, std::size_t count);
参数
ptr
指向要从存储中释放的第一个对象的指针。
count
要从存储中释放的对象数量。