本文整理了vector相关操作与实例。
一、Vector简介
在将Vector看作一个数组前提下,我们可以将Vector看作一个“橡皮口袋”,我们往里面塞多少数它就有多大。它可以容纳很多类型的数据。其被包含在include<bits/stdc++>#include<vector>头文件中。
二、Vector相关操作
1.1、定义与赋初值
vector<int> a;
//定义一个整型向量a,其中每个值赋值前随机,尖括号可以为任意合理数据类型
vector<int> a(n);
//定义一个长度为n的向量a,赋值随机
vector<int> a(n,x);
//定义一个长度为n的向量a且全部赋值为x
vector<int> a(b);
//定义向量a且使其与向量b完全一样
vector<int> a(b.begin(),b.begin()+n);
//定义向量a且使其第0至n-1位赋值为vector向量b的0至n-1位
vector<int> a(b,b+n);
//以整型数组b中的0至n-1位元素赋值进向量a
1.2、相关函数
a.assign(b.begin(),b.begin()+n)
//(void)b是向量,将b的第0 - n-1位赋给a
a.assign(n,m);
//(void)将第0 - n-1位赋值为m
a.front();
//(非void)返回向量a第0位元素
a.back();
//(非void)返回向量a的最后一个元素
a.clear();
//(void)清空向量a
a.empty();
//(bool)若向量a为空则返回true,否则返回false
a.pop_back();
//(void)删除a最后一个元素,(类似于Backspace)
a.push_back(n);
//(void)在a最后一位后添加一个元素n
a.insert(a.begin()+m,n);
//(void)在a的第m-1位和第m位之间插入元素n
a.insert(a.begin()+m,n,x);
//(void)在a的第m-1位和第m位之间插入n个元素,其值都为x
a.insert(a.begin()+m,b+x,b+y);
//(void)在a的第m-1位和第m位之间插入整型数组b的第x位和第y-1位(不包括第y位)
a.size();
//(int)返回向量a的长度
a.swap(b);
//(void)将向量a和向量b整体交换
a.erase(a.begin()+n,a.begin()+m);
//(void)将向量a的第n-1位(包括)至第m-1位(不包括)删除
这些对于做题来说大概够用了。
三、注意事项
比较容易犯的错是直接将向量当作数组使用。因为向量是一个长度随元素定义而增长的数组,故不能直接用数组a[i]的方式添加元素。只有将a中元素定义后才能用a[i]的形式进行访问。