queue

queue 队,一种先进先出的数据结构,c++ stl里也叫容器适配器,它是以deque 或list为基础的一种数据结构

queue的相关操作

queue<int deque<int>>   q;
queue<int list<int>>    q;
q.empty();
q.size();
q.push(item);           //入队
q.pop();                //出队
q.back();               //返回对尾元素
q.front();             //返回队首元素

学习代码


#include <iostream>
#include <queue>
#include <deque>
#include <list>

using namespace std;
int main()
{
    queue<int, deque<int>> a;
    queue<int, list<int>>   b;
    queue<int>             c;//默认以deque为基础

    c.push(10);
    c.push(5);
    c.push(-1);
    c.push(20);
    cout << "队列里数据有" << c.size() << "个" << endl;
    cout << "队首:" << c.front() << endl;
    cout << "队尾:" << c.back() << endl;
    c.pop();
    cout << "新队首:" << c.front() << endl;

    while (c.size() != 0)
    {
        cout << "删除" << c.front() << endl;
        c.pop();
    }
    if (c.empty())
    {
        cout << "现在队列为空" << endl;
    }

    getchar();
    return 0;
}

deque

双端队列,与vector很相似,在中间位置插入或删除元素的代价较大。vector和deque相比只能在尾部添加或删除元素,而deque可在首部删除或添加元素

定义和初始化

deque<T> d;
deque<T> d(d1);
deque<T> d=d1;
deque<T> d={a1,a2,a3,...}

deque的相关操作

push_back(val);
push_front(val);
pop_back();
pop_front();
distance(iterator it1,iteraotr it2)   //在algorithm头文件中,计算2个迭代器所指元素之间的距离

学习代码


#include<iostream>
#include<deque>
#include<algorithm>
using namespace std;
int main()
{
    deque<int> a;
    a.push_back(3);
    a.push_back(4);
    a.push_back(5);

    a.push_front(2);
    a.push_front(1);
    a.push_front(0);

    a.pop_back();
    a.pop_front();

    /*for (deque<int>::size_type nCount = 0; nCount < a.size(); ++nCount)
    {
        cout << a[nCount] << endl;
    }*///使用下标访问

    for (deque<int>::iterator it = a.begin(); it != a.end(); ++it)
    {
        size_t nOffset = distance(a.begin(), it);
        cout << *it << endl;
        cout << *it << "与对首元素之间的距离:" << nOffset << endl;
    }
    getchar();
    return 0;
}

C++ queue deque的更多相关文章

  1. java三篇博客转载 详解-vector,stack,queue,deque

    博客一:转载自http://shmilyaw-hotmail-com.iteye.com/blog/1825171 java stack的详细实现分析 简介 我们最常用的数据结构之一大概就是stack ...

  2. STL容器用法速查表:list,vector,stack,queue,deque,priority_queue,set,map

      list vector deque stack queue priority_queue set [unordered_set] map [unordered_map] multimap [uno ...

  3. Java容器解析系列(6) Queue Deque AbstractQueue 详解

    首先我们来看一下Queue接口: /** * @since 1.5 */ public interface Queue<E> extends Collection<E> { / ...

  4. LinkedList(实现了queue,deque接口,List接口)实现栈和队列的功能

    LinkedList是用双向链表结构存储数据的,很适合数据的动态插入和删除,随机访问和遍历速度比较慢. 底层是一个双向链表,链表擅长插入和删除操作,队列和栈最常用的2种操作都设计到插入和删除 impo ...

  5. python 中的queue, deque

    python3 deque(双向队列) 创建双向队列 import collections d = collections.deque() append(往右边添加一个元素) import colle ...

  6. 【JDK】JDK源码-Queue, Deque

    概述 Queue 和 Deque 都是接口.其中 Queue 接口定义的是一个队列,它包含队列的基本操作:入队(enqueue)和出队(dequeue). Deque 接口继承自 Queue 接口,表 ...

  7. STL初步学习(queue,deque)

    4.queue queue就是队列,平时用得非常多.栈的操作是只能是先进先出,与栈不同,是先进后出,与之后的deque也有区别.个人感觉手写队列有点麻烦,有什么head和tail什么的,所以说 STL ...

  8. queue deque

  9. python-Day3-set 集合-counter计数器-默认字典(defaultdict) -可命名元组(namedtuple)-有序字典(orderedDict)-双向队列(deque)--Queue单项队列--深浅拷贝---函数参数

    上节内容回顾:C语言为什么比起他语言块,因为C 会把代码变异成机器码Pyhton 的 .pyc文件是什么python 把.py文件编译成的.pyc文件是Python的字节码, 字符串本质是 字符数组, ...

随机推荐

  1. hdu1285 确定比赛名次(拓扑排序)

    有N个比赛队(1<=N<=500),编号依次为1,2,3,....,N进行比赛,比赛结束后,裁判委员会要将所有参赛队伍从前往后依次排名,但现在裁判委员会不能直接获得每个队的比赛成绩,只知道 ...

  2. Problem J

    Problem Description 有一楼梯共M级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第M级,共有多少种走法? Input 输入数据首先包含一个整数N,表示测试实例的个数,然后是 ...

  3. Python filter用法

    class filter(object) | filter(function or None, iterable) --> filter object | | Return an iterato ...

  4. ie 如何判断正在执行的脚本

    1.在非ie浏览器里,script上的onload事件会准确地在脚本执行完以后触发   2.在ie浏览器里,如果脚本是在缓存里的话,那么onload事件是在你把script标签插入Dom结束时马上执行 ...

  5. 强大又简单的响应式框架——Foundation 网格系统

          前端框架——Foundation     简介 Foundation 用于开发响应式的 HTML, CSS and JavaScript 框架. Foundation 是一个易用.强大而且 ...

  6. 如何实现border-width:0.5px;

    工作中遇到了一个产品需求,要求把列表分割线改成0.5px,直接写成border:0.5px solid #cccccc;是不符合规范的写法,会存在Android和IOS手机上的兼容问题,故,我们可以利 ...

  7. c#控件攻略宝典之ListBox控件

    ListBox控件的使用: 1)控件属性 Items SelectedItems SelectioModes 2)数据绑定 DataSoure DisplayMember ValueMenber 3) ...

  8. 在64位Win7环境+64位JDK下,运行64位Eclipse,提示“Failed to load the JNI shared library”错误,提示jvm.dll不对

    -startup plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar --launcher.library plugins/org.ecl ...

  9. Java多线程学习之ThreadLocal源码分析

    0.概述 ThreadLocal,即线程本地变量,是一个以ThreadLocal对象为键.任意对象为值的存储结构.它可以将变量绑定到特定的线程上,使每个线程都拥有改变量的一个拷贝,各线程相同变量间互不 ...

  10. django之第二天

    今天学习目标: 一,路由系统 1,默认处理函数 2,动态URL 3,分级匹配 4,反射实现动态路由 二.中间件 三.Model(重点) 1,创建表 2,操作表数据 四.Form (重点) 1,用户提交 ...