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

    一.解释

      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;
    }

     

  • 相关阅读:
    远程桌面工具mRemoteNG与Tsmmc
    敏感性Sensitivity和特异性Specificity的说明
    React教程:4 个 useState Hook 示例
    React Hooks究竟是什么呢?
    一步一步搭建前端监控系统:如何监控资源加载错误?
    Promise的三兄弟:all(), race()以及allSettled()
    JavaScript中this究竟指向什么?
    编译器与Debug的传奇:Grace Murray Hopper小传
    21个React开发神器
    8种常见数据结构及其Javascript实现
  • 原文地址:https://www.cnblogs.com/aiguona/p/7281739.html
Copyright © 2011-2022 走看看