vector 是向量类型,它可以容纳许多类型的数据,如若干个整数,所以称其为容器。vector 是C++ STL的一个重要成员,使用它时需要包含头文件:
#include<vector>;
一、vector 的初始化:可以有五种方式,举例说明如下:
(1) vector<int> a(10); //定义了10个整型元素的向量(尖括号中为元素类型名,它可以是任何合法的数据类型),但没有给出初值,其值是不确定的。
(2)vector<int> a(10,1); //定义了10个整型元素的向量,且给出每个元素的初值为1
(3)vector<int> a(b); //用b向量来创建a向量,整体复制性赋值
(4)vector<int> a(b.begin(),b.begin+3); //定义了a值为b中第0个到第2个(共3个)元素
(5)int b[7]={1,2,3,4,5,9,8};
vector<int> a(b,b+7); //从数组中获得初值
二,特别注意:
使用vector需要注意以下几点:
1、如果你要表示的向量长度较长(需要为向量内部保存很多数),容易导致内存泄漏,而且效率会很低;
2、Vector作为函数的参数或者返回值时,需要注意它的写法:
double Distance(vector<int>&a, vector<int>&b) 其中的“&”绝对不能少!!!
三,介绍vector的常用用法
- 往容器中压入数据
vector<int>a;
a.push_back(1);
a.push_back(2);
a.push_back(3);
a.push_back(4);
a.push_back(6);
a.push_back(5);
2.使用下标访问数据
//利用下标访问元素
cout<<a[3]<<endl;
3.使用迭代器访问数据
//使用迭代器访问元素
//begin和end的使用方式,这种方式叫指针
vector<int>::iterator it;
for(it=a.begin();it!=a.end();it++){
cout<<*it<<" ";
}
cout<<endl;
4.front与back的使用(引用法)
//front和back的使用方式,这种方式叫引用
cout<<a.front()<<endl;
cout<<a.back()<<endl;
5.插入元素
//插入元素,在第三个位置插入元素7
a.insert(a.begin()+2,7);
for(it=a.begin();it!=a.end();it++){
cout<<*it<<" ";
}
cout<<endl;
6.删除元素
//删除元素,删除第三个位置元素
a.erase(a.begin()+2);
for(it=a.begin();it!=a.end();it++){
cout<<*it<<" ";
}
cout<<endl;
//删除一个区间的元素,删除下标3-5的元素
a.erase(a.begin()+2,a.begin()+5);
for(it=a.begin();it!=a.end();it++){
cout<<*it<<" ";
}
cout<<endl;
7.获得空间大小和清空操作
//获得向量的大小
cout<<a.size()<<endl;
//清空a
a.clear();
cout<<a.size()<<endl;
8.在结构体中的应用
//vector中还可以使用在结构体中
vector<Rect>vec;
Rect rect;
rect.id=1;
rect.length=180;
rect.width=120;
vec.push_back(rect);
vector<Rect>::iterator is=vec.begin();
cout<<(*is).id<<" "<<(*is).length<<" "<