C++ STL--vector容器

192 阅读1分钟

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];
}