我是靠谱客的博主 清秀黑夜,最近开发中收集的这篇文章主要介绍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中数据:n");
    for (i = 0; i < 20; ++i)
        printf("%d ", ideq[i]);
    putchar('n');

    //在头尾加入新数据
    printf("n在头尾加入新数据...n");
    ideq.push_back(100);
    ideq.push_front(i);

    //输出deque
    printf("n输出deque中数据:n");
    for (pos = ideq.begin(); pos != ideq.end(); pos++)
        printf("%d ", *pos);
    putchar('n');

    //查找
    const int FINDNUMBER = 19;
    printf("n查找%dn", FINDNUMBER);
    pos = find(ideq.begin(), ideq.end(), FINDNUMBER);
    if (pos != ideq.end())
        printf("find %d successn", *pos);
    else
        printf("find failedn");

    //在头尾删除数据
    printf("n在头尾删除数据...n");
    ideq.pop_back();
    ideq.pop_front();

    //输出deque
    printf("n输出deque中数据:n");
    for (pos = ideq.begin(); pos != ideq.end(); pos++)
        printf("%d ", *pos);
    putchar('n');
    return 0;
}

 

 

转载于:https://www.cnblogs.com/aiguona/p/7281739.html

最后

以上就是清秀黑夜为你收集整理的C++ STL 双端队列deque详解的全部内容,希望文章能够帮你解决C++ STL 双端队列deque详解所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部