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
- 概述:
- 迭代器:
- 內存管理: