C++_STL源碼閱讀:Allocator & Iterator


Allocator:

這裏的目標不一定是內存,是泛指的“空間”,比如硬盤等介質;

SGI實現了一個兩層的分配器,

  • 第一層級:直接使用malloc和free;其實這個操作成本很高;
  • 第二層級:視情況,如果分配塊>128bytes,則調用第一層級分配器;否則,採用memeory pool的碎片內存管理方式;比如維護16個自由鏈表free lists,負責16種小型區塊的次分配能力;內存池不足的時候,轉調第一層級分配器;


Iterator:

型別:

  • value type
  • difference type
  • pointer
  • reference
  • iterator category

類型:

  • input
  • output
  • forward
  • bi-directional
  • random access

關係如下:



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章