STL - queue用法总结

C++ queue(STL queue,队列)用法详解 图 1 queue容器底层容器必须提供这些操作:front()、back()、push_back()、pop_front()、empty() 和 size()。 阅读详情

(我的STL相关的博客目录:https://blog.youkuaiyun.com/Kprogram/article/details/90408011)

(queue-c++官网:http://www.cplusplus.com/reference/queue/)

queue 是数据结构 “队列”s,拥有元素先进先出的特性。如果用数组来作为队列,长度是有限的,而且需要储存队列首尾的指针,不同于栈,队列还要考率元素出队列之后,留下的空挡该怎么处理。stl提供了一个不定长容器queue来作为队列,queue表留有有队列操作的各种成员函数,方便实用。

0 - 头文件:queue  命名空间:std

#include <queue>
using namespace std;

1 - 构建一个queue:queue<typename> name 

    typename指的是队列内数据类型,可以是 int, double, 可以是struct, class, 也可以是 queue, string等等。总之是一个数据对象都行。

    name 是你构建的队列的名字,符合变量命名法则就行。

    例:构建一个 int 类型的队列, 名字叫做 Q。

queue<int> Q;

2 - 使用queue:常用成员函数 ( 假设你创建的queue对象名字叫 Q )

    (粉红色的函数为常用函数!大部分情况下这些函数就够用了)

无参函数:

    empty():如果queue为空,返回True, 反之则返回 False。

    fornt():返回队列第一个元素。

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

    pop():删除队列第一个元素,并不返回元素(一般与front()配合使用:先返front(),再pop(),相当于出队列操作)。

    size():返回queue内数据的个数(相当于数组长度)。

#一般用法:(假如是一个int类型的队列)
while(!Q.empty()) {//当队列不为空
    int I = Q.front(); Q.pop();//元素出队列
    ...//对I的某些操作

有参函数:

    push(type):把一个数据(type)压入栈顶(相当于入栈)。

        因为对于队列,push等同于push_back,所以queue 没有push_back成员函数!(已经试过了会报错)

    swap(Q1):交换Q 和 Q1 中的内容(Q1是另一个swap对象)。

//假设队列内的数据类型是data
class data {
  int a;
  int b;
public:
  data(int x, int y):a(x), b(y) {}
};
//push:
data d(1,2);
Q.push(d); 
//或者
Q.push(data(1,2)); 

    push的优化:emplace函数(点击蓝色字体>emplace<)

STL源码:queue queue是先进先出(FIFO)的数据结构,有两个口:允许从尾部加入元素、取得头部的元素。没有其他任何方法可以存取queue的其它元素,即queue不允许遍历行为。       SGI STL以deque作为缺省情况下的queue底部结构,queue的实现很简单,代码十分简短。      queue没有迭代器。 为什么STL queue称为容器适配器而不是容器?         阅读详情

相关推荐

C++——STL之stack和queue详解

之前我们了解 stl六大组件中的容器,迭代器,这里再来了解下适配器stack和queue吧

weixin_59055853的博客 1032

push与push_back

1.push():在 queue 的尾部添加一个元素的副本。empty():如果 queue 中没有元素的话,返回 true。front():返回 queue 中第一个元素的引用。back():返回 queue 中最后一个元素的引用。2.push_back():函数将一个新的元素加到。//pop_back() //移除最后一个元素。pop():删除 queue 中的第一个元素。size():返回 queue 中元素的个数。的最后面,位置为当前最后一个元素的下一个元素。

m0_51863774的博客 2820

C++STL之priority_queue的简单使用_在c++stl中priority_queue用法

priority_queue(优先级队列)模拟的也是队列这种存储结构,它底层采用堆结构存储数据,即使用此容器存储元素只能“从一端进(称为队尾),从另一端出(称为队头)”,且每次只能访问 priority_queue 中位于队头的元素。但是,priority_queue 中元素的存和取,遵循的并不是 “First in,First out”(先入先出)原则,而是“First in,Optimal out”原则。指的就是先进队列的元素并不一定先出队列,而是优先级最大的元素最先出队列。

2301_82244279的博客 1187

【C++】STL——queue的介绍和使用、queue的push和pop函数介绍和使用、queue的其他成员函数

STL、queue的介绍、queue的使用、queue构造函数、queue的成员函数、empty()(检测队列是否为空,是返回true,否则返回false)size()(返回队列中有效元素的个数)front()(返回队头元素的引用)back()(返回队尾元素的引用)push()(在队尾将元素val入队列)pop()(将队头元素出队列)

Crocodile1006的博客 1万+

最新版MySQL 9.0 数据库的下载与安装(图文)

本篇文章基于Windows 10 系统下载与安装MySQL 9.0 版本。

我是聂可的博客 7万+

学习十八-UJA107xA简介及移植-0

目录 1、UJA107xA系列手册 1、介绍 2.2.1 BAT引脚功能 2.4.1 V1、V2稳压器 2.5.1 CAN收发器 3.1 Startup Operation 3.2 Normal Operation 5.1 Attached Files 5.2 NXP UJA107xA Example Software 6、main() 1、UJA107xA系列手册 看完手册关于使用还是没有头绪的,只是想SPI发送指令将V2驱动起来,进而驱动起来CAN收...

m0_56344230的博客 1703

C++-queue:queue基本用法【q.push(x)、q.front()、q.back()、q.pop()、q.size()、q.empty()】

为了降低时间复杂度,将数组当作一个首尾相连的圆环,分别用两个标志front、rear代表队列的头部和尾部。删除元素时,队首标志往后移,添加元素时,若队尾没有空间,考虑数组的头部空间若还有,则在队头添加元素,防止数组内存空间的流失。出队操作:数组头部元素出队之后,头部之后的元素均需要往前移动一个位置,时间复杂度为O(n)设置一个标志变量flag,同时满足front=rear且flag=1时为满队列。入队操作:在数组的末尾添加元素,时间复杂度为O(1)链表头为队列头部,链表尾为队列尾部。空一个元素,保持为空。

u013250861的博客 2万+

unity转微信小游戏:使用CDN加载游戏(微信开发者工具云开发CDN)

unity转微信小游戏:使用CDN加载游戏(微信开发者工具云开发CDN)

会潜水的小火龙的博客 3071

容器适配器之queue用法总结

只能访问 queue 容器适配器的第一个和最后一个元素。只能在容器的末尾添加新元素,只能从头部移除元素。 许多程序都使用了 queue 容器。queue 容器可以用来表示超市的结账队列或服务器上等待执行的数据库事务队列。对于任何需要用 FIFO 准则处理的序列来说,使用 queue 容器适配器都是好的选择。 图 1 展示了一个 queue 容器及其一些基本操作: queue 的生成方式和 sta...

陈实Yepper 1425

【小宁学习日记6 PCB】电路原理图

本文系统讲解了电子硬件设计中原理图的阅读与绘制技巧。首先剖析原理图的四大核心要素(元件符号、连接线、结点、注释),强调注释对可读性的重要性。然后提出三步读懂法:查看图纸信息、分模块分析、结合芯片手册验证,并列举5个典型芯片案例(CH224K、CH343P等)进行实战解析。最后给出6条绘制规范:模块化布局、详细标注、规范命名、信号流布局、符号封装匹配、版本管理。文章指出原理图是电子设计的"地基",掌握规范阅读与绘制方法能大幅提升设计效率,避免常见错误。新手应从开源项目分析和简单电路绘制入手

qq_74376834的博客 2352

大数据安全 | 期末复习(上)| 补档

大数据定义:无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。

知识库搭建ing 2588

关于BFS中queue.push()由于入队的不是数据下表索引而出错的解析

STL queue知识说明 当使用STL的queue时,元素入队的时push操作知识制造了该元素的一个副本入队,因此在入对后对原元素的修改不会影响队列中的副本,而对队列中副本的修改也不会修改原元素,需要注意由此可能引入的bug(一般由结构体产生)。例如下面这个例子: // // Created by Huangxin's macbook air on 2020-06-04. // #include <cstdio> #include <queue> using namespace s

qq_42258321的博客 442

硬件工程师学习-硬件的单元测试(UT)(1)电源与时钟的测试

我们在设计的时候,通过控制电源的上电使能管脚或者通过MOSFET、或者专用的电源上电控制芯片,控制不同电源的上电时序,以确保每个芯片的电源上电时序是满足芯片的要求的。我们在测试的时候,需要对相关的要求一一测试,以确认每个上电时序满足要求的。在维基百科中,相位噪声的定义是“时域不稳定性(抖动)导致波形在相位上发生快速、短期、随机的波动,这种波动在频域中的表现即为相位噪声”。单元测试,一般是指基于开发人员自行开展的功能测试及各个功能单元的单元测试,是硬件信号级的测试,分为基本测试和信号完整性测试。

qq_43416206的博客 4033

【STL】queue

queue 是一种容器适配器,设计为先进先出(First In First Out, FIFO)的数据结构,有两个出口,将元素推入队列的操作称为 push, 将元素推出队列的操作称为 pop。

jmlangel_的博客 1198

【Linux命令大全】006.网络通讯之netstat命令(实操篇)

本文详细介绍了Linux系统中netstat网络诊断命令的实用技巧。主要内容包括:1) 基本功能与参数详解,展示如何查看网络连接、路由表和接口统计;2) 安装方法及基础用法,如查看TCP/UDP连接、显示进程信息和路由表;3) 高级应用技巧,包括监听端口检查、连接状态统计和实时监控。文章通过表格和代码示例,系统性地呈现了netstat在系统管理中的核心应用场景,是网络故障排查和性能监控的实用指南。

