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

     

  • 相关阅读:
    CIL中间语言浅谈
    keepalived实现nginx高可用
    centos 开启关闭网卡
    CentOS7下安装httpd服务
    freeswitch socket连接报错
    centos安装nodejs
    CronTrigger
    mysql 表增加索引
    FreeSWITCH呼叫参数之sip_cid_type
    中继网关开启呼入
  • 原文地址:https://www.cnblogs.com/aiguona/p/7281739.html
Copyright © 2011-2022 走看看