继vector和queue之后,又发现一个很好用的东西。

本篇转载自http://blog.csdn.net/morewindows/article/details/6946811

deque双向队列是一种双向开口的连续线性空间,可以高效的在头尾两端插入和删除元素,deque在接口上和vector非常相似。

1.常用成员函数

2.示例

#include "stdafx.h"#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查找%d\n", FINDNUMBER);pos = find(ideq.begin(), ideq.end(), FINDNUMBER);if (pos != ideq.end())printf("find %d success\n", *pos);elseprintf("find failed\n");//在头尾删除数据  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');system("pause");return 0;
}

运行结果:

另外要注意一点。对于deque和vector来说,尽量少用erase(pos)和erase(beg,end)。因为这在中间删除数据后会导致后面的数据向前移动,从而使效率低下。

转载于:https://www.cnblogs.com/betterwgo/p/8093070.html

【转载】deque双向队列相关推荐

  1. STL系列之一 deque双向队列

    原文地址:http://blog.csdn.net/morewindows/article/details/6946811 deque双向队列是一种双向开口的连续线性空间,可以高效的在头尾两端插入和删 ...

  2. C++ Deque(双向队列

    C++ Deque(双向队列) C++ Deque(双向队列) 是一种优化了的.对序列两端元素进行添加和删除操作的基本序列容器.它允许较为快速地随机访问,但它不像vector 把所有的对象保存在一块连 ...

  3. deque双向队列的使用

    Deque的使用 /*** Retrieves and removes the first element of this deque,* or returns {@code null} if thi ...

  4. python队列来做什么_简单介绍python的双向队列

    介绍 大家都知道利用 .append 和 .pop 方法,我们可以把列表当作栈或者队列来用(比如,把 append 和 pop(0) 合起来用,就能模拟栈的"先进先出"的特点).但 ...

  5. python3 deque(双向队列)

    转载:https://www.cnblogs.com/zhenwei66/p/6598996.html 创建双向队列 import collections d = collections.deque( ...

  6. STL中的双向队列deque

    1.STL中的双向队列deque deque也是顺序容器的一种,同时也是一个可变长数组.要使用deque,需要包含头文件deque.所有适用于vector的操作都适用于deque. deque和vec ...

  7. python collections模块(数据结构常用模块)计数器Counter 双向队列deque 默认字典defaultdict 有序字典OrderedDict 可命名元组namedtuple

    collections 模块----Python标准库,是数据结构常用模块 常用类型有: 计数器(Counter) 双向队列(deque) 默认字典(defaultdict) 有序字典(Ordered ...

  8. Deque(双向队列 c++模版实现 算法导论第三版第十章10.1-5题)

    Deque(双向队列 c++模版实现 ) 算法导论第三版第十章10.1-5题 #ifndef C11LEARN_DEQUE_H #define C11LEARN_DEQUE_H template< ...

  9. 实验8.3 C++标准模板库(STL)中的双向队列类(deque)

    题目 使用C++标准模板库(STL)中的双向队列类(deque)重新实现上一小题. C++代码如下: #include <iostream> #include <deque> ...

最新文章

  1. AI 岗位年薪下降 8.9%,程序员越“老”越吃香,最新薪酬报告发布!
  2. 【深入理解JVM】JVM概述
  3. java coin介绍_代码示例中的Java 7:Project Coin
  4. 干货 | C语言系列3——常量,运算符,常用数学函数......
  5. JAVA:贪吃蛇源代码
  6. 论重写和里式替换原则(LSP)
  7. import是引进外部函数吗_CMake之引入外部项目的三种方法
  8. 一步一步写算法(之排序二叉树插入)
  9. LeetCode 72 编辑距离
  10. ua解析接口_截取字符串+ua解析访问来源+stream多级分组
  11. 汉若塔c语言源码,汉诺塔C语言.doc
  12. 安卓没有第三方rec获取root教程,成功率90%
  13. jq追加html点击事件,jq增加点击事件 Jquery为DIV添加点击事件
  14. Excel表格中两列数据对比,找出异同的数据
  15. 鼠标中键控制音量大小
  16. python项目源码和注解_python源代码和注释 - 随笔分类 - 秦朗的天空 - 博客园
  17. vmware服务器虚拟化培训视频教程,目前网上关于vSphere最详细的视频教程 vSphere全套经典培训视频教程 VMware课程超清...
  18. RT-Thread学习笔记——互斥量
  19. mysql5.7小版本升级-windows
  20. 银行数据仓库体系实践(20)--浅谈银行数据仓库发展趋势

热门文章

  1. java知识点3(null、引用相关知识(自己理解))
  2. 《Oracle高性能自动化运维》一一第1章 Linux下的Oracle
  3. swift 雨燕 新手教程
  4. Git学习系列(六)解决分支冲突及分支管理策略
  5. Draw Circle 沿着圆运动~
  6. 在Exchange Server 2007中限制部分用户只能收发内部邮件
  7. Unity 导出Supermap exe
  8. uefi引导linux_使用UEFI双重引导Windows和Linux
  9. perl调用其他的perl_如何使Perl更优雅
  10. dropbox pac规则_来自Dropbox的Zulip聊天,Linux Foundation报告,FCC规则以及更多新闻