1.头文件
#include
2.初始化
vector
test; //默认初始化 vector
test2(test1); 或 vector test2 = test1; //拷贝复制 vector
test = {1,2,3,4,5,6,7}; //直接赋值初始化 int a[] ={1,2,3,4,5};
vectortest(a,a+5);
//通过数组初始化vector
test(7,3);//初始化test时在list中压入7个值为3的元素,若“3”的部分缺省,则会在test中压入7个0。 vector< vector
> test(i,vector (j,val)); //定义一个 i * j 的值为val的int型二维向量
3.添加函数
int i = 1;
test.push_back(i); //将1加入到vector中
test.insert(test.begin() + i,val); //在test的第i个元素的位置插入值为val的元素。例如test 为1,2,3,4。i为1的情况下变为 1,val,2,3,4。
test.insert(test.begin() + i,k,val); //在test的第i个元素位置插入k个值为val的元素。
test.insert(test.begin() + i,a + j,a + k); //a为数组,在test的第i个位置插入a的第j到k的元素(不包括a + k)。例如v1.insert(v1.begin(),v2.begin(),v2.end());就是将v2加入到v1前。
4.删除函数
test.pop_back(); //删除容器中最后一个元素,该容器size会发生减1,但容量capacity不变。
test.erase(test.begin() + i); //删除vector容器中第i(i = 0,1,2,...)位置上的元素。
test.erase(test.begin() + i , test.begin() + j); //删除第 i 到 j - 1(i,i+1,i+2,...,j-2,j-1)的元素。
test.remove(test.begin() + i,test.begin() + j,val); //删除第i到j范围内等于val的值,但该方法只是把val移到末尾,并不是真的删除。不会改变容器的大小和容量。
test.clear(); //将容器清空,改变大小不改变容量。
5.遍历函数
test.at(i); //得到i位置的数据,相当于test[i];
test.begin(); //得到数组头指针,指向第1个元素
test.end(); //返回向量尾指针,指向向量最后一个元素的下一个位置
test.front(); //返回第一个元素
test.back(); //返回最后一个元素
//得到数组第一个元素用test.begin()或者test.front()。得到最后一个元素则是test.end() - 1 或 test.back();
6.其他函数
test.size(); //使用数据的大小,即返回向量中元素的个数
test.capacity(); //容量,当前vector分配的大小
test.empty(); //判断是否为空,bool类型,如果为空返回true,否则false;
test.max_size(); //得到vector最大可以是多大;
test1.swap(test2); //交换test1和test2;
7.其他用法
排序用法
sort(test.begin(),test.end()); //将vector整体进行快排,默认小到大。
sort需要头文件 #include
如果需要降序,可重写规则
bool compare(int a,int b)
{
return a > b; //降序排列,如果改为return a }sort(test.begin(),test.end(),compare); //降序
倒置用法
需要头文件 #include
reverse(test.begin(),test.end()); //对test进行倒置,比如1,2,3,4变为4,3,2,1。



