向量(Vector)是一个封装了动态大小数组的顺序容器(Sequence Container)。跟任意其它类型容器一样,它能够存放各种类型的对象。可以简单的认为,向量是一个能够存放任意类型的动态数组。
上面是vector的定义。简单的说,vector是一个可变长度的数组。不仅如此,它还把一些常用操作“封装”在了vector类型内部。
如果要使用它,要加上头文件和名字空间:
#include<vector> using namespace std;
vector是一个模板类,所以要用vector<ini> a或者vector<double>b这样的方式来声明一个vector。基本格式是这样:
vector<类型>标识符;
vector<int> a是一个类似于int a[]的整数数组,而vector<string> a就是一个类似于string a[]的字符串数组。vector可以直接赋值,还可以作为函数的参数或返回值,而无需像传递数组那样另外用一个变量指定元素个数。
vector有一些常用的语句来处理vector,例如:若a是一个vector,可以用a.size()读取它的大小,a.resize()改变大小,a.push_back()向尾部添加元素,a.pop_back()删除最后一个元素。下面给出常用用法:
1.push_back 在数组的最后添加一个数据 2.pop_back 去掉数组的最后一个数据 3.at 得到编号位置的数据 4.begin 得到数组头的指针 5.end 得到数组的最后一个单元+1的指针 6.front 得到数组头的引用 7.back 得到数组的最后一个单元的引用 8.max_size 得到vector最大可以是多大 9.capacity 当前vector分配的大小 10.size 当前使用数据的大小 11.resize 改变当前使用数据的大小,如果它比当前使用的大,者填充默认值 12.reserve 改变当前vecotr所分配空间的大小 13.erase 删除指针指向的数据项 14.clear 清空当前的vector 15.rbegin 将vector反转后的开始指针返回(其实就是原来的end-1) 16.rend 将vector反转构的结束指针返回(其实就是原来的begin-1) 17.empty 判断vector是否为空 18.swap 与另一个vector交换数据