C++STL之queue容器

2023-11-03

概述:
queue容器是一个队列,非常简单,它不支持迭代器,不支持随机访问,并且是一个单向队列,只能从尾部插入,头部删除。常用的方法是利用其先进先出的特性去接收消息,然后处理消息,例如车站的排队。当然list容器也可以实现先进先出,看你喜欢用哪一个,效率都差不多。
但是这里需要注意一点,不管是list或者queue,都需要自己去控制实现先进先出。

1 queue队列容器案例

由于queue队列容器非常简单,并且不支持迭代器,所以不需要测试是否会造成迭代器失效的例子。下面直接给出一个案例,项目中一般使用都是按照先进先出的方法使用即可,当然,多线程下记得加锁。

void test10() {
	queue<Person> q;
	Person p1("大娃", 1, 20);
	Person p2("二娃", 2, 30);
	Person p3("三娃", 3, 30);
	Person p4("四娃", 4, 40);
	Person p5("五娃", 5, 50);
	Person p6("爷爷", 6, 60);
	Person p7("蛇精", 7, 70);

	//入队
	q.push(p1);  //只能从尾添加
	q.push(p2);
	q.push(p3);
	q.push(p4);
	q.push(p5);
	q.push(p6);
	q.push(p7);

	while (!q.empty()){
		Person pFront = q.front();//获取队头元素
		cout << "姓名: " << pFront.m_name << " 年龄: " << pFront.m_age << endl;
		q.pop();//出队,只能从头删除
		/*以上已经实现先进先出*/
	}

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

结果可以看到,依次入队,并且依次出队。
在这里插入图片描述

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

C++STL之queue容器 的相关文章

  • 通过 SocketCAN 进行 boost::asio

    我正在考虑利用升压阿西奥 http www boost org doc libs 1 49 0 doc html boost asio html从a读取数据套接字CAN http en wikipedia org wiki SocketCA
  • 使用 mono/nunit-console/4 在 Mac OS X 控制台上运行测试

    我安装了 Max OS X 10 11 1 上面装有 Xamarin 我编写了简单的测试类 只是为了测试在 Mac OS X 和 Ubuntu 上运行 Nunit 测试 该类实际上有一个返回字符串的方法 using System names
  • 如何在 DataColumn.Expression 中使用 IF/ELSE 或 CASE?

    我有一个包含 1 列的表 状态 我想添加另一列名为 Action 的列 其值如下 如果 Status Yes 则 Action Go 否则 Action Stop 我使用以下代码添加到 操作 列中 但它不起作用 myDataTable Co
  • 在 C/C++ 中获得正模数的最快方法

    通常在我的内部循环中 我需要以 环绕 方式索引数组 因此 例如 如果数组大小为 100 并且我的代码要求元素 2 则应该给它元素 98 高级语言 例如 Python 可以简单地使用my array index array size 但由于某
  • FileStream 构造函数和默认缓冲区大小

    我们有一个使用 NET 4 用 C 编写的日志记录类 我想添加一个构造函数参数 该参数可以选择设置文件选项 WriteThrough http msdn microsoft com en us library system io fileo
  • 为什么在创建矩阵类时使用向量不好?

    对于我的矩阵类 我做了 template
  • VS 程序在调试模式下崩溃,但在发布模式下不崩溃?

    我正在 VS 2012 中运行以下程序来尝试 Thrust 函数查找 include cuda runtime h include device launch parameters h include
  • 读取 C# 中的默认应用程序设置

    我的自定义网格控件有许多应用程序设置 在用户范围内 其中大部分是颜色设置 我有一个表单 用户可以在其中自定义这些颜色 并且我想添加一个用于恢复默认颜色设置的按钮 如何读取默认设置 例如 我有一个名为的用户设置CellBackgroundCo
  • 根据 N 个值中最小的一个返回不同的结果

    不确定如何使标题更具描述性 所以我只是从一个例子开始 我使用下面的代码位 它从枚举中选择一个方向 具体取决于四个轴中哪一个与给定方向相比形成最小角度 static Direction VectorToDirection Vector2 di
  • 信号处理程序有单独的堆栈吗?

    信号处理程序是否有单独的堆栈 就像每个线程都有单独的堆栈一样 这是在 Linux C 环境中 来自 Linux 手册页signal 7 http kernel org doc man pages online pages man7 sign
  • 如何在 SqlDataReader.Read() 期间从死锁异常中恢复

    我的 NET 应用程序的事件日志显示 它在从 Sql Server 读取数据时偶尔会出现死锁 这种情况通常非常罕见 因为我们已经优化了查询以避免死锁 但有时仍然会发生 过去 我们在调用ExecuteReader函数在我们的SqlComman
  • 如何获取 QTableView 的标题列表?

    我有一个QTableView我的对话框中的对象 我需要访问该表的水平标题并将它们放入QStringList object 尽管进行了大量搜索 但我在 Qt 文档中找不到如何获取此标头列表 编辑 我发现的最接近的地方是this https w
  • 无法在内存位置找到异常源:cudaError_enum

    我正在尝试确定 Microsoft C 异常的来源 test fft exe 中 0x770ab9bc 处的第一次机会异常 Microsoft C 异常 内存位置 0x016cf234 处的 cudaError enum 我的构建环境是 I
  • 每个租户的唯一用户名和电子邮件

    我正在使用以下代码编写多租户应用程序ASP NET Core 2 1 我想覆盖默认的与用户创建相关的验证机制 目前我无法创建多个具有相同的用户UserName My ApplicationUser模型有一个名为TenantID 我想要实现的
  • ASP.NET MailMessage.BodyEncoding 和 MailMessage.SubjectEncoding 默认值

    很简单的问题 但我在 MSDN 上找不到答案 查找 ASP NET 将用于的默认值 MailMessage BodyEncoding and MailMessage SubjectEncoding 如果你不在代码中设置它们 Thanks F
  • IEnumerable.Except 不起作用,那么我该怎么办?

    我有一个 linq to sql 数据库 非常简单 我们有 3 个表 项目和用户 有一个名为 User Projects 的连接表将它们连接在一起 我已经有了一个获得的工作方法IEnumberable
  • 了解使用 Windows 本机 WPF 客户端进行 ADFS 登录

    我已经阅读了大量有关 ADFS 与 NodeJS Angular 或其他前端 Web 框架集成以及一般流程如何工作的文献 并通过 Auth0 Angular 起始代码构建了概念证明 但我不明白如何这可以与本机 WPF Windows 应用程
  • 跨多个域的 ASP.NET 会话

    是否有合适的 NET 解决方案来在多个域上提供持久服务器会话 即 如果该网站的用户在 www site1 com 下登录 他们也将在 www site2 com 下登录 安全是我们正在开发的程序的一个问题 Thanks 它是否需要在会话中
  • 使用taskkill停止Windows服务

    我需要帮助来使用 C 终止 Windows 服务 现在要终止该服务 请使用以下选项 从命令 sc queryex ServiceName 发现后PID服务的 taskkill pid 1234 exemple f 为了便于阅读 但如果您明白
  • 将 char[][] 转换为 char** 会导致段错误吗?

    好吧 我的 C 有点生疏了 但我想我应该用 C 来做我的下一个 小 项目 这样我就可以对其进行抛光 并且我已经有不到 20 行的段错误了 这是我的完整代码 define ROWS 4 define COLS 4 char main map

随机推荐

  • echarts饼状图label太多显示不全

    饼状图中项太多的时候 只展示了几个 没有全部展示出来 如下图 应该有很多个 但是只展示了三个 解决方法如下 在series label中添加两个配置 position outer alignTo labelLine 在series中添加 l
  • 【经典】Spring aop切面实现异步添加日志—完整版

    系统开发中我们常遇到要处理系统日志等信息的 在此我分享一篇 利用spring aop切面来异步添加日志的操作 其中用到了 队列和多线程 前面的博客有写 第一步 创建log实体 根据自己业务而定 package com izhbg typz
  • Android string.xml中的特殊字符转义

    今天项目碰到个转义特殊字符的问题 网上搜索看到 故转载 已标明出处 项目中要在string xml 中显示特殊符号 如 号冒号等 直接写肯定不行啦 只能考虑使用ASCII码进行显示 在XML中空格符不是用HMTL中的表示 而是用编码表示 以
  • c++ 标准库std::

    持续更新 第一次更新 2021 12 6 星期一 返回容器 数组最小最大值 std minmax element tx tx 3 函数返回一个pair 使用 std pair
  • 首发速学——腾讯云数据库TDSQL(PostgreSQL版)训练营正式开营

    腾讯云TDSQL是腾讯自研的企业级分布式数据库 在金融 政务 运营商 电商 游戏等数十个行业中落地应用 具备金融级高可用 强一致 高性能 高可靠等特性 目前 腾讯云数据库TDSQL 已助力 20 余家金融机构进行核心系统改造 TOP 10
  • 二维卷积nn.Conv2d

    二维卷积nn Conv2d 一般来说 二维卷积nn Conv2d用于图像数据 对宽度和高度都进行卷积 定义 class torch nn Conv2d in channels out channels kernel size stride
  • IDEA如何通过git回滚到某个提交节点或某个版本

    文章目录 Idea开发工具操作git回滚提交步骤 idea中git版本回滚以及git指令回滚 IDEA如何通过git回滚到某个提交节点或某个版本 Idea开发工具操作git回滚提交步骤 使用idea开发java代码时 如果想回滚git提交的
  • golang后台管理系统Beego+Layui框架搭建教程

    项目介绍 一款 Go 语言基于Beego Layui MySQL等框架精心打造的一款模块化 高性能 企业级的敏捷开发框架 本着简化开发 提升开发效率的初衷触发 框架自研了一套个性化的组件 实现了可插拔的组件式开发方式 单图上传 多图上传 下
  • springboot+elasticsearch+logstash+kibana

    Elasticsearch 是一个分布式的搜索和分析引擎 可以用于全文检索 结构化检索和分析 并能将这三者结合起来 Elasticsearch 基于 Lucene 开发 现在是使用最广的开源搜索引擎之一 Logstash 简单来说就是一根具
  • 快速上手SpringBoot,yml数据读取,yaml语法规则,SpringBoot配置文件介绍,Idea中隐藏指定文件或指定类型文件

    一 创建SpringBoot项目的方式 基于idea开发SpringBoot程序需要确保联网且能够加载到程序框架结构 基于SpringBoot官网创建项目 地址 https start spring io 网络不好时经常连接超时 这里可以选
  • Spanner vs. F1:谷歌两大数据管理利器的整体对比及关联 2016-05-22 20:36 757人阅读 评论(0) 收藏 举报 目录(?)[+] http://www.csdn.net/a

    Spanner vs F1 谷歌两大数据管理利器的整体对比及关联 2016 05 22 20 36 757人阅读 评论 0 收藏 举报 目录 http www csdn net article 2013 10 10 2817138 f1 a
  • Docker零基础从入门到精通(全)

    目录 前言 1 Docker介绍 1 1 Docker的安装 1 2 Docker的卸载 2 配置阿里云镜像加速 3 Docker原理 3 docker常用命令 3 1 镜像命令 3 2 容器命令 3 3 其他命令 3 4 总结 4 部署n
  • 安装DirectX SDK时出现Error Code:s1023 的解决方案

    今天安装DXSDK Jun10时 下载地址 http download microsoft com download A E 7 AE743F1F 632B 4809 87A9 AA1BB3458E31 DXSDK Jun10 exe 出现
  • Hibernate异常:Unable to locate appropriate constructor on class

    Hibernate异常 Unable to locate appropriate constructor on class 1 这是Hibernate实体类操作异常 出现这个异常 要检查以下几个情况 2 首先要检查在实体类中是否有全参构造器
  • 【C语言】指针也就那么回事儿~【初阶】

    目录 一 指针是什么 定义 使用举例 二 指针和指针类型 指针类型的意义 定义指针变量的一般形式 在定义指针变量时要注意两点 在对指针变量赋值时需要注意 指针的解引用 三 野指针 1 指针为初始化 2 指针越界访问 四 指针运算 五 指针和
  • uwsgi 参数解释

    vacuum 尝试移除所有生成的文件 socket vacuum 尝试移除所有生成的文件 socket die on term 对于SIGTERM 退出而不是粗鲁重载 不再需要 harakiri 设置请求超时 lazy 设置lazy模式 在
  • MyBatis浅入:三层框架和初步学习MyBatis

    目录 一 三层架构 1 什么是三层架构 为什么使用三层 2 常用框架SSM MyBatis执行流程图 二 使用MyBatis框架 一 使用mybatis框架得基本步骤 1 新建数据库表 2 新建maven项目 3 补全maven工程目录 4
  • 【论文解读】Observation-Centric SORT:Rethinking SORT for Robust Multi-Object Tracking

    一 介绍 1 1 之前卡尔曼方法存在的问题 1 长时间的运动的线性估计可能是非常不准确的 2 当没有可用于更新卡尔曼滤波器参数的测量时 标准惯例是信任先验状态估计进行后验更新 这导致了在一段时间内错误的积累 1 2 基于假设 假设跟踪目标在
  • leetcode575.分糖果 C

    题目链接 https leetcode cn com problems distribute candies 575 给定一个偶数长度的数组 其中不同的数字代表着不同种类的糖果 每一个数字代表一个糖果 你需要把这些糖果平均分给一个弟弟和一个
  • C++STL之queue容器

    概述 queue容器是一个队列 非常简单 它不支持迭代器 不支持随机访问 并且是一个单向队列 只能从尾部插入 头部删除 常用的方法是利用其先进先出的特性去接收消息 然后处理消息 例如车站的排队 当然list容器也可以实现先进先出 看你喜欢用