容器分類:
容器總體上可分爲3種:序列式容器、關聯式容器、無序容器。
1、序列式容器 sequence containers:
Array,C++11,就是對數組的包裝,大小固定;
Vector,內存不夠可以在後邊自動增長;
Deque,雙向隊列,兩端可進可出,雙向都可動態擴容,queue和stack都是Deque的適配器,技術上都是Deque,不提供Iterator。queue允許在一端插入,另一端刪除,stack允許在一端插入和刪除。
List:雙向鏈表;
Forward-List(C++11),單向鏈表
2、關聯式容器 associative containers:
採用key-value結構,有序,適合用於快速查找。
set/multiset,底層紅黑樹做的,set的key和vaule是一個,multi表示元素可以重複:
map/multimap,底層紅黑樹做的,map的每個節點有key和vaule,multi表示key可以重複
3、無序容器 unordered containers:
C++11新出的容器,使用HashTable做的,HashTable是數組+鏈表的組合
Unordered set/multiet:
Unordered map/multimap