Ch2 空间配置器(allocator) ---笔记

Posted ATM

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ch2 空间配置器(allocator) ---笔记相关的知识,希望对你有一定的参考价值。

2.1 空间配置器的标准接口

allocator的必要接口:

allocator::value_type
allocator::pointer
allocator::const_pointer
allocator::reference
allocator::const_reference
allocator::size_type
allocator::difference_type

//一个嵌套的class template(类模板),
//class rebind<U>拥有唯一成员other(一个typedef,代表allocator<U>)
allocator::rebind

//默认的构造函数
allocator::allocator()

//copy constructor(复制构造器)
allocator::allocator(const allocator&)

//泛化的copy constructor
template <class U>allocator::allocator(const allocator<U>&)

//解析函数
allocator::~allocator()

//返回某个对象的地址。算式a.address(x)等同于&x
pointer allocator::address(reference x) cosnt

//返回某个cosnt对象的地址。算式a.address(x)等同于&x
const_pointer allocator::address(const_reference x) const

//配置空间,足以存储n个T对象。
//第二个参数是提示。实现上可能会利用它来增进区域性(locality),或完全忽略之
pointer allocator::allocate(size_type n,const void*=0)

//归还先前配置的空间
void allocator::deallocate(pointer p,size_type n)

//返回可成功配置的最大量
size_type allocator::max_size() const

//等同于new((void*) p) T(x)
void allocator::construct(pointer p,const T& x)

//等同于p->~T()
void allocator::destroy(pointer p)

2.2 具备次配置力(sub-allocation)的SGI空间配置器

以上是关于Ch2 空间配置器(allocator) ---笔记的主要内容,如果未能解决你的问题,请参考以下文章

STL源代码分析(ch2 内存分配)分配策略

STL源码剖析 — 空间配置器(allocator)

STL 之 空间配置器(allocator)

STL 之 空间配置器(allocator)

STL之空间配置器allocator

std::alloc 二级配置器