目录
按数据结构可序列式容器、关联式容器;

一,序列式容器
- 是STL的一类容器,可提供按顺序存储元素,即元素顺序与插入元素顺序相同;
- 其底层为线性数据结构;
常见序列式容器
- vector,类似动态数组容器,可快速尾插和尾删,支持随机访问(即可通过下标访问);
- list,一种双向链表,可在任意位置插入或删除,不支持随机访问,只能通过迭代器访问;
- forward_list,一种链表容器,与list不同,只能头插和头删,且只支持单向遍历;
- deque,一种双开口的“连续”空间的数据结构,支持头尾插入和删除,对于大量插入删除操作效率较高;
二,关联式容器
- 是STL的一类容器,可看作是键值对<key、value>的集合,其中每个元素都有一个唯一对应的值;
- 这类容器都提供快速查找、插入、删除元素的操作,且具有较好的时间复杂度;
- 其底层为树形结构,可快速查找和访问,不支持随机访问;
常见关联式容器
- map,元素按照键的升序进行排序,其中每个元素都是一个pair对象;
- multimap,类似map,但允许键重复,键相同按照插入顺序保存;
- set,元素按照键的升序进行排序,其中每个元素都是键,不允许重复;
- multiset,类似set,但允许键重复,键相同按照插入顺序保存;
此四种容器的共同点,是使用平衡搜索树(即红黑树)作为底层结构,容器中的元素是一个有序的序列;
三,键值对
- 用来表示具有一一对应关系的一种结构,该结构中一般只包含两个成员变量key(键值)/value(与key对应的信息),如英汉互译字典;
template <class T1, class T2>
struct pair
{
typedef T1 first_type;
typedef T2 second_type;
T1 first;
T2 second;
pair()
:first(T1())
,second(T2())
{}
pair(const T1& a, const T2& b)
:first(a)
,second(b)
{}
};
C++ STL容器分类详解

文章介绍了STL中的两类主要容器——序列式容器和关联式容器。序列式容器包括vector、list、deque和forward_list,它们按插入顺序存储元素,不支持快速查找,但提供随机访问。关联式容器如map、multimap、set和multiset则基于键值对,提供快速查找、插入和删除,使用红黑树作为底层结构,元素有序排列。
671

被折叠的 条评论
为什么被折叠?



