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

原文地址:https://www.cnblogs.com/573177885qq/p/5971354.html