C++ queue deque
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的更多相关文章
- java三篇博客转载 详解-vector,stack,queue,deque
博客一:转载自http://shmilyaw-hotmail-com.iteye.com/blog/1825171 java stack的详细实现分析 简介 我们最常用的数据结构之一大概就是stack ...
- 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 ...
- Java容器解析系列(6) Queue Deque AbstractQueue 详解
首先我们来看一下Queue接口: /** * @since 1.5 */ public interface Queue<E> extends Collection<E> { / ...
- LinkedList(实现了queue,deque接口,List接口)实现栈和队列的功能
LinkedList是用双向链表结构存储数据的,很适合数据的动态插入和删除,随机访问和遍历速度比较慢. 底层是一个双向链表,链表擅长插入和删除操作,队列和栈最常用的2种操作都设计到插入和删除 impo ...
- python 中的queue, deque
python3 deque(双向队列) 创建双向队列 import collections d = collections.deque() append(往右边添加一个元素) import colle ...
- 【JDK】JDK源码-Queue, Deque
概述 Queue 和 Deque 都是接口.其中 Queue 接口定义的是一个队列,它包含队列的基本操作:入队(enqueue)和出队(dequeue). Deque 接口继承自 Queue 接口,表 ...
- STL初步学习(queue,deque)
4.queue queue就是队列,平时用得非常多.栈的操作是只能是先进先出,与栈不同,是先进后出,与之后的deque也有区别.个人感觉手写队列有点麻烦,有什么head和tail什么的,所以说 STL ...
- queue deque
- python-Day3-set 集合-counter计数器-默认字典(defaultdict) -可命名元组(namedtuple)-有序字典(orderedDict)-双向队列(deque)--Queue单项队列--深浅拷贝---函数参数
上节内容回顾:C语言为什么比起他语言块,因为C 会把代码变异成机器码Pyhton 的 .pyc文件是什么python 把.py文件编译成的.pyc文件是Python的字节码, 字符串本质是 字符数组, ...
随机推荐
- C# orderby子句
注意:对联接运算的结果进行排序. 请注意,排序在联接之后执行. 虽然可以在联接之前将 orderby 子句用于一个或多个源序列,不过通常不建议这样做. 某些 LINQ 提供程序可能不会在联接之后保留该 ...
- G彩娱乐网【分享】想要开源自己的代码可以参考一下
作为一个开发者,如果你打算开源自己的代码,千万不要忘记,选择一种开源许可证(license). 许多开发者对开源许可证了解很少,不清楚有哪些许可证,应该怎么选择.本文介绍开源许可证的基本知识,主要参考 ...
- CentOS7配置更新国内yum源
备份本地yum源文件 cd /etc/yum.repo.d/ mv CentOS-Base.repo CentOS-Base.repo.bakeup 下载国内yum源 阿里云yum源 wget htt ...
- 使用java生成mapbox-gl可读的vector tile
概述 mapbox-gl主要数据源来自mapbox vector tile,本文就是要阐述怎样把postgresql中的地理空间数据转换成vector tile,流程图如下: 配置 该工程采用spri ...
- 重构手法之Introduce Explaining Variable(引用解释性变量)
返回总目录 6.5Introduce Explaining Variable(引用解释性变量) 概要 你有一个复杂的表达式. 将该复杂表达式(或其中一部分)的结果放进一个临时变量,以此变量名称来解释表 ...
- MVC 小案例 -- 信息管理
前几次更新博客都是每次周日晚上到周一,这次是周一晚上开始写,肯定也是有原因的!那就是我的 Tomact 忽然报错,无法启动,错误信息如下!同时我的 win10 也崩了,重启之后连 WIFI 的标志也不 ...
- 为Go程序创建最小的Docker Image
本文将会介绍如何使用docker打包一个golang编写的应用程序,最终的产物就是一个makefile文件,可别小瞧这短短几行代码,涉及的知识点可不少,接下来我们就仔细剖析一下吧. FROM gola ...
- python3学习笔记(0)
一.编程语言主要从以下几个角度分类:1.编译型和解释型2.静态语言和动态语言3.强类型定义语言和弱类型定义语言编译型:程序运行前先由负责翻译的程序将代码转换成可执行代码进行执行.例如C/C++.Pas ...
- IMDB TOP 250爬虫
这个小学期Python大作业搞了个获取IMDB TOP 250电影全部信息的爬虫.第二次写爬虫,比在暑假集训时写的熟练多了.欢迎大家评论. ''' ************************** ...
- Git详解及 github与gitlab使用
1.1 关于版本控制 1.1.1 本地版本控制 本地版本控制系统 许多人习惯用复制整个项目目录的方式来保存不同的版本,或许还会改名加上备份时间以示区别.这么做唯一的 好处就是简单,但是特别容易犯错.有 ...