容器分类:
容器总体上可分为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