08.queue 容器

8、queue 容器

概念:

  • Queue 是一种先进先出(First In First Out,FIFO)的数据结构,他有两个出口

在这里插入图片描述

  • 队列容器允许从一端新增元素,从另一端移除元素
  • 队列中只有队头和队尾才可以被外界使用,因此队列不允许有遍历行为
  • 队列中进数据称为 — 入队 push
  • 队列中出数据称为 — 出队 pop

8.1 queue 常用接口

功能描述:

  • 栈容器常用的对外接口

构造函数:

queue<T> que; 				// queue 采用模板类实现,queue 对象的默认构造形式
queue(const queue &que); 	// 拷贝构造函数

赋值操作:

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

数据存取:

push(elem); // 往队尾添加元素
pop(); 		// 从队头移除第一个元素
back(); 	// 返回最后一个元素
front(); 	// 返回第一个元素

大小操作:

empty(); 	// 判断堆栈是否为空
size(); 	// 返回栈的大小
#include <iostream>
#include <queue>
#include <string>
using namespace std;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;cout << endl;// 弹出队头元素q.pop();}cout << "队列大小为:" << q.size() << endl;
}
int main() {test01();system("pause");return 0;
}

总结:

  • 入队 — push
  • 出队 — pop
  • 返回队头元素 — front
  • 返回队尾元素 — back
  • 判断队是否为空 — empty
  • 返回队列大小 — size

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

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

相关文章

Code automatic processing

delete Override 自动化处理没啥用的代码&#xff0c;测试下&#xff0c;还不错的感觉 find: Override delete: Override find: Override delete: Override E:\Workspace_zwf\WS_ENT_STD\src\main\java\zwf\service\impl\SystemlogServiceImpl.java --- OK! find: Override…

Gateway网关-全局过滤器

目录 一、全局过滤器 GlobalFilter 二、案例实现 2.1 创建AuthorizeFilter实现类 2.2 重启服务测试 三、总结 3.1 全局过滤器的作用是什么? 3.2 实现全局过滤器的步骤? 一、全局过滤器 GlobalFilter 全局过滤器的作用也是处理一切进入网关的请求和微服务响应&#xff0…

LeetCode 取经之路——第三题-无重复长度的最长子串

&#x1f389;&#x1f389;&#x1f389;今天给大家分享的是一道滑动窗口的OJ题。 3.无重复长度的最长子串 &#x1f61b;&#x1f61b;&#x1f61b;希望我的文章能对你有所帮助&#xff0c;有不足的地方还请各位看官多多指教&#xff0c;大家一起学习交流&#xff01; 动动…

【Linux】进程周边006之进程地址空间

&#x1f440;樊梓慕&#xff1a;个人主页 &#x1f3a5;个人专栏&#xff1a;《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》《实训项目》《C》《Linux》 &#x1f31d;每一个不曾起舞的日子&#xff0c;都是对生命的辜负 目录 前言 1.程序地址空间 1.1验证地址…

干货 | 如何通过度量研发效能,多角度洞察百人敏捷团队的价值交付?

随着软件行业的快速发展&#xff0c;高效的研发效能已成为企业竞争力的关键因素。尤其对于具有一定人数规模的敏捷研发团队&#xff0c;如何在复杂的项目环境中客观衡量研发效能&#xff0c;更是团队和管理者面临的重要课题。这不仅关系到项目的质量、交付速度&#xff0c;更直…

Java的字节码操作框架ASM详解

文章目录 一、ASM介绍1. 简介2. 基本概念3. Java ASM的应用场景 二、ASM基本使用1. 基本使用2. Java ASM主要组件3. Java ASM使用组件准备4. 修改字节码 三、Java ASM高级技巧1. 自定义类加载器2. 动态代理 一、ASM介绍 1. 简介 ASM是一个用于在Java字节码级别进行操作的框架…

【Webapck学习】

1、webpack是什么 Webpack是一个前端模块化方案&#xff0c;更侧重于模块打包。我们可以把开发中的所有资源(图片&#xff0c;js,css,字体等) 都看成模块&#xff0c;通过loader和plugins对资源进行处理&#xff0c;打包成符合生产环境部署的前端资源 初始化项目&#xff0c;得…

操作系统之银行家算法

Dijkstra在1965年提出的银行家算法是著名的死锁避免算法&#xff0c;这个用于一个银行家给多个顾客贷款的算法可以直接用于操作系统给进程分配资源&#xff0c;这时只要把银行家换成操作系统&#xff0c;把顾客换成进程&#xff0c;把资金换成资源&#xff0c;把银行家决定是否…

Dbvis 链接Oracle数据库

安装 Dbvisualizer 后 1&#xff0c;打开Dbvisualizer&#xff0c;单机左键 图片标注处。 2&#xff0c;点击右键&#xff0c;显示。 3&#xff0c;点击Creat Datebase Connection 4,点击 use wizard &#xff0c;填写 地址&#xff0c;下一步 5&#xff0c;选择 Orcal Thin …

【SQL】根据年份,查询每个月的数据量

根据年份&#xff0c;查询每个月的数据量 一种 WITH Months AS (SELECT 1 AS Month UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9 UNION ALL SELECT 10 UNION…

Ubuntu 常用命令之 netstat 命令用法介绍

netstat 是一个非常有用的命令行工具&#xff0c;它可以帮助我们监控和诊断网络问题。在 Ubuntu 系统中&#xff0c;我们可以使用 netstat 命令来查看网络连接、路由表、接口统计等信息。 netstat 命令的参数有很多&#xff0c;以下是一些常见的参数 -a&#xff1a;显示所有连…

Ubuntu 常用命令之 ifconfig 命令用法介绍

ifconfig 是一个用于配置和显示 Linux 内核中网络接口的系统管理命令。它用于配置&#xff0c;管理和查询 TCP/IP 网络接口参数。 ifconfig 命令的参数有很多&#xff0c;以下是一些常见的参数 up&#xff1a;激活指定的网络接口。down&#xff1a;关闭指定的网络接口。add&a…