Share via


cache_freelist 类

定义分配和释放单个大小内存块的块分配器

语法

template <std::size_t Sz, class Max>
class cache_freelist

参数

Sz
数组中要分配的元素数目。

最大
表示释放列表的最大大小的 max 类。 其可以是 max_fixed_sizemax_nonemax_unboundedmax_variable_size

备注

cache_freelist 类模板维持大小为 Sz 的内存块释放列表。 当释放列表已满时,它使用 operator delete 释放内存块。 当释放列表为空时,它使用 operator new 分配新的内存块。 释放列表的最大大小由 Max 参数中传递的 max 类决定。

每个内存块保留 Sz 字节的可用内存以及 operator new 和 operator delete 所需的数据

构造函数

构造函数 说明
cache_freelist 构造 cache_freelist 类型的对象。

成员函数

成员函数 说明
allocate 分配内存块。
deallocate 从指定位置开始从存储中释放指定数量的的对象。

要求

标头:<allocators>

命名空间: stdext

cache_freelist::allocate

分配内存块。

void *allocate(std::size_t count);

参数

count
数组中要分配的元素数目。

返回值

指向已分配对象的指针。

备注

cache_freelist::cache_freelist

构造 cache_freelist 类型的对象。

cache_freelist();

备注

cache_freelist::deallocate

从指定位置开始从存储中释放指定数量的的对象。

void deallocate(void* ptr, std::size_t count);

参数

ptr
指向要从存储中释放的第一个对象的指针。

count
要从存储中释放的对象数量。

备注

另请参阅

<allocators>