空间配置器 allocator

来源:百度文库 编辑:神马文学网 时间:2024/03/29 21:00:39
【读书笔记-STL源码剖析】看书学习中,简单摘些要点。有理解错的,希望大家指出。

SGI定义了符合部分标准的配置器allocator,但不建议使用。
一般用其特殊的配置器 std::alloc 。

SGI设计了双层级配置器。
第一级配置器直接使用malloc()和free();
第二级配置器视情况使用不同的策略。1.维护16个自由链表,负责16种小型区块。内存池(memory pool)由malloc()配置而得。
需求区块大于128bytes时用第一级,否则用第二级。

内存池,chunk_alloc() 需要好好看看。

STL定义了5个全局函数,作用于未初始化空间上:
construct(),destroy()     提到的 “判断元素的数值型别”,还不太理解。
uninitiated_copy(),uninitiated_fill(),uninitiated_fill_n()。这几个函数感觉差不多