Queue基本概念

2023-11-13

概念:Queue是一种先进先出的数据结构,他有两个出口

队列容器允许从一段新增元素,从另一端移除元素

队列中只有队头和队尾可以被外界使用,因此队列不允许有遍历行为

队列中进数据称为——入队push

队列中出数据称为——出队pop

queue常用接口

功能描述:栈容器常用的对外接口

构造函数:

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

queue(const queue &que);        //拷贝构造函数

赋值操作:

queue& operator=(const queue &que);        //重载等号操作符

数据存取:

push(elem);                        //往队尾添加元素

pop();                           //往队头添加元素

back();                                //返回最后一个元素

front();                                        //返回第一个元素

大小操作:

empty();                                //判断堆栈是否为空

size();                                        //返回栈的大小

示例:

#include <iostream>
using namespace std;
#include <queue>
#include <string>


class Person
{
public:
	Person(string name, int age)
	{
		this->m_Name = name;
		this->m_Age = age;
	}

	string m_Name;
	int m_Age;
};

void test01()
{
	//创建队列
	queue<Person> q;

	//准备数据
	Person p1("唐僧", 30);
	Person p2("孙悟空", 1000);
	Person p3("猪八戒", 900);
	Person p4("沙僧", 800);

	//入队
	q.push(p1);
	q.push(p2);
	q.push(p3);
	q.push(p4);
	//判断只要队列不为空,查看队头,查看队尾,出队
	while (!q.empty())
	{
		//查看队头
		cout << "队头元素——姓名:" << q.front().m_Name << "年龄:" << q.front().m_Age << endl;

		//查看队尾
		cout << "队头元素——姓名:" << q.back().m_Name << "年龄:" << q.back().m_Age << endl;

		//出队
		q.pop();
	}
	cout << "队列大小为:" << q.size() << endl;
}

