在面向对象程序中,大多引入了容器的概念。那么什么是容器?实质上是一组相同类型对象的集合,但它不仅仅是数组那么简单,它实现了比数组更复杂的数据结构,能够实现更复杂的功能。C++标准模版库里提供了10种通用的容器,它基本可以解决程序中遇到的大部分问题。
什么是容器
C++中容器的定义如下:数据存储上,有一种对象类型,它可以持有其他对象或指向其他对象的指针,这种对象类型叫容器。通俗的说容器就是保存其他对象的对象,这种“对象”还包含了一些列处理其他对象的方法,这也体现了容器类的一个好处,“容器类对特定代码重用问题的良好的解决方案”。
容器另一个好处就是可以自行扩展,解决问题是我们不知道需要存储多少个对象,数组在这方面是个欠缺。容器可以为你申请内存、释放内存,并且使用最优的算法来执行你的命令。
通用容器的分类
(1)顺序性容器:各元素之间有顺序关系的线性表,是一种线性关系的有序集群,顺序容器中的元素均有固定的位置,除非用删除和插入来改变它的位置,这个位置和元素本身无关,和操作时间和地点有关。
vector:从后面快速删除和插入,访问任一元素;
deque:从前面或后面快速删除和插入,访问任一元素;
list:双联表,从任何位置插入和删除;
(2)关联式容器:非线性的树结构(二叉树结构),各元素之间没有严格的物理顺序。关联容器提供了根据元素