一、定义
向量 vector 是一种对象实体, 能够容纳许多其他类型相同的元素, 因此又被称为容器。 与string相同, vector 同属于STL(Standard Template Library, 标准模板库)中的一种自定义的数据类型, 可以广义上认为是数组的增强版。
在使用它时, 需要包含头文件 vector
#include<vector>
vector 容器与数组相比其优点在于它能够根据需要随时自动调整自身的大小以便容下所要放入的元素。此外, vector 也提供了许多的方法来对自身进行操作。
二、初始化
vector<int> a ; //声明一个int型向量a vector<int> a(10) ; //声明一个初始大小为10的向量 vector<int> a(10, 1) ; //声明一个初始大小为10且初始值都为1的向量 vector<int> b(a) ; //声明并用向量a初始化向量b vector<int> v[3]; //三个一维动态数组 vector<int> b(a.begin(), a.begin()+3) ; //将a向量中从第0个到第2个(共3个)作为向量b的初始值
三、基本方法
begin() //返回第一个元素的迭代器 end() //返回的是越界后的第一个位置,也就是最后一个元素的下一个位置 size() //返回容器中元素个数 max_size() //返回容器的最大可以存储的元素个数,这是个极限,当容器扩展到这个最大值时就不能再自动增大 empty() //当元素个数为0时返回true,否则为false,根据的是元素个数而不是容器的存储空间的大小 push_back() //在容器的最后一个位置插入元素x,如果size值大于capacity值,则将重新分配空间 pop_back() // 删除最后一个元素 clear() //将容器里的内容清空,size值为0,但是存储空间没有改变
四、二维向量
vector< vector<int> > b(10, vector<int>(5)); //创建一个10*5的int型二维向量 vector<vector<int> >v[3]; //3个二维数组