int main()
{
	test01();
	system("pause!");
	return 0;
}

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Queue基本概念 的相关文章

  • 检查两个数是否是彼此的排列?

    给定两个数字 a b 使得 1 例如 123 是 312 的有效排列 我也不想对数字中的数字进行排序 如果您指的是数字的字符 例如 1927 和 9721 则 至少 有几种方法 如果允许排序 一种方法是简单地sprintf将它们放入两个缓冲
  • 如何使用GDB修改内存内容?

    我知道我们可以使用几个命令来访问和读取内存 例如 print p x 但是如何更改任何特定位置的内存内容 在 GDB 中调试时 最简单的是设置程序变量 参见GDB 分配 http sourceware org gdb current onl
  • linux perf:如何解释和查找热点

    我尝试了linux perf https perf wiki kernel org index php Main Page今天很实用 但在解释其结果时遇到了困难 我习惯了 valgrind 的 callgrind 这当然是与基于采样的 pe
  • 使闭包捕获的变量变得易失性

    闭包捕获的变量如何与不同线程交互 在下面的示例代码中 我想将totalEvents 声明为易失性的 但C 不允许这样做 是的 我知道这是错误的代码 这只是一个例子 private void WaitFor10Events volatile
  • Newtonsoft JSON PreserveReferences处理自定义等于用法

    我目前在使用 Newtonsoft Json 时遇到一些问题 我想要的很简单 将要序列化的对象与所有属性和子属性进行比较以确保相等 我现在尝试创建自己的 EqualityComparer 但它仅与父对象的属性进行比较 另外 我尝试编写自己的
  • WPF 中的调度程序和异步等待

    我正在尝试学习 WPF C 中的异步编程 但我陷入了异步编程和使用调度程序的困境 它们是不同的还是在相同的场景中使用 我愿意简短地回答这个问题 以免含糊不清 因为我知道我混淆了 WPF 中的概念和函数 但还不足以在功能上正确使用它 我在这里
  • C#:如何防止主窗体过早显示

    在我的 main 方法中 我像往常一样启动主窗体 Application EnableVisualStyles Application SetCompatibleTextRenderingDefault false Application
  • Cython 和类的构造函数

    我对 Cython 使用默认构造函数有疑问 我的 C 类 Node 如下 Node h class Node public Node std cerr lt lt calling no arg constructor lt lt std e
  • Web API - 访问 DbContext 类中的 HttpContext

    在我的 C Web API 应用程序中 我添加了CreatedDate and CreatedBy所有表中的列 现在 每当在任何表中添加新记录时 我想填充这些列 为此目的我已经覆盖SaveChanges and SaveChangesAsy
  • 使用 System.Text.Json 即时格式化 JSON 流

    我有一个未缩进的 Json 字符串 例如 hash 123 id 456 我想缩进字符串并将其序列化为 JSON 文件 天真地 我可以使用缩进字符串Newtonsoft如下 using Newtonsoft Json Linq JToken
  • 将自定义元数据添加到 jpeg 文件

    我正在开发一个图像处理项目 C 我需要在处理完成后将自定义元数据写入 jpeg 文件 我怎样才能做到这一点 有没有可用的图书馆可以做到这一点 如果您正在谈论 EXIF 元数据 您可能需要查看exiv2 http www exiv2 org
  • clang 实例化后静态成员初始化

    这样的代码可以用 GCC 编译 但 clang 3 5 失败 include
  • 当操作繁忙时,表单不执行任何操作(冻结)

    我有一个使用 C 的 WinForms 应用程序 我尝试从文件中读取一些数据并将其插入数据表中 当此操作很忙时 我的表单冻结并且无法移动它 有谁知道我该如何解决这个问题 这可能是因为您在 UI 线程上执行了操作 将文件和数据库操作移至另一个
  • 将 unsigned char * (uint8_t *) 转换为 const char *

    我有一个带有 uint8 t 参数的函数 uint8 t ihex decode uint8 t in size t len uint8 t out uint8 t i hn ln for i 0 i lt len i 2 hn in i
  • C++ fmt 库,仅使用格式说明符格式化单个参数

    使用 C fmt 库 并给定一个裸格式说明符 有没有办法使用它来格式化单个参数 example std string str magic format 2f 1 23 current method template
  • 控制到达非 void 函数末尾 -wreturn-type

    这是查找四个数字中的最大值的代码 include
  • Process.Start 阻塞

    我正在调用 Process Start 但它会阻止当前线程 pInfo new ProcessStartInfo C Windows notepad exe Start process mProcess new Process mProce
  • C 中的异或运算符

    在进行按位操作时 我在确定何时使用 XOR 运算符时遇到一些困难 按位与和或非常简单 当您想要屏蔽位时 请使用按位 AND 常见用例是 IP 寻址和子网掩码 当您想要打开位时 请使用包含或 然而 XOR 总是让我明白 我觉得如果在面试中被问
  • 限制C#中的并行线程数

    我正在编写一个 C 程序来生成并通过 FTP 上传 50 万个文件 我想并行处理4个文件 因为机器有4个核心 文件生成需要更长的时间 是否可以将以下 Powershell 示例转换为 C 或者是否有更好的框架 例如 C 中的 Actor 框
  • 恢复上传文件控制

    我确实阅读了以下帖子 C 暂停 恢复上传 https stackoverflow com questions 1048330 pause resume upload in c 使用 HTTP 恢复上传 https stackoverflow

