STL allcator

空间配置器标准接口

1
2
3
4
5
6
7
8
allocator::value_type
allocator::pointer
allocator::const_pointer
allocator::reference
allocator::const_reference
allocator::size_type
allocator::difference_type
allocator::rebind // class rebind<U>拥有唯一成员other;是一个typedef,代表allocator<U>

构造函数和析构函数,由于没有数据成员,不需要被初始化,但是必须被定义。

1
2
3
4
allocator::allocator()
allocator::allocator(const allocator&)
template <class U> allocator::allocator(const allocator<U>&)//泛化的copy constructor
allocator::~allocator()

1
pointer allocator::address(reference x) const

返回某个对象的地址,a.address(x)相当于&x

1
const_pointer allocator::address(const_reference x) const

返回某的const对象的地址,a.address(x)相当于&x

1
pointer allocator::allocate(size_type n, const void*=0)

配置空间,足以存储n个T对象。第一个参数是个提示,实现上可能利用它来增进区域性(locality),或者完全忽略之。

1
size_type allocator::max_size() const

返回可成功配置的最大量

1
void allocator::deallocate(pointer p, size_type n)

归还之前配置的空间

1
void allocator::construct(pointer p, const T& x)

等同于new((void*) p) T(x)

1
void allocator::destory(pointer p)

等同于p->~T(x)