1.空间配置器设计思想剖析
容器最终是要放到内存中去的,而有三种内存的组合方式,数组式、链表式,数组链表式,而空间配置器就是对这三种方式进行管理,针对不同的容器采用不同的内存分布方案
2.空间配置器allocator operater new和placement new原理
(1)operator new:分配内存
默认情况下,new失败即分配内存失败会抛出一个bad_alloc的异常
//operator new是全局的new
void* operator new(size_t size)
{
}
//返回的是void*,在程序设计中会进行强制类型转换
如:
class Test{};
Test*p=new(sizeof(Test)*10);//实际上此句调用的是(Test*)::operator new