C++ queue队列容器

C++队列queue用法详解 queue是一种容器转换器模板,调用#include< queue>即可使用队列类。queue () 初始化时必须要有数据类型,容器可省略,省略时则默认为deque 类型1: 2: 注意:不能用vector容器初始化queue 因为queue转换器要求容器支持front()、back()、push_back()及 pop_front(),说明queue的数据从容器后端入栈而从前端出栈。所以可以使用deque和list对queue初始化,而vector因 阅读详情

queue是队列容器,是一种“先进先出”的容器。
例如公共电话亭。必须有人出来,下一个才能进入。
如图:在这里插入图片描述

默认情况下queue是利用deque容器实现的一种容器。

它只允许在队列的前端(front)进行删除操作,而在队列的后端(back)进行插入操作。

使用queue需包含头文件#include <queue>

以上笔记来自腾讯课堂骑牛学院!


定义

queue采用模板类实现,queue对象的默认构造形式:queue< T > q1;

queue<int> q1;
queue<double> q2;
queue<char> q3;

// queue定义时默认使用deque作为他的存储对象,
queue<int, deque<int>q1;
// 也可以修改list容器。
queue<int, list<int>> q4;



queue<int> q5 = q1;		// 拷贝构造
queue<int> q6;
q6 = q1;			// 赋值运算符重载重载
queue<int> q7(q1);	// 拷贝构造

注意:不能修改为vector容器。


// 尾部插入
q1.push(1);

// 头部删除
q1.pop();

// 获取队首的值
q1.front();

// 获取队尾的值
q1.back();

// 获取容器中的元素个数
q1.size();

// 判断容器是否为空
q1.empty();

// 交换容器的元素
q1.swap(q2);


注意:queue队列容器没有迭代器,所以,想要输出里面的所有值,唯有以下方法:

while (!q2.empty()) {			// 如果不为空则继续执行
	cout << q2.front() << " ";	// 输出队列头部的值
	q2.pop();					// 队列头部出队
}
cout << endl;

测试代码:

#include <iostream>
#include <Windows.h>
#include <queue>
#include <list>

using namespace std;

// 定义
void test1(void) {
	queue<int> q1;
	queue<double> q2;
	queue<char> q3;

	// queue定义时默认使用deque作为他的存储对象,
	// 也可以修改list容器。注意:不能修改为vector容器。
	queue<int, list<int>> q4;


	queue<int> q5 = q1;	
	queue<int> q6;
	q6 = q1;	// =重载
	queue<int> q7(q1);	// 拷贝构造
}

// 头部删除与尾部增加
void test2(void) {
	queue<int> q1;

	// 尾部插入
	q1.push(1);
	q1.push(2);
	q1.push(3);
	
	// 头部删除
	q1.pop();

	// 获取队首的值
	int front = q1.front();	

	// 获取队尾的值
	int back = q1.back();

	cout << "队首:" << front << " 队尾:" << back << endl;

	// 可以直接修改队首和队尾的值
	q1.front() = 111;
	q1.back() = 222;

	cout << "队首:" << q1.front() << " 队尾:" << q1.back() << endl;
}

// empty 与 size
void test3(void) {
	queue<int> q1;
	queue<int> q2;

	q1.push(1);
	q1.push(2);
	q1.push(3);

	// 获取容器中的元素个数
	q1.size();

	// 判断容器是否为空
	q1.empty();

	if (!q1.empty()) {
		cout << "容器个数:" << q1.size() << endl;
	} else {
		cout << "容器为空!" << endl;
	}

	// 交换容器的元素
	q1.swap(q2);


	while (!q2.empty()) {			// 如果不为空则继续执行
		cout << q2.front() << " ";	// 输出队列头部的值
		q2.pop();					// 队列头部出队
	}
	cout << endl;
}

int main(void) {
	//test1();

	//test2();

	test3();

	system("pause");
	return 0;
}

