Allocators
标准模板库 (STL) 用于将程序处理元素存储的分配和解除分配容器的。 所有 STL 容器具有类型 **allocator<Type>**模板参数,Type 容器表示元素的类型。 例如,向量类的声明方式如下:
template <
class Type,
class Allocator = allocator<Type>
>
class vector
标准模板库 (STL) 为分配程序提供默认实现。 大多数情况下,此默认分配程序应该就足够了。 有关默认分配程序的更多信息,请参见 allocator 类。
编写自己分配程序
默认分配程序使用 new 和 delete 分配和释放内存。 如果要使用不同的内存分配方法,如使用共享内存,则必须创建自己分配程序。
所有分配程序使用与 STL 容器必须实现下面的类型定义:
const_pointer |
rebind |
const_reference |
reference |
difference_type |
size_type |
pointer |
value_type |
此外,所有分配程序使用与 STL 容器必须实现下面的方法:
构造函数 |
deallocate |
复制构造函数 |
destroy |
析构函数 |
max_size |
address |
operator== |
allocate |
operator!= |
construct |
有关这些类型定义和方法的更多信息,请参见 allocator 类。