vector(向量): C++中的一种数据结构,确切的说是一个类.它相当于一个动态的数组,当程序员无法知道自己需要的数组的规模多大时,用其来解决问题可以达到最大节约空间的目的.
vector容器的创建:
#include<vector> //头文件
//vector的创建(以int为例其他同理)
vector<int> v; //创建一个空vector
vector<int> v1(v); //复制v容器
vector<int> v(n); //创建一个长度为n的容器
vector<int> v(n,data); //创建一个长度为n且每个数据为data的容器
int a[]={5,2,1};
vector<int> v(a,a+3); //创建一个区间性的容器,注意是左开右闭;
struct edge{
int a,b;
};
vector<edge> v; //创建一个结构体容器;
vector<vector<int> > v; //创建一个二维容器;
vector<vector<edge> > v; //创建一个二维结构体容器;
vector容器的常见操作:
v.push_back(a); //向容器尾部插入a,注:下标从0开始
v.insert(v.begin()+i,a); //在容器中i+1前面的位置插入a
v.erase(v.begin()+i); //删除i+1位置上的数据
v.clear(); //清空容器
v.size(); //返回容器数据个数;
v.reverse(v.begin(),v.end());//需要#include<algorithm>,v.end()是最后一个元素位置+1
v.empty(); //判断容器是否为空;
v.swap(v1,v2); //交换两个容器的数据;
//容器的遍历方法1:
vector<int>::itreator ite;
for(ite=vec.begin();ite!=vec.end();ite++){
cout<<*ite<<" ";
}
//容器遍历方法2:
for(int i=0;i<v.size();i++){
cout<<v[i]<<endl;//二维同理v[i][j];
}