C++中各种容器特点总结
分为顺序容器和关联容器。
顺序容器包括
1、vector
内部数据结构:数组,可随机访问元素,在末尾增加或删除元素与元素数目无关,在其
他部分增加或删除元素随着元素数目呈线性变化。可通过reserve提前分配足够的内存。
2、deque
双端队列,按页/块来分配存储,每页/块包含固定的数目的元素。支持随机访问,在首、尾插入
元素效率与元素数目无关,在中间插入或删除与元素数目呈线性关系。
3、list
双向链表,不能随机访问一个元素,可双向遍历,在任意位置插入、删除所需时间都为常量。
因此适合频繁的插入或删除。
4、forward_list
单向链表,单向顺序访问。
5、array
固定大小数组,支持随机访问,不能添加或删除元素。
6、string
与vector类似,专门用于保持字符,在尾部插入/删除快。
关联容器包括两种
(1)按关键字有序保存元素
1、map
元素关键字的升序排列。
2、set
关键字即值
3、multimap
关键字可重复出现的map
4、multiset
关键字可重复出现的set
(2)无序集合
1、unordered_map
用哈希函数组织的map
2、unordered_set
用哈希函数组织的set
3、unordered_multimap
4、unordered_multiset
更多参考:http://blog.csdn.net/liangjingbo/article/details/2219581