首先要理解什么是容器,在C++中容器被定义为:在数据存储上,有一种对象类型,它可以持有其它对象或指向其它对象的指针,这种对象类型就叫做容器。简单来说

容器就是包含其他类的对象们的对象,当然这种(容器)对象中还包含了一系列处理其所包含对象以及要包含对象的处理。

 

其次介绍一下STL,它由容器算法迭代器组成;

STL可以实现方便容易的搜索数据或对数据排序等一系列的算法。

 

STL 对定义的通用容器分三类:顺序性容器关联式容器容器适配器

C++    STL常用容器浅析

 

顺序容器:一种各元素之间有顺序关系的线性表,是一种线性结构的可序群集。顺序性容器中的每个元素均有固定的位置,除非用删除或插入的操作改变这个位置。

这个位置和 元素本身无关,而和操作的时间和地点有关,顺序性容器不会根据元素的特点排序而是直接保存了元素操作时的逻辑顺序。比如我们一次性对一个顺序

性容器追加三 个元素,这三个元素在容器中的相对位置和追加时的逻辑次序是一致的。

关联容器:他和顺序容器不同关联容器是一种非线型的二叉树结构,各元素之间没有严格的物理顺序关系,也就是说元素在容器中并没有保存元素置 入容器先后的的逻辑顺序。但是关联式容器提供了另一种根据元素特点排序的功能,这样迭代器就能根据元素的特点“顺序地”获取元素。

顺序容器中常用的主要有vector,list,deque等。

容器适配器 :是一个比较抽象的概念, C++的 解释是:适配器是使一事物的行为类似于另一事物的行为的一种机制。容器适配器是让一种已存在的容器类型采用另一种不同的抽象类型的工作方式来实现的一种机 制。其实仅是发生了接口转换。那么你可以把它理解为容器的容器,它实质还是一个容器,只是他不依赖于具体的标准容器类型,可以理解是容器的模版。或者把它 理解为容器的接口,而适配器具体采用哪种容器类型去实现,在定义适配器的时候可以由你决定。

 

为了定义一个容器类型的对象必须包含相关的头文件:

1 定义vector:  #include <vector>
2 定义list:    #include <list>
3 定义deque:   #include <deque>
4 定义queue:   #include <queue>
5 定义stack:    #include <stack>  //注意:stack和queue都是基于deque实现的,但是stack和queue比较常用
头文件包含

相关文章: