queue的常见用法详解
目录
- queue的定义
- queue容器内元素的访问
- queue常用函数
- queue的常见用途
queue 翻译为队列,在STL中主要则是实现了一个先进先出的容器。
queue的定义
要使用queue,应先添加头文件:
#include<queue>
需要的其他东西:
using namespace std;
其定义的写法和其他STL容器相同,typename可以是任意基本数据类型或容器:
queue<typename> name;
queue容器内元素的访问
由于队列(queue)本身就是一种先进先出的限制性数据结构,
因此在STL中只能通过front()来访问队首元素,或是通过back()来访问队尾元素。
queue常用函数
(1) push()
push(x)将x进行入队,时间复杂度为O(1)。
(2) front()、back()
front()和back()可以分别获得队首元素和队尾元素,时间复杂度为O(1)。
(3) pop()
pop()令队首元素出队,时间复杂度为O(1)。
(4) empty()
empty()检测queue是否为空,返回true则为空,返回false则为非空。时间复杂度为O(1)。
(5) size()
size()返回queue内元素的个数,时间复杂度为O(1)。
queue的常见用途
当需要实现广度优先搜索时,可以不用自己手动实现一个队列,而是用queue作为代替以提高程序的准确性。
另外有一点注意的是,使用front()和pop()函数前,必须用empty()判断队列是否为空否则可能因为队空而出现错误。
延伸: STL的容器中还有两种容器跟队列有关,分别是双端队列(deque)和优先队列(priority_queue),
前者是首尾皆可插入和删除的队列,后者是使用堆实现的默认将当前队列最大元素置于队首的容器。
queue的常见用法详解相关推荐
- 《算法笔记》学习日记——6.1 vector的常见用法详解
目录 6.1 vector的常见用法详解 问题 A: Course List for Student (25) 问题 B: Student List for Course (25) 小结 6.1 ve ...
- Linux中head和tail命令作用,Linux 命令head和tail常见用法详解
head和tail是一组想对应的命令,默认分别显示文件的开头和末尾10行记录. head head 命令可以将一段文本的开头一部分输出到标准输出. head命令既可以处理文本文件也可以处理标准输入. ...
- linux lvm2,LVM2常见用法详解
LVM2常见用法详解 1.简介 LVM(Logical Volume Manager)是逻辑卷管理的意思,是linux环境下对磁盘分区进行管理的一种机制,lvm是建立在硬盘和分区之上的一个逻辑层,来提 ...
- C++/C--unordered_map常见用法详解
文章目录 1. std::unordered_map 的定义与特性 2. 构造 std::unordered_map 3. 赋值操作 4. 迭代器操作 4.1 指向整个容器中的元素 4.2 指向某个桶 ...
- C++/C--set常见用法详解【转载】
1 概念 set是一个内部自动有序且不含重复元素的容器,其实现自动去重按升序排序.使用set,需要添加头文件:#include <set>.可以通过迭代器*it来访问set里面的元素,但是 ...
- C++中的unordered_map常见用法详解
文章目录 1. std::unordered_map 的定义与特性 2. 构造 std::unordered_map 3. 赋值操作 4. 迭代器操作 4.1 指向整个容器中的元素 4.2 指向某个桶 ...
- python propresql mysql_python数据库操作mysql:pymysql、sqlalchemy常见用法详解
本文实例讲述了python数据库操作mysql:pymysql.sqlalchemy常见用法.分享给大家供大家参考,具体如下: 相关内容: 使用pymysql直接操作mysql 创建表 查看表 修改表 ...
- dig命令的常见用法详解
CATALOG 什么是dig 一个查询的例子 常见用法 什么是dig dig(域信息搜索器)命令是一个用于询问 DNS 域名服务器的灵活的工具.它执行 DNS 搜索,显示从受请求的域名服务器返回的答复 ...
- priority_queue的常见用法详解
目录 前言 priorithy_queue的定义 priority_queue容器内元素的访问 priority_queue常用函数 priority_queue内元素优先级的设置 priority_ ...
最新文章
- 阿里转衰!百度没落!字节跳动崛起!未来的互联网是腾讯和字节跳动的世界!这样的言论你相信吗?...
- MongoDB 索引
- c++有哪四个类型转换相关的关键字
- Linux下python升级安装步骤
- atlas单机模式代码_游戏日报:3DS源码遭泄露,COD吃鸡更新经典模式,重装机兵再跳票...
- java网络文章博客抓取系统_java 后端博客系统文章系统——No3
- python文件输入符_python文件IO与file操作
- MongoDB学习总结(五) —— 安全认证
- 基于flask框架的高校舆情分析系统
- iphone11京东商品评论分析
- ESP8266 wifi模块开发汇总
- c语言文件输入调查结论,C语言选修实验报告_调查报告_表格模板_实用文档.doc
- 关于数位板电脑绘画——入门篇
- 怎么录制电脑桌面视频 具体的操作方法
- [论文速览]A Neural Attention Model for Sentence Summarization
- SparkSteaming运行流程分析以及CheckPoint操作
- Mac小技巧—如何查看 Mac 的关机和重启历史
- WordPress博客系统搜索引擎优化seo全攻略-新华站长网
- Linux管道命令grep 和 wc
- Java之HTTP网络编程(下篇:网页浏览器程序设计)
热门文章
- 《python机器学习经典实例》Expected 2D array, got 1D array instead和Reshape your data either using array.问题(已解决)
- 老男孩python学习_day004作业
- HDU - 3068 最长回文(manacher)
- MySQL数据表字段内容的批量修改、复制命令
- 配置错误定义了重复的“system.web.extensions/scripting/scriptResourceHandler” 解决办法...
- 使用Android拍照程序报setParameters failed错误
- flot中文API(转载)
- (转)几种流行的JS框架的选择
- VC里的集合类、链表类、映射类
- 区块链BaaS云服务(38)点存DCpool分布式存储