yuhuasheng1997的博客 705

【WorkBuddy专栏25】如何选择大模型——积分消耗、用途场景、选型决策全指南

【WorkBuddy专栏25】如何选择大模型——积分消耗、用途场景、选型决策全指南

AI人人懂 933

STL queue 常见用法详解

《算法笔记》学习笔记 queue 常见用法详解 queue翻译为队列,在STL中主要则是实现了一个先进先出的容器。 1. queue 的定义 //要使用queue,应先添加头文件#include <queue>,并在头文件下面加上"using namespace std;",即可使用。 //定义写法 queue< typename > name; //typena...

239

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

STL库中queue的用法及示例

queue<数据类型>队列名;这样就定义了一个队列,可以进行操作啦;

2501_90756121的博客 461

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

浅谈STL之Queue

这一系列文章是给像我一样的小白们使用的,也欢迎各位dalao指正错误。这个系列预计要出三章,这一章是本系列的第一章。浅谈STL之Vector。

weixin_72238593的博客 1038

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

STL学习 - queue了解

Queue是STL中的队列表示。 特点是先进先出(First In First Output FIFO)。 允许的操作是新增元素,移除元素,从最底端添加元素,从最顶端获取元素,除了从底端加入元素,从顶端取出外,没有任何其它方法可以存取queue的其他元素,也就是说queue不允许有遍历行为。 把元素推入queue的操作为push, 将元素推出queue的操作为pop. 由于queue系以底部容器完成

