题目链接

简单数据结构

题目思路

对stl的简单掌握

vector

//初始化 vector<int> vec;
//插入值 vec.insert(vec.begin(),in) 在最前面插入新元素in
//       vec.insert(vec.end(),in) 在末尾追加新元素in
//       vec.insert(vec.begin(),num,in) 在最前面插入num个in
//删除值 vec.erase(vec.begin()); vec.erase(vec.end());
//翻转vec内元素 reverse(vec.begin(),vec.end());
//遍历(c++11新增) for(auto it:vec) cout<<it<<' ';
//查找前后端 cout<<vec.front()<<' '<<vec.back();
//判断是否空 if(!vec.empty())
//vec的长度 vec.size()
//清空vec中所有元素 vec.clear()

通过代码

#include
using namespace std;
int main()
{
    int f=0;
    vector vec;
    int n,m;
    cin>>n>>m;
    int in,pan;
    for(int i=0;i<m;i++)
    {
        cin>>pan;
        if(pan==1)
        {
            cin>>in;
            vec.insert(vec.begin(),in);
        }
        else if(pan==2)
            vec.erase(vec.begin());    
        else if(pan==3)
        {
            cin>>in;
            vec.insert(vec.end(),in);
        }
        else if(pan==4)
            vec.erase(vec.end()-1);
        else if(pan==5)
            reverse(vec.begin(),vec.end());
        else if(pan==6)
        {
            cout<<vec.size()<<endl;
            for(auto it:vec)
                cout<<it<<' ';
            //for(int i=0;i<vec.size();i++)
              //  cout<<vec[i]<<' ';
            cout<<endl;
        }
        if(pan==7)
        {
            sort(vec.begin(),vec.end(),less());
        }
    }
    return 0;
}