《STL原始碼剖析》讀書筆記 四

2021-08-21 18:26:29 字數 447 閱讀 3966

在stl中,所有的元素都是存放在容器中,容器需要配置空間來儲存這些數值,因此需要用到空間配置器。

記憶體池

chunk_alloc的工作:從記憶體池中取空間給free-list使用。

if(記憶體池水量足夠)

直接調出20個區塊給free

list

else

if(記憶體池水量還足夠提供至少1個區塊)

調出實際能夠**的區塊

else

利用malloc()向堆heap中配置記憶體,為記憶體池注入源頭活水以應付需求。一般申請為需求量的兩倍,再加上隨著配置次數增加而越來越大的附加量

if(heap的空間也不夠)

malloc()失敗,呼叫第一級配置器中的out of memory處理機制,或許有機會釋放其記憶體拿來此處使用。如果可以就成功,否則發出bad_alloc異常。

STL原始碼剖析讀書筆記

一.stl提供六大元件,彼此可以組合套用。1.容器 containers 各種儲存結構,如vector list deque set map,用來存放資料。2.演算法 algorithme 各種常用演算法,如sort search copy erase等。3.迭代器 iterators 扮演容器與演...

《STL原始碼剖析》讀書筆記 三

hashtable 非標準 二叉搜尋樹 任何節點最多只能允許兩個子節點 平衡二叉樹 確保整棵樹的深度為o logn 左右子樹的高度最多差1 setmap multiset 特性與用法與set完全相同,唯一的差別在於它允許鍵值重複,插入的時候用的是rb tree的insert equal 而不是ins...

STL原始碼剖析 讀書筆記(1)

stl即c 標準模板庫,主要由六大部件組成,分別是 分配器 容器 迭代器 演算法 仿函式 介面卡。在講述這些主要部件之前,先來了解一下物件導向程式設計和泛型程式設計,物件導向程式設計 object oriented programming,簡稱oop 企圖將資料和處理資料的方法放到一起,例如,在c ...