2018-3-30
在c++中,vector是一个十分有用的容器,它能够像容器一样存放各种类型的对象。
简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。
实例1:vector<int>test;//建立一个vector,int为数组元素的数据类型,test为动态数组名
简单的使用方法如下:
#include<iostream>
#include<vector>
using namespace std;
vector<int>test;
int main(){
test.push_back(1);
test.push_back(2);
cout<<test[0]<<" "<<test[1]<<endl;
return 0;
}
输出结果是1 2
实例2:vector<vector<point> > points; //定义一个二维数组,其中行数和列数都是可变的。
points[0].size(); //指第一行的列数
#include<iostream>
#include<vector>
using namespace std;
struct point{
int x,y;
}d;
vector<point> p;
vector< vector<point> >points;
int main(){
d.x=1;d.y=2;
p.push_back(d);
points.push_back(p);
cout<<(points[0].size())<<endl;
return 0;
}
输出结果是1
3.实例3:vector<int> G[N+1];//定义一个二维数组,其中行数不可变,列数是可变的。
#include<iostream>
#include<vector>
using namespace std;
const int N = 100;
vector<int> G[N+1];
int main(){
G[0].push_back(1);
G[0].push_back(2);
G[1].push_back(3);
cout<<G[0].size()<<" "<<G[1].size()<<endl;
return 0;
}
输出结果是1 2
基本操作
(1)头文件#include<vector>.
(2)创建vector对象,vector<int> vec;
(3)尾部插入数字:vec.push_back(a);
(4)使用下标访问元素,cout<<vec[0]<<endl;记住下标是从0开始的。
(5)使用迭代器访问元素.
#include<iostream>
#include<vector>
using namespace std;
vector<int>test;
vector<int>::iterator it;
int main(){
test.push_back(1);
test.push_back(2);
test.push_back(3);
for (it=test.begin();it!=test.end();it++){
cout<<*it<<endl;
}
return 0;
}
(6)插入元素: vec.insert(vec.begin()+i,a);在第i+1个元素前面插入a;
(7)删除元素: vec.erase(vec.begin()+2);删除第3个元素
vec.erase(vec.begin()+i,vec.end()+j);删除区间[i,j-1];区间从0开始
(8)向量大小:vec.size();
(9)清空:vec.clear();