vector是什么
vector是C++标准模板库(STL-Standard Template Library)中的概念内容,它是一个能够操作多种数据结构和算法的模板类和函数库,是一个封装了动态大小数组的顺序容器(Sequence Container)。vector被认为是一个容器,也是因为它能够像容器一样存放各种类型的对象,可以简单的认为,vector是一个能够存放任意类型的动态数组。
扩展知识:
STL的代码从广义上讲分为三类:algorithm(算法)、container(容器)和iterator(迭代器),几乎所有的代码都采用了模板类和模板函数的方式,这相比于传统的由函数和类组成的库来说提供了更好的代码重用机会。
模板是C++程序设计语言中的一个重要特征,而标准模板库正是基于此特征。标准模板库使得C++编程语言在有了同Java一样强大的类库的同时,保有了更大的可扩展性。
容器:包含、放置数据的地方。
迭代器:在容器中指出一个位置、或成对使用以划定一个区域,用来限定操作所涉及到的数据范围。
算法:要执行的操作。
容器特性
关于STL容器,最令人称赞的特性之一就是只要不超过它们的最大容许元素数量值(容量),它们就可以自动增长到足以容纳放进去的数据(要想知道这个最大值,调用max_size的容器的内置成员函数即可,使用reserve()函数可以提前设定容量大小)。
1.顺序序列
顺序容器中的元素按照严格的线性顺序排序。可以通过元素在序列中的位置访问对应的元素。
2.动态数组
支持对序列中的任意元素进行快速直接访问,甚至可以通过指针算述进行该操作。操供了在序列末尾相对快速地添加/删除元素的操作。
3.能够感知内存分配器的(Allocator-aware)
容器使用一个内存分配器对象来动态地处理它的存储需求。