STL容器

vector

  • 概述: 連續(xù)數組, malloc開辟內存空間
  • 迭代器: 是一個對象指針
  • 內存管理:
    當添加新元素時, 內存不夠觸發(fā)內存重置操作, g++ 1.5倍, vs 2倍;
    刪除元素時, 不會自動縮小空間;

list

  • 概述: 雙向鏈表
  • 迭代器:
  • 內存管理:

deque

  • 概述: 分段連續(xù), 用一個map管理
  • 迭代器: 管理段內first, last, cur指針, 已經指向map
  • 內存管理:
    在頭部或者尾部最后會有一個備用空間, 添加元素沒有備用空間時觸發(fā)開辟新段;
    刪除時, 元素會移動,段內沒有元素時會釋放掉內存空間;

set

  • 概述: 底層是RB樹
  • 迭代器: 調用RB樹的const迭代器
  • 內存管理: 與list類似

muitiset

  • 概述:與set相同, 唯一的差別在于它語序鍵值重復, 因此他的插入操作采用的是底層機制RB-tree的insert_equal()而非insert_unique();
  • 迭代器:
  • 內存管理:

hash_set

  • 概述:
  • 迭代器:
  • 內存管理:

hash_multiset

  • 概述:
  • 迭代器:
  • 內存管理:

map

  • 概述: 節(jié)點存放pair的RB樹
  • 迭代器: 調用RB樹的迭代器
  • 內存管理:

multimap

  • 概述:與set相同, 唯一的差別在于它語序鍵值重復, 因此他的插入操作采用的是底層機制RB-tree的insert_equal()而非insert_unique();
  • 迭代器:
  • 內存管理:

hash_map

  • 概述:
  • 迭代器:
  • 內存管理:

hash_multimap

  • 概述:
  • 迭代器:
  • 內存管理:

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容