累了就歇一会 2871

STL之queue的常见用法详解

摘自胡凡的《算法笔记》,仅作记录用! 前言:要使用queue,应先添加头文件#include <queue> ,并在头文件下面加上using namespace std; 一、queue的定义 其定义的写法和其他STL容器相同,typename可以是任意基本数据类型或容器queue<typename> name; 二、queue容器内元素的访问 由于队列本身就是一种先进先出的限制性数据结构,因此在STL中只能通过front()来访问队首元素,或是通过back()来访问队尾元素 三、q

lilian的博客 1068

STL—queue

文章目录一、什么是queue二、queue的操作1.queue的定义2.queue容器内元素的访问3.queue中的函数(1)push()(2)front(),back()(3)pop()(4)empty()(5)size() 一、什么是queue queue翻译为队列,在STL中实现了一个先进先出的容器,意思是先插入到队列中的元素先出队,我们也可以通过数组去模拟一个队列,具体操作见博客:用数组模拟队列,本博客讲述STL中的queue的应用,要想使用queue,需要添加头文件:#include <.

佛系更新 1417

C++STL——stack,queue

本篇主要讲解stack与queue的底层,但并不会进行实现,stack的接口queue的接口,关于stack与queue的接口在这里不做讲解,因为通过前面的对STL的学习,这些接口都是大同小异的。

prime6899的博客 1325

STL之容器queue

STL的queue容器

Serven的博客 1万+

STL中queue用法详解

queue再STL中主要实现了先进先出的容器。 1.queue定义 #include<queue> using namespace std; queue < typename > q; 2.queue容器内元素的访问 queue是有限制的线性表,先进先出,所以只能通过front () 访问队首元素,back () 访问队尾元素 #include<stdio.h> #include<queue> using namespace std; int main(

西西弗的博客 1760

STL—stack/queue/priority_queue_/deque

讲述了STL库中stack和queue以及priority_queue的学习和模拟实现。深度学习这三个容器适配器、并且学习和理解了deque的原理和底层结构。其优劣性的分析

aaa114514aaaa的博客 1991
上一篇: STL - stack用法总结
下一篇: STL - vector用法总结
Korpse
博客等级 码龄9年 115粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值