初识C++ STL之容器适配器
标准模板库(STL)是一个容器类模板库和算法库。利用STL,能够很容易实现许多标准的容器(如堆栈、链表和队列)并以各种方式操作这些容器。
STL支持多种容器类型,包括序列式容器(sequence container)和关联式容器(associative container)。迭代器(iterator)对象的层次结构管理对容器的访问。
关联式容器:
集合(set)容器拥有的对象都有键值,它不允许有重复的键值。
多重集合(multiset)容器拥有的对象都有偶键值,它允许有重复的键值。
映射(map)容器拥有的对象都有键值,并且每一个键值对象都与另一个参数化类型对象关联,该容器不允许有重复的键值。
多重映射(multimap)容器拥有的对象都有键值,并且每一个键值对象都与另一个参数化类型对象关联,该容器允许有重复的键值。
序列式容器
std::vector 一种随机访问的数组类型,提供了对数组元素进行快速随机的访问以及在序列尾部进行快速、随机的插入和删除操作的功能。
std::deque 一种随机访问的数组理性,提供了在序列两端快速进行插入和删除操作的功能。
std::deque 对象可在需要的时候修改其自身的大小。
std::list 一种不支持随机访问的数组类型。因为STL以双向链表的方式实现std::list对象,所以访问链表元素要用指针从链表的某个端点开始。插入和删除操作所花费的时间是固定的也就是说,std::list对象插入和删除一个元素所需要的时间与该元素在链表中的位置无关。
std::queue 适配式容器类型,它用std::deque或std::list对象创建了一个先进先出的(FIFO)容器
std::priority_queue 适配器容器类型,它用std::vector或std::deque 对象创建一个排序队列。
std::stack 适配器容器类型,它用std::vector,std::deque或std::list对象创建一个先进后出的(FILO)容器。