作者:Jennifer
内容:vector的系列应用
#include <iostream>
#include <vector>#include <algorithm>
using namespace std;
vector<int> v;
void shuchu()
{
vector<int>::iterator it;
for(it = v.begin();it != v.end();it++)
cout<<*it<<" ";
cout<<endl;
}
void add()
{
int num,shuju;
cout<<"请输入你要输入的整数的个数:"<<endl;
cin>>num;
cout<<"请输入"<<num<<"个整数:"<<endl;
for(int i=0;i<num;i++)
{
cin>>shuju;
v.push_back(shuju);
}
shuchu();
}
void insert()
{
int place,n;
cout<<"请输入你想从第几个元素插入(首元素位置为0)"<<endl;
cin>>place;
cout<<"请输入你想插入的一个整数:"<<endl;
cin>>n;
v.insert(v.begin()+place,n);
shuchu();
}
void deletev()
{
int i,place,i1,i2;
cout<<"1.删除1个 2.删除部分 3.删除全部"<<endl;
cout<<"请输出你想实现的功能的编号:"<<endl;
cin>>i;
switch(i)
{
case 1:
{
cout<<"请输入要删除第几个元素(首元素位置为0):"<<endl;
cin>>place;
if(place<0||v.size()<place+1)
cout<<"输出位置出界!"<<endl;
else
v.erase(v.begin()+place);
}break;
case 2:
{
cout<<"请输入想删除的区间位置(删头不删尾):"<<endl;
cin>>i1>>i2;
if(i1<0||i2<0||i1>=i2)
cout<<"输出区间有误!"<<endl;
else
v.erase(v.begin()+i1,v.begin()+i2);
}break;
case 3:
{
v.clear();
}break;
}
shuchu();
}
void reversev()
{
reverse(v.begin(),v.end());
shuchu();
}
void sortv()
{
cout<<"vector对象的大小是:"<<v.size()<<endl;
}
void menu()
{
cout<<" ******欢迎了解vector的用法****** "<<endl;
cout<<endl;
cout<<" 1.尾部元素扩张 2.元素的插入"<<endl;;
cout<<" 3.元素的删除 4.使用reverse反向排列"<<endl;
cout<<" 5.使用sort对向量排列 6.向量的大小 "<<endl;
cout<<" 7.退出"<<endl;
}
int main()
{
int i;
while(1)
{
menu();
cout<<"请输入想要实现的功能的序号:"<<endl;
cin>>i;
switch(i)
{
case 1:
{
add();
break;
}
case 2:
{
insert();
break;
}
case 3:
{
deletev();
break;
}
case 4:
{
reversev();
break;
}
case 5:
{
sort(v.begin(),v.end());
shuchu();
break;
}
case 6:
{
sortv();
break;
}
case 7:
{
exit(1);
break;
}
default:
{
cout<<"输入错误!"<<endl;
break;
}
}
}
return 0;
}