1.vector向量容器简介
不但能像数组一样对元素进行访问,还能在尾部进行追加元素,是一种简单,高效的可替代数组的的容器。
2.vector向量容器功能描述
vector向量容器具有内存自动管理的功能,对于元素进行插入和删除,可以动态调整内存空间;vector容器的下标从0开始计算;对于容器容量的定于,既可以事先定义也可以利用push_back()方法在容器尾部追加,也可以用insert()方法插入;其最重要的两种方法:begin(),返回的是首元素位置的迭代器。end(),返回的是最后一个元素的下一个位置的迭代器。
3.代码实现对容器的操作
#include<algorithm>
#include<iostream>
#include<vector>
#include<numeric>
using namespace std;
int main(int argc,char *argv[])
{
vector<int> v;//或者vector<int> v(10);
int i;
for(i=0;i<10;i++)
{
v.push_back(i);//使用尾部元素扩张方式赋值
//v[i]=i; //使用下标
}
//使用iterator迭代器顺序遍历
//操作方法reverse()
reverse(v.begin(),v.end());//使用reverse()反向排序
for(vector<int>::iterator it=v.begin();it!=v.end();it++)//使用迭代器顺序输出
{
cout<<*it<<" ";
}
cout<<endl;
//使用erase()删除某个位置或某段区间内的元素v.erase()
v.erase(v.begin()+5);// 删除第五个元素,计数从0开始
for(vector<int>::iterator it=v.begin();it!=v.end();it++)
{
cout<<*it<<" ";
}
cout<<endl;
//insert() 操作
v.insert(v.begin(),10);//在最前面插入元素 10
v.insert(v.begin()+2,100);//在第二个元素前插入1
v.insert(v.end(),10000);//在最后面追加元素10000
for(vector<int>::iterator it=v.begin();it!=v.end();it++)
{
cout<<*it<<" ";
}
cout<<endl;
cout<<v.size()<<endl;//size()方法
cout<<v.empty()<<endl;//向量是否为空,为空则返回1
//sort() 排序操作
for(int i=0;i<10;i++)
{
//v.push_back(i);//使用尾部元素扩张方式赋值
v[i]=9-i; //使用下标
}
sort(v.begin(),v.end());
for(vector<int>::iterator it=v.begin();it!=v.end();it++)
{
cout<<*it<<" ";
}
return 0;
}