随机推荐

  • 5天玩转MySQL:数据库概念、SQL介绍、数据库和数据表基本操作、字符表

    数据库概念 数据库 Database 是按照数据结构来组织 存储和管理数据的建立在计算机存储设备上的仓库 数据库 存储数据的仓库 数据库分类 网络数据库 网络数据库是指把数据库技术引入到计算机网络系统中 借助于网络技术将存储于数据库中的大量
  • Eclipse导入外部工程运行报错:The selection cannot be run on any server

    一 错误描述 课下复习时导入老师的Demo 发现项目报错 在项目上有红色叉 运行时报如下错误 二 解决步骤 1 在项目上右键 gt Properties 2 打开Java Build Path 发现JDK和Tomcat都未绑定 这是原先项目
  • vue左侧悬浮_vue实现移动端悬浮窗效果

    本文讲述 在使用VUE的移动端实现类似于iPhone的悬浮窗的效果 相关知识点 touchstart当在屏幕上按下手指时触发 touchmove 当在屏幕上移动手指时触发 touchend 当在屏幕上抬起手指时触发 mousedown mo
  • UE4的SpawnActor问题

    1 SpawnActor传参 做项目过程中发现先SpawnActor再传参会先运行 生成的Actor的BeginPlay然后才进行传参 可是我在BeginPlay时就需要用到参数做操作了 发生情况时代码如下 if BaseCharactor
  • 9.21 小米一面面经

    介绍项目经历 测试时用的方式 在公司学到了哪些 有什么积累 将来想发展的方向 手工测试 测试开发 上学时的专业课 手机测试部 通信系统部 和通信关联性比较大 通信协议相关测试 跟手机芯片相关 2G3G4G5G网络 在研产品测试 国际运营商的
  • 计操理论课08 -- openEuler实验第七章文件系统

    文章目录 任务1 为 Ext4 文件系统添加扩展属性 25min 任务描述 任务过程及截图 任务2 注册一个自定义的文件系统类型 15min 任务描述 任务代码 任务截图 任务3 在 proc下创建目录 20min 任务描述 任务代码 任务
  • (LeetCode C++)移动零

    给定一个数组 nums 编写一个函数将所有 0 移动到数组的末尾 同时保持非零元素的相对顺序 请注意 必须在不复制数组的情况下原地对数组进行操作 示例1 输入 nums 0 1 0 3 12 输出 1 3 12 0 0 示例2 输入 num
  • 25道Python练手题(附详细答案),赶紧收藏!python入门

    题目 1 水仙花数 水仙花数 Narcissistic number 也被称为超完全数字不变数 pluperfect digital invariant PPDI 自恋数 自幂数 阿姆斯壮数或阿姆斯特朗数 Armstrong number
  • 启动jar包报错: 找不到或无法加载主类

  • C++ 删除文件夹下所有内容

    介绍一种删除文件夹下所有内容的实现方式 包括删除该文件夹 注 该文件夹下面 无论嵌套多少层文件夹或文件数据 都可以删掉 直接上代码 Tip 以 方式查找所有类型文件 do while方式进行循环遍历 直到满足终止条件 删除文件夹及内容 in
  • web前端开发语言介绍

    web前端开发语言主要包含 html语言 css样式代码 javascript脚本 html5 css3 jQuery ajax Bootstrap Backbone 1 html语言 网页的基本标记语言 也是最基础的语言 掌握起来比较简单
  • 8.cmake常用命令

    前面我们讲到了 cmake 常用的变量 相信 cmake 即编程 的感觉会越来越明显 无论如何 我们仍然可以看到 cmake 比 autotools 要简单很多 接下来我们就要集中的看一看 cmake 所提供的常用指令 在前面的章节我们已经
  • ctfshow-WEB-web11( 利用session绕过登录验证)

    ctf show WEB模块第11关用session中保存的密码进行登录验证 将 session中保存的密码清空即可绕过 页面中直接给了源码 很明显是让我们进行代码审计 源码中将我们输入的密码与 session中保存的密码进行匹配 两个pa
  • stata F值缺失_stata操作问题实录

    一 数据整理 1 新变量带原变量的标签 sysuse auto clear gen m mpg 新建的变量m没有了标签 我想要标签 clonevar Mpg mpg 直接用clonevar命令就好了 2 下载时候就应该直接选合并报表 ege
  • 【Uniapp】base64图片资源转为本地图片,解决canvas不支持base64问题

    通过接口获取到base64类型的二维码 把二维码放到canvas里生成海报 遇到的问题 在微信小程序开发工具中能够正常显示海报 到真机上测试就无法显示二维码 原因 因为canvas不支持base64 其次在使用小程序 canvas 的 dr
  • Logistic回归实战篇之预测病马死亡率(三)

    作 者 崔家华 编 辑 李文臣 四 使用Sklearn构建Logistic回归分类器 开始新一轮的征程 让我们看下Sklearn的Logistic回归分类器 官方英文文档地址 http scikit learn org dev module
  • Python 自动发送邮件详细教程

    自动发送邮件能应用于许多场景中 比如我想要知道股票策略中的股票池是否有实时的更新 这时候如果再拉一遍数据 跑一遍脚本 实在是太浪费时间了 为什么不把这一套流程放到服务器上 然后到点自动运行并发送邮件呢 类似的应用场景还有很多 不仅仅是在股票
  • Cocos2dx中文乱码问题

    最开始在网上找的一个方法 结果在wp8上报错 在windows环境下使用visual studio 开发cocos2d x 由于visual studio 默认编码为GBK 格式 而cocos2d x引擎默认编码为UTF 8 如果有用到中文
  • 从输入网址(URL)到页面加载的全过程

    从输入网址 URL 到页面加载的全过程 简述 输入网址到页面加载的过程涉及知识点众多 所以这里整理一下自己看过的相关文章内容 在浏览器中输入URL 在浏览器中输入URL 也就是网址 URL是Uniform Resource Locator的
  • Queue基本概念

    概念 Queue是一种先进先出的数据结构 他有两个出口 队列容器允许从一段新增元素 从另一端移除元素 队列中只有队头和队尾可以被外界使用 因此队列不允许有遍历行为 队列中进数据称为 入队push 队列中出数据称为 出队pop queue常用