STL源码剖析(1):分配器

空间配置与释放:
vc++、CB适配器:allocator
调用了operartor new和operator delete,底层调用的是malloc和free,除了需要存储数据的内存还需要额外的开销(cookie表示元素大小,消耗8个字节),因此不适合小内存的分配

gcc\g++ alloc配置器:
设计了双级配置器:
1)当配置区>128bytes,使用一级适配器,直接调用malloc 和 free
2)二级分配器:先使用malloc得到内存池,将内存池作为分配的空间,根据容器元素大小将指定链表作为存储内存,若内存池不足则使用一级分配器
STL源码剖析(1):分配器

设计16个链表,第i个链表负责元素大小为8*(i+1) 字节的内存

一级空间分配器:
STL源码剖析(1):分配器
二级空间适配器:
STL源码剖析(1):分配器