STL其他容器学习链接:

  1. C++ map 和 multimap 容器

  2. C++ set 和 multiset 容器

  3. C++ list容器

  4. C++ deque容器

  5. C++ vector容器

C++队列queue用法详解与广度优先算法轮廓(BFS) 阅读详情

相关推荐

C++ STL容器之queue

C++ queue 容器 定义于头文件 <queue>,申明为: template< class T, class Container = std::deque<T> > class queue; std::queue 类是容器适配器,它给予程序员队列的功能——尤其是 FIFO (先进先出)数据结构。 类模板表现为底层容器的包装器——只提供特定...

hestyle的博客 772

C++队列queue用法详解(超详细)

点击蓝字关注我们一、定义queue是一种容器转换器模板,调用#include< queue>即可使用队列类。二、queue初始化queue<Type,Container> (<数据类型,容器类型>)初始化时必须要有数据类型,容器可省略,省略时则默认为deque类型初始化示例queue<int>q1; queue<double>q2; ...

轻松学C语言 1万+

Android C++基础--vector容器、queue队列、stack栈

1.vector类(容器)-初始化、添加和插入 #include <iostream> #include <vector> using namespace std; void main() { //方式一 cout << "初始化方式1:" << endl; vector<char> vt; vt.pu...

安卓兼职framework和app工程师的博客 454

STL容器——queue与deque的基本操作

queuename;Type可以是int,float,double,char甚至是结构体类型等。不同,deque是双端数组,而vector是单端的。由于队列(queue)本身就是一种先进先出的限制性。,因此在STL中只能通过。deque容器为一个给定。...

weixin_53986026的博客 1157

使用C++ STL容器Queue进行队列编程

使用C++ STL容器Queue进行队列编程队列(Queue)是一种常用的数据结构,它遵循先进先出(First-In-First-Out,FIFO)的原则。在C++中,STL(Standard Template Library)提供了一个名为Queue的容器,可以方便地实现队列的操作。本文将介绍如何使用C++ STL容器Queue进行队列编程,并提供相应的源代码。接下来,我们可以创建一个Queue对象,并进行一系列的操作。

TechInk的博客 178

定时器(PWM输出)触发ADC采样(DMA)——STM32CubeMX

已知 Tclk 为 84MHz , 我们需要 Tout 为 200ms 即 200000us , 不妨先让PSC为 839, 带入上述公式可得 ARR = 19999. 这样算出来之后ARR和PSC都在0~65535的范围, 则可以使用这组参数。例如,如果时钟频率为1MHz,并且PSC设置为1000,则实际的定时频率将为1kHz。当重装载值(Period 或 ARR)设置为 500 时,意味着定时器需要计数 500 个时钟周期才会触发中断。例如,如果时钟频率为1MHz,则Tclk为1微秒。

2301_77123899的博客 1万+

c++队列容器queue

先进先出,有两个口,没有迭代器,不能遍历,只能访问顶端的元素才能被访问。 例子:

瑞_板凳精神 229

STM32实战:如何快速移植野火PID调试助手协议到你的电机控制项目

本文详细解析了如何将野火PID调试助手协议快速移植到STM32电机控制项目中。通过深度剖析协议帧格式、数据解析逻辑及环形缓冲区应用,提供了从工程结构规划、核心函数适配到串口中断集成的完整移植步骤。文章还分享了协议健壮性增强、数据上报频率优化等高级调试技巧,帮助开发者构建稳定可靠的上位机调试通道,大幅提升PID参数整定效率。

weixin_29171129的博客 466

C++中queue容器(队列)的语法及常用接口(附C++代码)

C++ 中的 queue 是标准模板库(STL)中的一种容器适配器,用于实现先进先出(FIFO, First In First Out)的队列数据结构。

qq_40280673的博客 811

音频降采样系数

