C++ STL之vector的简单使用

Vector是c++提供的容器之一,可以很好的扩展。除此之外,提供了一些函数。

本篇文章将常用的函数进行了使用,利用switch组成了一个菜单,具有尾部扩张 、插入、删除、排序、显示 、修改等功能。

适合初学者。

代码:

/*********************

 vector
 Author:YuBo
 Date:2018/1/23
**********************/

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
vector<int> v;       //向量
void menu()
{
 cout<<"*********vector的使用************"<<endl;
 cout<<"*****1.尾部扩张  2.插入**********"<<endl;
 cout<<"*****3.删除      4.排序**********"<<endl;
 cout<<"*****5.显示      6.修改**********"<<endl;
 cout<<"*****7.退出                      "<<endl;

}
void Add()
{
    int temp;int N;
    cout<<"请输入你要输入的整数个数:"<<endl;
    cin>>N;
    cout<<"请输入"<<N<<"个整数(空格分割,换行结束):"<<endl;
    for(int i=0;i<N;i++)
    {
     cin>>temp;
     v.push_back(temp);
    }
}
void Insert()
{
    int place,num;
    cout<<"请输入从第几个元素前插入(首元素位置为0):"<<endl;
    cin>>place;
    cout<<"请输入要插入的一个整数:"<<endl;
    cin>>num;
    v.insert(v.begin()+place,num);
}
void Delete()
{
    int i;int place;int from,to;
    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>>from>>to;
            if(from<0||v.size()<to+1)cout<<"输入区间出界。"<<endl;
            else v.erase(v.begin()+from,v.begin()+to);//删除区间内,包含区间起始点,不包含尾点
           }break;
    case 3:{
            v.clear();
           }break;
    }
}
void Sort()
{
    int i;
    cout<<"*****1.升序  2.降序******"<<endl;
    cin>>i;
    switch(i)
    {
     case 1:sort(v.begin(),v.end());break;
     case 2:reverse(v.begin(),v.end());break;
    }
}
void Display()
{
    vector<int>::iterator it;
    for(it=v.begin();it!=v.end();it++)
    {
     cout<<*it<<" ";
    }
    cout<<endl;
}
void Change()
{
    int place;
    cout<<"请输入要修改的元素的位置(首元素为1):"<<endl;
    cin>>place;
    cout<<"请输入一个整数:"<<endl;
    cin>>v[place-1];
}
int main()
{
    int i;
    while(1)
    {
        menu();
        cout<<"请输入菜单号:"<<endl;
        cin>>i;
        if(i==7)break;
        switch(i)
        {
         case 1:Add();break;
         case 2:Insert();break;
         case 3:Delete();break;
         case 4:Sort();break;
         case 5:Display();break;
         case 6:Change();break;
         default:cout<<"输入错误!"<<endl;break;
        }
    }

}

运行截图:

C++ STL之vector的简单使用

C++ STL之vector的简单使用

C++ STL之vector的简单使用

C++ STL之vector的简单使用

C++ STL之vector的简单使用

更多STL例子: C++ STL的使用

有问题请下方评论,转载请注明出处,并附有原文链接,谢谢!如有侵权,请及时联系。