C++队列queue用法详解

一、定义

        queue是一种容器转换器模板,调用#include< queue>即可使用队列类。

二、queue初始化

        queue<Type, Container> (<数据类型,容器类型>)

初始化时必须要有数据类型,容器可省略,省略时则默认为deque 类型

初始化示例

queue<int>q1;
queue<double>q2;  
queue<char>q3;
//默认为用deque容器实现的queue;
queue<char, list<char>>q1;
//用list容器实现的queue queue<int, deque<int>>q2;//用deque容器实现的queue

注意:不能用vector容器初始化queue

        因为queue转换器要求容器支持front()、back()、push_back()及 pop_front(),说明queue的数据从容器后端入栈而从前端出栈。所以可以使用deque(double-ended queue,双端队列)和list对queue初始化,而vector因其缺少pop_front(),不能用于queue。

二、queue常用函数

1、常用函数

        push() 在队尾插入一个元素

        pop() 删除队列第一个元素

        size() 返回队列中元素个数

        empty() 如果队列空则返回true

        front() 返回队列中的第一个元素

        back() 返回队列中最后一个元素

2、函数运用示例

2.1)push()在队尾插入一个元素

queue <string> q;
q.push("first");
q.push("second");
cout<<q.front()<<endl;

输出 first

2.2)pop() 将队列中最靠前位置的元素删除,没有返回值

queue <string> q;
q.push("first");
q.push("second");
q.pop();
cout<<q.front()<<endl;

输出 second 因为 first 已经被pop()函数删掉了

2.3)size() 返回队列中元素个数

queue <string> q;q.push("first");q.push("second");cout<<q.size()<<endl;

输出2,因为队列中有两个元素

2.4)empty() 如果队列空则返回true

queue <string> q;
cout<<q.empty()<<endl;
q.push("first");
q.push("second");
cout<<q.empty()<<endl;

分别输出1和0
最开始队列为空,返回值为1(ture);
插入两个元素后,队列不为空,返回值为0(false);

2.5)front() 返回队列中的第一个元素

queue <string> q;
q.push("first");
q.push("second");
cout<<q.front()<<endl;
q.pop();
cout<<q.front()<<endl;

第一行输出first;
第二行输出second,因为pop()已经将first删除了

2.6)back() 返回队列中最后一个元素
 

queue <string> q;
q.push("first");
q.push("second");
cout<<q.back()<<endl;

输出最后一个元素second

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/16673.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

golang 时间工具类

用不习惯也嫌麻烦每次都去操作时间&#xff0c;然后就自己写了个时间工具类 package timeutilimport ("time" )func New() *TimeUtil {return &TimeUtil{} }// TimeUtil 是时间操作工具类 type TimeUtil struct{}// GetFormattedDate 获取格式化的日期字符串 fun…

MySql004——MySQL 数据类型

和Java中的数据类型一样&#xff0c;MySQL中的字段也有数据类型一说 一、数值类型 类型 大小 范围&#xff08;有符号&#xff09; 范围&#xff08;无符号&#xff09; 用途TINYINT 1 Bytes (-128&#xff0c;127) (0&#xff0c;255) 小整…

团队任务管理器工具推荐:三款适合协作工作的首选

如果您是项目经理或领导一个小团队&#xff0c;那么每天要完成的任务列表似乎无穷无尽。对于任何规模的公司来说&#xff0c;在不依赖任何软件的情况下掌握任务管理的不同方面都是一项挑战。满足您项目管理需求的正确软件可以显著提高团队的生产力——无论您的团队规模或项目范…

微软亚研院提出模型基础架构RetNet或将成为Transformer有力继承者

作为全新的神经网络架构&#xff0c;RetNet 同时实现了良好的扩展结果、并行训练、低成本部署和高效推理。这些特性将使 RetNet 有可能成为继 Transformer 之后大语言模型基础网络架构的有力继承者。实验数据也显示&#xff0c;在语言建模任务上&#xff1a; RetNet 可以达到与…

使用贝叶斯滤波器通过运动模型和嘈杂的墙壁传感器定位机器人研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

ElasticSearch学习之ElasticSearch快速入门实战

1.先“分词” 2.倒排索引&#xff08;前提是分词&#xff09; ElasticSearch官网地址&#xff1a;欢迎来到 Elastic — Elasticsearch 和 Kibana 的开发者 | Elastichttps://www.elastic.co/cn/ 一、下载 下载地址&#xff1a;https://www.elastic.co/cn/downloads/past-re…

Linux 学习记录59(ARM篇)

Linux 学习记录59(ARM篇) 本文目录 Linux 学习记录59(ARM篇)一、IIC总线1. 概念2. IIC总线硬件连接 二、系统框图三、IIC时序1. 起始信号 / 停止信号2. 数据传输信号3. 应答信号 / 非应答信号4. 寻址信号 四、IIC协议1. 主机给从机发送一个字节(写)2. 主机给从机发送多个连续字…

