上篇介绍了vector的基本使用,本贴将介绍一些常用的函数与方法,帮助各位更加灵活的使用vector容器。
#include <iostream>
#include <vector>
#include<algorithm>
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char** argv)
{
vector<int> V1(10,100);
//vector支持在定义时就实现赋值,此处为10个100
for(int i=0;i<=V1.size()-1;i++)
{
cout<<V1[i]<<" ";
}
cout<<endl;
if(!V1.empty())
//为空返回0
//注意:这里的函数均为调用,而非赋值
cout<<"V1不为空"<<endl;
cout<<"V1的容量是:"<<V1.capacity()<<endl;
cout<<"V1的中元素的个数是:"<<V1.size()<<endl;
V1.resize(20);
cout<<"此时V1的容量是:"<<V1.capacity()<<endl;
cout<<"此时V1的中元素的个数是:"<<V1.size()<<endl;
//多出来的空位全部默认用0来代替
for(int i=0;i<=V1.size()-1;i++)
{
cout<<V1[i]<<" ";
}
cout<<endl;
V1.resize(25,5);
//以指定元素进行填充
for(int i=0;i<=V1.size()-1;i++)
{
cout<<V1[i]<<" ";
}
cout<<endl;
for(int i=1;i<=15;i++)
{
V1.pop_back();
}
//删除后来扩充的元素
vector<int>::iterator it=V1.begin();
//定义V1的迭代器,指向开头元素
V1.insert(it,11);
//此时加入的元素,默认作为第一个元素,也就是下标为0
//默认会加在首元素的左边
V1.insert(it+4,17);
//此时加入的元素,为首下标偏移4个下标,也就是下标为4
V1.insert(it+12,5,13);
//在最后面插入5个13
for(int i=0;i<=V1.size()-1;i++)
{
cout<<V1[i]<<" ";
}
cout<<endl;
cout<<"经过一系列操作后的首元素是:"<<(*it)<<endl;
//注意,此时首元素早已变为新加入的11
V1.erase(it+5,it+17);
//删除下标为5——17的元素
for(int i=0;i<=V1.size()-1;i++)
{
cout<<V1[i]<<" ";
}
cout<<endl;
V1.clear();
//clear函数可以实现vector容器的清零
vector<int> V2;
V2.reserve(20);
//reserve 预留位置不能填充默认元素
for(int i=1;i<=10;i++)
{
V2.push_back(i);
}
cout<<"此时vectorV2的容量为:"<<V2.capacity()<<endl;
for(int i=0;i<=V2.size()-1;i++)
{
cout<<V2[i]<<" ";
}
cout<<endl;
reverse(V2.begin(),V2.end());
//注意:reverse并不是vector独有的,需要添加algorithm头文件才能使用!
cout<<"如下是翻转后的V2:"<<endl;
for(int i=0;i<=V2.size()-1;i++)
{
cout<<V2[i]<<" ";
}
cout<<endl;
return 0;
}