zoukankan      html  css  js  c++  java
  • [转载]C++ STL 双端队列deque详解


    (转载自https://www.cnblogs.com/aiguona/p/7281739.html)

    一.解释

      Deque(双端队列)是一种具有队列和栈的性质的数据结构。双端队列的元素可以从两端弹出,其限定插入和删除操作在表的两端进行。

    二.常用操作:

      1.头文件

    #include <deque>

      2.定义

    a) deque<int>s1;  
    b) deque<string>s2; 
    c) deque<node>s3; /*node为结构体,可自行定义。*/

      3.常用操作

    复制代码
    //a) 构造函数
    deque<int> ideq
    //b)增加函数
     ideq.push_front( x):双端队列头部增加一个元素X
     ideq.push_back(x):双端队列尾部增加一个元素x
    //c)删除函数
    ideq.pop_front():删除双端队列中最前一个元素
    ideq.pop_back():删除双端队列中最后一个元素
    ideq.clear():清空双端队列中元素
    //d)判断函数
    ideq.empty() :向量是否为空,若true,则向量中无元素
    //e)大小函数
    ideq.size():返回向量中元素的个数
    复制代码

    三、举例

    复制代码
    #include <deque>
    #include <cstdio>
    #include <algorithm>
    using namespace std;
    int main()
    {
        deque<int> ideq(20); //Create a deque ideq with 20 elements of default value 0
        deque<int>::iterator pos;
        int i;
    
        //使用assign()赋值  assign在计算机中就是赋值的意思
        for (i = 0; i < 20; ++i)
            ideq[i] = i;
    
        //输出deque
        printf("输出deque中数据:
    ");
        for (i = 0; i < 20; ++i)
            printf("%d ", ideq[i]);
        putchar('
    ');
    
        //在头尾加入新数据
        printf("
    在头尾加入新数据...
    ");
        ideq.push_back(100);
        ideq.push_front(i);
    
        //输出deque
        printf("
    输出deque中数据:
    ");
        for (pos = ideq.begin(); pos != ideq.end(); pos++)
            printf("%d ", *pos);
        putchar('
    ');
    
        //查找
        const int FINDNUMBER = 19;
        printf("
    查找%d
    ", FINDNUMBER);
        pos = find(ideq.begin(), ideq.end(), FINDNUMBER);
        if (pos != ideq.end())
            printf("find %d success
    ", *pos);
        else
            printf("find failed
    ");
    
        //在头尾删除数据
        printf("
    在头尾删除数据...
    ");
        ideq.pop_back();
        ideq.pop_front();
    
        //输出deque
        printf("
    输出deque中数据:
    ");
        for (pos = ideq.begin(); pos != ideq.end(); pos++)
            printf("%d ", *pos);
        putchar('
    ');
        return 0;
    }
    复制代码
  • 相关阅读:
    查找谁调用了BTE事件
    ABAP标准屏幕调用选择屏幕
    CG3Y&nbsp;CG3Z&nbsp;一个上传一个下载
    捕获BDC报的错误
    MM主要的表和主要字段
    获取随机数&nbsp;&nbsp;QF05_RANDOM_INTEGER
    Query-Convert&nbsp;QuickView是灰…
    SAP_整体修改一个内表的某一个字段…
    程序员永远的痛之字符编码的奥秘
    关于绑定变量、关于占位符
  • 原文地址:https://www.cnblogs.com/Gaomez/p/14190582.html
Copyright © 2011-2022 走看看