容器的概念
第一,我们需要知道什么是容器,官方给出的定义往往比较抽象,对于我来说看了也是不明白,不过这里还是给出官方定义。C++ 官方文档中容器被定义为:在数据存储上,有一种对象类型,它可以持有其它对象或指向其它对像的指针,这种对象类型就叫做容器。很简单,容器就是保存其它对象的内容,也即为数据;即为数据,自然而然也就包含了其对应处理数据的方法,因为这些方法在程序的设计上会经常被用到,所以容器也体现了一个好处, 就是“容器类是一种对特定代码重用问题的良好的解决方案”。
容器还有另一个特点就是可以扩展。一般我们在创建一个某种类型数据的容器的时候,不会给这个容器定义需要的空间大小,这个时候容器会默认先分配一个大小合适的空间,等到程序运行的时候由放入到容器中的数据决定。当数据存储到分配的空间不够的时候,系统自动再申请一块更大的空间,然后把之前的空间内的数据复制到新的空间,再把之前旧的空间给释放掉。这个过程显然给编程带来了极大的便利。不过,一个合格的程序员应尽量在创建容器的时候给出空间大小。
容器是随着面向对象语言的诞生而提出的,容器类在面向对象语言中特别重要,甚至它被认为是早期面向对象语言的基础。在现在几乎所有的面向对象的语言中也都伴随着一个容器集,在C++ 中,就是标准模板库(STL )。