分配器
分配器allocators
先谈operator new()和malloc()
operator new中会调用malloc
malloc分配内存。
所要求的空间是size大小,但是malloc在申请内存时会额外申请一些别的空间。
C++的容器分配内存使用的是allocator
vc6所附的标准库,其allocatoe实现如下()微软的ide
BC5所附的标准库,其allocator的实现如下(<memory.stl>)
G2.9所附的标准库,其allocator实现如下(<defalloc.h>)LINUX平台下使用的ide
G2.9 所附的标准库,其alloc的实现如下
16条链表,以8的倍数增长。所有的容器需要内存的时候都跟这个来拿内存。
把类型装换成8的倍数,然后分配相应的内存。
G4.9STL对allocator
G4.9所附标准库,把G2.9的替换了,其allocator实现如下:
G4.9分配有一个父类
G2.9的alloca改名成了——pool_alloc