如果需要把8K, 16K, 32K, 48K采样率的音频数据降为4K的音频数据, 最简单的方法根据降频倍数来取点, 但是线性度不好. 另一种线性度好一点的方法是: 取适当个数的点数, 各点乘以各自点的系数, 然后相加取平均值. 降频倍数与系数的关系如下: 2倍:     {0.3, 0.4, 0.3} 4倍:    {0.15, 0.2, 0.3, 0.2, 0.15} 8倍:   {0

joans123的专栏 4645

NCBI|叶绿体基因组数据上传

叶绿体基因组NCBI上传 小编最近在NCBI上传了好几次数据…想着可以把具体的上传步骤写下来,供大家参考。以下是叶绿体基因组的上传示例,大家可以瞅瞅 图片 准备工作 1.登录NCBI官网:https://www.ncbi.nlm.nih.gov/, 依次点击“sign in to NCBI”——“See more 3rd party sign in options”——搜索“Microsoft live.com”。 ”sign in to NCBI“ ”See more 3rd party sign i

weifanbio的博客 3900

C++ --容器之queue(队列)

一. queue的特性 队列是一种特殊的线性表,是一种先进先出(FIFO)的数据结构。它只允许在表的前端(front)进行删除操作,而在表的后端进行插入操作。 进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。 二. queue常用操作 1.queue 构造函数 queue<T> que; //采用模板实现,queue对象的默认构造形式; queue...

ゃ﹏淸凨ゞ 649

智能车图像处理20-进阶篇12--正入十字补线1

这篇文章主要讲述基本的正入十字补线方法。

taiyuezyh的博客 6930

探索实现C++ STL容器适配器:优先队列priority_queue

 在算法竞赛中,选手们常常能在0.01秒内分出胜负;在实时交易系统中,毫秒级的延迟可能意味着数百万的盈亏;在高并发服务器中,每秒需要处理数万条不同优先级的请求——这些系统背后,都隐藏着同一种强大的数据结构:​优先队列(priority_queue)​作为C++标准库中最优雅的数据结构适配器,priority_queue完美封装了堆算法的高效性,却只需几行代码即可实现复杂优先级管理。本文将深入剖析

月亮永悬不落,剑指巅峰 2884

vectorCast——Probe point 功能实现故障注入,局部变量打印,断点调试。

选择一个测试用例,选择coverage窗口进行查看。点击edit probe point,如图所示绿色的小圆圈。 选代码中选择需要打断点的地方进行点击。黑色的小圆点都可以选。 点击黑色小圆点,小圆点变绿,表示打断点成功。 此时就可以根据自己的需求在打断点的位置编写一些C语言的命令语句。 点击编译,成功会弹出窗口显示编译成功,失败会在下方报错error,并显示错误的原因。 点击应用保存,选择yes to all就可以了。 点击用例执行就可以看到打断点情况下的执行结果了。

weixin_59334478的博客 2063

电商数据采集实战——多平台价格监控、比价分析与智能告警系统

在电商竞争日益激烈的今天,价格监控与比价分析已成为品牌商、渠道商和消费者的核心需求。对于品牌商而言,需要监控各渠道售价是否低于指导价(破价监控);对于消费者而言,希望在最佳时机以最低价购入心仪商品;对于数据分析师而言,价格波动数据是洞察市场趋势的金矿。然而,电商数据采集面临三大核心挑战:本文将基于 Python + Scrapy + Playwright + Redis + ClickHouse 技术栈,构建一套完整的电商价格监控与比价系统。架构分层说明:电商平台的反爬手段层出不穷,采集系统必须具备多层次的

从事移动开发八年,csdn博客专家,阿里云特邀专家,华为云云享专家,高级网络信息安全工程师,大数据工程师(高级),python技术开发(高级),HarmonyOS 应用开发者高级认证,现在某学校任教。 136

【C++】STL 容器 - queue 队列容器 ( queue 容器简介 | queue 容器特点 | push 函数 | pop 函数 | front 函数 )

一、 queue 队列容器简介 1、queue 队列容器引入 2、queue 队列容器特点 二、 queue 队列常用 api 函数 1、队尾插入函数 - queue#push 函数 2、队头删除函数 - queue#pop 函数 3、获取队首元素 - queue#front 函数

让 学习 成为一种 习惯 ( 韩曙亮 の 技术博客 ) 2390

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

C++STL容器学习总结之四:队列queue

&gt;&gt;&gt;C++STL容器学习总结之一:向量vector&lt;&lt;&lt; &gt;&gt;&gt; C++STL容器学习总结之二:链表list&lt;&lt;&lt; &gt;&gt;&gt;C++STL容器学习总结之三:双端队列deque&lt;&lt;&lt; &gt;&gt;&gt;C++STL容器学习总结之

Zebra的博客 405

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

c++容器之队列queue的用法

c++中队列的用法 C++队列queue模板类的定义在#include<queue>头文件中,queue 模板类需要两个模板参数,一个是元素类型,一个容器类型,元素类型是必要的,容器类型是可选的。C++队列queue是一种容器适配器,它给予程序员一种先进先出(FIFO)的数据结构。 队列queue的成员函数如下: 1、back()返回最后一个元素 2、empty()如果队列空则返回真 3、front()返回第一个元素 4、pop()删除第一个元素 5、push()在末尾加入一个元素 6、size

weixin_48443703的博客 1287

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

C++ STL标准库:容器适配器 队列queue

文章目录1. 简介2. 基本使用3. 更换queue的内部实现容器 queue - C++ Reference (cplusplus.com) 1. 简介 queue(队列)是一个先进先出(FIFO,first in first out)的容器适配器,队列是通过现有序列容器(默认是双端队列 deque)来实现的。 STL以 deque作为缺省情况下的 queue内部结构,但 deque是双向开口的数据结构,需限制只能在容器的 末尾添加元素,头部移除元素。 2. 基本使用 #include<queu

超级大洋葱的博客 891

「C/C++」C++ STL容器库 之 std::queue 队列容器

std::queue是一个简单且易于使用的容器适配器,提供了基于队列的数据结构,适用于许多不同的编程场景。它的主要优点是先进先出(FIFO)的特性,使得它在实现任务调度、广度优先搜索(BFS)算法、消息队列、生产者-消费者问题等需要FIFO数据结构的场景中非常有用。在使用std::queue默认情况下,std::queue使用std::deque作为其底层容器,但也可以根据需要选择其他容器(如std::list在调用front()back()pop()等函数之前,应确保队列不为空,以避免未定义行为。

何曾参静谧的博客 1328

跟我学 C++ 容器队列 queue 和deque

c++ queue

SYY_LR的博客 984

C++中STL容器之队列——queue

1.队列(queue)的简单介绍 和栈相反,队列(queue)是一种先进先出(first in first out,缩写为FIFO)线性表。它只允许在在表的一端进行插入,称之为队尾(rear),而在另一端删除元素,称为队头(front)。这话我们生活中的排队思想是一致的,最早进入队列的元素最早离开。 一般的队列示意图如下: 2.队列的基本用法 2.1 头文件 #include&amp;lt;queue&amp;...

75 69 69 80 32 67 79 68 73 78 71 33 1691

【C++】STL中的queue队列容器

queue队列容器 定义 queue是一种对队首队尾进行操作的一种先进先出的线性表。 头文件 #include<queue> 创建queue对象 模板:queue<数据类型,容器类型> q; 数据类型:可以是int、double等基本类型,也可以是自定义的结构体。 容器类型:一般为deque(双端列队)或者list(双向链表),可省略,省略时以deque为默认容器。 qu...

qq_43730185的博客 593

c++ STL容器队列queue

#include<iostream> #include <queue> using namespace std; class teacher { public : int age; char name[32]; void printf() { cout<<age<<endl; } }; void int...

xinlongkun的博客 371
上一篇: C++ 入门算法,你必须懂的“顺序表”
下一篇: C++ priority_queue优先级队列容器
cpp_learners
博客等级 码龄7年 1526粉丝 274原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cpp_learners

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值