1.vector的功能
vector包含着一系列连续存储的元素,性质和数组十分相似。
访问元素或者在末尾插入元素常数级别,插入元素是线性级别。
要注意的是,vector的尾部元素是
vector<int> ve;
vector<int>::iterator::iter;
iter=ve.end()-1; //这里一定要减
cout<*ite<<endl;
2.vector的操作
vec.begin(); //返回第一个元素的迭代器
vec.end();
vect.empty();
vec.front(); //返回第一个元素
vec.push_back(); //在最后添加一个元素
vec.pop_back(); //移除最后一个元素
#include<bits/stdc++.h>
using namespace std;
vector<int> vec
int main(){
vec.push_back(1); //尾部插入元素
vec.push_back(2);
vec.push_back(5);
//迭代器
vector<int>::iterator ite;
for(ite=vec.begin();ite!=vec.end();++ite){
cout<<*ite<<endl;
}
//插入元素,在第i+1个元素前面插入a
vec.insert(vec.begin()+i,a);
//删除元素
vec.erase(vec.begin()+2); //删除第三个元素
vec.size();
vec.clear();
return 0;
}
//vector的元素还可以是结构体,但是结构体一定要定义为全局
#include<bits/stdc++.h>
using namespace std;
typedef struct rect{
int id,length,width;
//对于向量元素是结构体的,可以在结构体内部定义比较函数
bool operator< (const rect &a) const
{
if(id!=a.id)
return id<a.id;
else
{
if(length!=a.length)
return length<a.length;
else
return width<a.width;
}
}
}Rect;
int main(){
vector<Rect> vec;
Rect rect;
rect.id=1;
rect.length=2;
rect.width=3;
vec.push_back(rect);
vector<Rect>::iterator it=vec.begin();
cout<<(*it).id<<(*it).length<<(*it).width<<endl;
return 0;
}
(1) 使用reverse将元素翻转:
reverse(vec.begin(),vec.end());
(2)使用sort排序:需要头文件#include<algorithm>,
sort(vec.begin(),vec.end());(默认是按升序排列,即从小到大).
可以通过重写排序比较函数按照降序比较,如下:
定义排序比较函数:
bool Comp(const int &a,const int &b)
{
return a>b;
}
调用时:sort(vec.begin(),vec.end(),Comp),这样就降序排序。