vector向量容器
1.创建vector对象
头文件:#include<vector>
创建vector有三种形式
①vector<int> v; //不指定元素个数
②vector<double> v(10); //指定容器的大小
③vector<double> v(10,8.6); //指定元素的大小并对每个元素赋初值
2.尾部元素扩张
通常使用push_back(元素)对vector容器在尾部追加新元素。
3.元素的访问
①下标方式访问:
v[0],v[1]···
②用迭代器访问vector元素
#include<vector>
#include<iostream>
using namespace std;
int main()
{
vector<int> v(3);
v[0]=2;
v[1]=7;
v[2]=9;
//定义迭代器变量
vector<int>::iterator it;
for(it=v.begin();it!=v.end();it++)
{
//输出迭代器上的元素
cout<<*it<<" ";
}
cout<<endl; //换行
return 0;
}
输出结果:2 7 9
4.元素的插入:
v.insert(v.begin(),1); //在最前面插入新元素1
v.insert(v.begin()+2,2); //在第三个元素前插入2
v.insert(v.end(),3); //在末尾插入3
5.元素的删除:
v.erase(v.begin()+2); //删除第三个元素
v.erase(v.begin()+1,v.begin()+5); //删除第二个到第六个的元素
v.clear(); //清空向量
6.排序:
头文件:
#include<algorithm>
反向排序
用reverse反向排序算法
#include<vector>
#include<algorithm>
#include<iostream>
using namespace std;
int main()
{
vector<int> v(3);
v[0]=2;
v[1]=11;
v[2]=9;
//定义迭代器变量
reverse(v.begin(),v.end()); //对向量的从头到尾的元素进行反向排序
vector<int>::iterator it;
for(it=v.begin();it!=v.end();it++)
{
//输出迭代器上的元素
cout<<*it<<" ";
}
cout<<endl; //换行
return 0;
}
输出结果:9 11 2
用sort算法排序
从小到大排
#include<vector>
#include<algorithm>
#include<iostream>
using namespace std;
int main()
{
vector<int> v(3);
v[0]=2;
v[1]=11;
v[2]=9;
//定义迭代器变量
sort(v.begin(),v.end()); //对向量的从头到尾的元素进行排序
vector<int>::iterator it;
for(it=v.begin();it!=v.end();it++)
{
//输出迭代器上的元素
cout<<*it<<" ";
}
cout<<endl; //换行
return 0;
}
输出结果:2 9 11
从大到小排
#include<vector>
#include<algorithm>
#include<iostream>
using namespace std;
//自己设计排序比较函数:对元素值进行降序排序
bool Comp(const int &a,const int &b)
{
if(a!=b)return a>b;
else return a>b;
}
int main()
{
vector<int> v(3);
v[0]=2;
v[1]=11;
v[2]=9;
//定义迭代器变量
sort(v.begin(),v.end(),Comp); //按Comp函数比较规则排序
vector<int>::iterator it;
for(it=v.begin();it!=v.end();it++)
{
//输出迭代器上的元素
cout<<*it<<" ";
}
cout<<endl; //换行
return 0;
}
输出结果:11 9 2
7.向量的大小:
使用size()方法可以返回向量的大小,即元素的个数;
使用empty()方法返回向量是否为空。