【报错2】ReferenceError: require is not defined解决办法

报错&#xff1a;ReferenceError: require is not defined 安装了npm install -D vite-plugin-mock mockjs后&#xff0c;再次运行报错ReferenceError: require is not defined 解决&#xff1a;安装2.9.6版本 npm i vite-plugin-mock2.9.6 再次运行即可。

Golang安装

目录 Go安装下载安装Go Go安装 下载安装Go 地址&#xff1a;https://studygolang.com/dl 1、根据系统来选择下载包。 2、我是Window&#xff0c;所以直接下载windows的安装包来安装。 3、在控制台窗口输入“go version”可查看Go版本&#xff0c;检测是否安装成功。 4、配置…

ansible-playbook roles模块编写lnmp剧本

目录 一&#xff1a;集中式编写lnmp剧本 二&#xff1a;分布式安装lnmp 1、nginx 配置 2、mysql配置 3、php配置 4、运行剧本 一&#xff1a;集中式编写lnmp剧本 vim /etc/ansible/lnmp.yml- name: lnmp playhosts: dbserversremote_user: roottasks:- name: perpare condif…

Hadoop_HDFS_常见的文件组织格式与压缩格式

参考资料 1. HDFS中的常用压缩算法及区别_大数据_王知无_InfoQ写作社区 2. orc格式和parquet格式对比-阿里云开发者社区 3.Hadoop 压缩格式 gzip/snappy/lzo/bzip2 比较与总结 | 海牛部落 高品质的 大数据技术社区 4. Hive中的文件存储格式TEXTFILE、SEQUENCEFILE、RCFILE…

禁止ios 播放视频自动全屏

1.在微信中禁止全屏 在VIDEO标签中增加 x5-video-player-type“h5-page” x5-video-orientation“landscape|portrait” <video x5-video-player-type"h5-page" x5-video-orientation"landscape|portrait"><source src"1.mp4" type&qu…

【Windows11】家庭版开启组策略指南

目录 背景新建一个cmd文件运行运行结果 背景 Win11找不到gpedit.msc怎么办&#xff1f;有用户通过命令窗口想要去打开本地组策略的时候&#xff0c;系统突然弹出了一个错误提示&#xff0c;显示系统缺少了gpedit.msc导致无法开启本地组策略编辑器了。那么这个情况要怎么去进行…

计算机网络

一&#xff0c;数据通信基础 1&#xff0c;通信方式 单工、半双工、双工 2&#xff0c;信号和数据 2种信号&#xff1a;正弦波&#xff08;模拟信号&#xff09;、光波&#xff08;数字信号&#xff09; 正弦波数字数据&#xff1a;3种调制方式&#xff08;调幅&#xff0…

边听歌边充电LDR6028+LDR9201既能充电又能OTG方案

随着type-c接口的普及&#xff0c;市面上的手机&#xff0c;平板&#xff0c;笔电逐渐都采用了type-c接口&#xff0c;设备为了不断的追求更轻薄的机身和防水要求慢慢的取消了一些影响手机外观完整性的接口&#xff0c;比如3.5mm耳机孔。 有线耳机用户一般会选择使用C口转3.5m…

[自然语言处理] 自然语言处理库spaCy使用指北

spaCy是一个基于Python编写的开源自然语言处理库。基于自然处理领域的最新研究&#xff0c;spaCy提供了一系列高效且易用的工具&#xff0c;用于文本预处理、文本解析、命名实体识别、词性标注、句法分析和文本分类等任务。 spaCy的官方仓库地址为&#xff1a;spaCy-github。本…

nest的核心概念

请求进来 --- 中间件 --- 守卫 --- 拦截器 --- 通道 --- 处理&#xff08;controller层&#xff09; --- 拦截器 --- 返回 Pipe &#xff1a; 就是实现 PipeTransform 接口的 transform 方法&#xff0c;它的返回值就是传给 handler 的值。 ---------------------------------…

C计数问题---2023河南萌新联赛第(三)场:郑州大学

解析&#xff1a; n 可以分成两个数&#xff0c;记录每个数的因子对数&#xff0c;乘起来即可。 注意当因子相同时&#xff0c;只1 #include<bits/stdc.h> using namespace std; int n,res; int main(){cin>>n;for(int i1;i<n;i){int xi,yn-i;int cnt10,cnt20;…

Windows10系统还原操作

哈喽&#xff0c;大家好&#xff0c;我是雷工&#xff01; 复制了下虚拟机的Win10系统&#xff0c;但其中有一些软件&#xff0c;想实现类似手机的格式化出厂操作&#xff0c;下面记录Windows10系统的还原操作。 一、系统环境&#xff1a; 虚拟机内的Windows10&#xff0c;64…