• STL之deque


    描述

    使用STL中的deque,完成入队、出队、获取队首、获取队尾等基本操作。

    部分代码已经给出,请补充完整,提交时请勿包含已经给出的代码。

     

    int main()
    {
        deque<int> qu;
        int n;
        cin>>n;
        while(n--)
        {
            Op(qu);
        }
        deque<int>::iterator it;
        for(it=qu.begin();it!=qu.end();it++)
            cout<<*it<<endl;
        return 0;
    }

    输入

    输入数据第一行为整数n,接下来有n个命令,其中命令格式:

    (1)队尾入队:pushb x

    (2)队首入队:pushf x

    (3)队尾出队:popb

    (4)队首出队:popf

    (3)清空:clear

    (4)获得队首并输出:first

    (5)获得队尾并输出:last

    如果部分操作无效,该操作不执行。

    输出

    操作过程中若有输出,每行一个元素,执行一系列操作后,输出从队首到队尾的所有元素值,每行一个。

    样例输入

     9
    pushb 1
    pushf 2
    popb
    popf
    pushf 3
    pushb 4
    pushb 5
    first
    last

    样例输出

     3
    5
    3
    4
    5

    #include <iostream>
    #include <string>
    #include <stack>
    #include <deque>
    using namespace std;
    void Op(deque<int> &qu)
    {
        string ss;
        cin>>ss;
        if(ss=="pushb")
        {
            int n;
            cin>>n;
            qu.push_back(n);
         }
         else if(ss=="pushf")
         {
             int n;
             cin>>n;
             qu.push_front(n);
         }
         else if(ss=="clear")
         {
             qu.clear(); 
         }
         else if(ss=="popb")
         {
             if(!qu.empty())
             {
                 qu.pop_back();
             }
         }
         else if(ss=="popf")
         {
             if(!qu.empty())
             {
                 qu.pop_front();
             }
         }
         else if(ss=="first")
         {
             if(!qu.empty())
             {
                 cout<<qu.front()<<endl;
             }
         }
         else {
             if(!qu.empty())
             {
                 cout<<qu.back()<<endl;
             }
         }
    }
    int main()
    {
        deque<int> qu;
        int n;
        cin>>n;
        while(n--)
        {
            Op(qu);
        }
        deque<int>::iterator it;
        for(it=qu.begin();it!=qu.end();it++)
            cout<<*it<<endl;
        return 0;
    }

     

  • 相关阅读:
    JAVA实现微信支付功能
    avue设置表格显示图片
    职工管理系统----删除职工
    职工管理系统---显示职工
    职工管理系统---读文件
    职工管理系统---写文件
    职工管理系统-------添加职工
    职工管理系统-----实现职工类
    职工管理系统-------实现退出功能
    职工管理系统-------菜单功能
  • 原文地址:https://www.cnblogs.com/andrew3/p/8722170.html
Copyright © 2020-2023  润新知