vector
- 概述: 連續(xù)數(shù)組, malloc開(kāi)辟內(nèi)存空間
- 迭代器: 是一個(gè)對(duì)象指針
- 內(nèi)存管理:
當(dāng)添加新元素時(shí), 內(nèi)存不夠觸發(fā)內(nèi)存重置操作, g++ 1.5倍, vs 2倍;
刪除元素時(shí), 不會(huì)自動(dòng)縮小空間;
list
- 概述: 雙向鏈表
- 迭代器:
- 內(nèi)存管理:
deque
- 概述: 分段連續(xù), 用一個(gè)map管理
- 迭代器: 管理段內(nèi)first, last, cur指針, 已經(jīng)指向map
- 內(nèi)存管理:
在頭部或者尾部最后會(huì)有一個(gè)備用空間, 添加元素沒(méi)有備用空間時(shí)觸發(fā)開(kāi)辟新段;
刪除時(shí), 元素會(huì)移動(dòng),段內(nèi)沒(méi)有元素時(shí)會(huì)釋放掉內(nèi)存空間;
set
- 概述: 底層是RB樹(shù)
- 迭代器: 調(diào)用RB樹(shù)的const迭代器
- 內(nèi)存管理: 與list類似
muitiset
- 概述:與set相同, 唯一的差別在于它語(yǔ)序鍵值重復(fù), 因此他的插入操作采用的是底層機(jī)制RB-tree的insert_equal()而非insert_unique();
- 迭代器:
- 內(nèi)存管理:
hash_set
- 概述:
- 迭代器:
- 內(nèi)存管理:
hash_multiset
- 概述:
- 迭代器:
- 內(nèi)存管理:
map
- 概述: 節(jié)點(diǎn)存放pair的RB樹(shù)
- 迭代器: 調(diào)用RB樹(shù)的迭代器
- 內(nèi)存管理:
multimap
- 概述:與set相同, 唯一的差別在于它語(yǔ)序鍵值重復(fù), 因此他的插入操作采用的是底層機(jī)制RB-tree的insert_equal()而非insert_unique();
- 迭代器:
- 內(nèi)存管理:
hash_map
- 概述:
- 迭代器:
- 內(nèi)存管理:
hash_multimap
- 概述:
- 迭代器:
- 內(nèi)存管理: