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.mzph.cn/news/234129.shtml

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

相关文章

Oracle:JDBC链接Oracle的DEMO

1、引入jar包&#xff1a; 2、DEMO&#xff1a; package jdbc;import java.sql.*;public class OracleConnectionExample {public static void main(String[] args) throws SQLException {Connection conn null;PreparedStatement statement null;try {// Register JDBC dri…

基于Hadoop的农产品价格信息检测分析系统

基于Hadoop的农产品价格信息检测分析系统 前言数据处理模块1. 数据爬取2. 数据清洗与处理3. 数据存储 数据分析与检测模块1. 农产品价格趋势分析2. 农产品价格检索3. 不同市场价格对比 创新点 前言 为了更好地了解农产品市场价格趋势和不同市场之间的价格差异&#xff0c;我设…

Leetcode—151.反转字符串中的单词【中等】

2023每日刷题&#xff08;六十五&#xff09; Leetcode—151.反转字符串中的单词 实现代码 class Solution { public:string reverseWords(string s) {stringstream strs(s);string word;vector<string> res;while(strs >> word) {res.push_back(word);}reverse(…

Labview Vision 机器视觉使用,从下载程序安装应用,到实战找硬币并输出值

1.前言 大家好,今天我要和机器人一起配合来打算 做机器视觉 用Labview 和 Vision 联动实现机器的视觉 2.下载软件-软件的安装 我们除了基础款的labview软件 还要安装视觉四件套 1.Labview 编程平台&#xff08;我是 2023 q3&#xff09; 2. NI - IMAQdx &#xff08;驱动软…

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

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

蓝桥杯常用库heapq

堆的常用方法 使用list表示一个堆 将无序List转换成最小堆;heapq.heapify(a) 最小堆a中添加元素x:heapq.heappush(a, x) 弹出并返回最小元素:heapq.heappop(a) 弹出并返回最小元素&#xff0c;同时添加元素x:heapq.heapreplace(a,x) import heapqa [11, 6, 9, 8, 7, 3] heapq.…

JS中的selection事件与range

前言 本文简单总结下文本输入中的 Selection 与 Range 事件。 测试地址见: 在线效果预览 ::selection && Selection 自定义选取颜色 项目中一般有主题色的需求&#xff0c;这时候可以通过 css 中的::selection伪类可以自定义选中背景颜色 ::selection {background: yel…

【论文笔记】Distilling the Knowledge in a Neural Network

Abstract 几乎任何机器学习算法性能提升的一个非常简单的方法是在相同数据上训练多个不同的模型&#xff0c;然后对它们的预测结果进行平均。 不幸的是&#xff0c;使用整个模型集合进行预测繁琐&#xff0c;可能会因为计算成本过高而难以部署给大量用户&#xff0c;尤其是如果…

MyBatis的原始DAO开发!!!

引用&#xff1a;MyBatis的删除、修改、插入操作&#xff01;&#xff01;&#xff01;-CSDN博客的准备工作&#xff01;&#xff01;&#xff01;&#xff08;准备工作都一样只不过文件名称有所不同&#xff09; 1.利用原始DAO开发&#xff0c;查询所有的信息。 UserDao&#…

【数据库模拟题目集】选择题

数据库应用程序的编写是基于数据库三级模式中的&#xff08;外模式&#xff09; 对创建数据库模式一类的数据库对象的授权可由CREATE USER时实现。新创建的数据库用户有三种权限&#xff0c;CONNECT、RESOURCE和DBA。拥有RESOURCE权限的用户&#xff08;不能创建模式 &#xf…

关于通信基站综合防雷方案介绍

为了获取更好的通信效果&#xff0c;通信基站在选址时通常地势要高于周围环境&#xff0c;气候条件恶劣&#xff0c;夏季通讯及机房设备及发射铁塔遭受雷击灾害的风险较高&#xff0c;而现代的电信设备对雷电又较为敏感&#xff0c;使得雷害问题日益凸显出来&#xff0c;如果防…

裂解汽油行业分析:到2027 年将达到 202.4 亿美元

裂解汽油&#xff0c;又称pygas&#xff0c;是石化工业中用石脑油或瓦斯油生产乙烯和丙烯的副产品。热解气是一种复杂的碳氢化合物混合物&#xff0c;主要由苯、甲苯和二甲苯等芳烃组成。热解汽油是生产苯乙烯、苯酚和合成橡胶等化学品的宝贵原料。 全球市场&#xff1a; 预计在…

延迟消息队列的几种实现方案,哪种更适合业务,要看具体情况分析

延迟消息队列的几种实现方案&#xff0c;延迟消息怎么实现&#xff0c;很多人可能一想到的是rabbitmq的死信队列来实现&#xff0c;但是一旦引入mq的话&#xff0c;就依赖这个中间件&#xff0c;另外维护成本&#xff0c;开发成本都很大&#xff0c;那有么有简单点的实现方式呢…

Linux安全之SELinux理解

安全增强式 Linux&#xff0c;即SELinux(Security-Enhanced Linux)是一个 Linux 内核的安全模块&#xff0c;其提供了访问控制安全策略机制&#xff0c;包括了强制访问控制(Mandatory Access Control&#xff0c;MAC)。SELinux 是一组内核修改和用户空间工具&#xff0c;已经被…

9ACL访问控制列表

为什么要有访问控制&#xff08;Access Control List&#xff09;&#xff1f; 因为我可能在局域网中提供了一些服务&#xff0c;我只希望合法的用户可以访问&#xff0c;其他非授权用户不能访问。 原理比较简单&#xff0c;通过对数据包里的信息做过滤&#xff0c;实现访问控…

houdini 神经网络

实现个神经网络的3D可视化&#xff0c;美爆了&#xff01;-腾讯云开发者社区-腾讯云 https://vimeo.com/stefsietz GitHub - julrog/nn_vis: A project for processing neural networks and rendering to gain insights on the architecture and parameters of a model throu…

unity2d 关闭全局重力

UNITY2D项目默认存在Y轴方向重力&#xff0c;创建俯视角2D场景时可通过以下配置关闭 Edit > Project Settings > Physics 2D > General Settings > Gravity 设置Y0

Elasticsearch——索引数据

索引可以说是Elasticsearch中非常重要的模块&#xff0c;一个索引可以视作关系数据库中的一张表&#xff0c;本帖将详细介绍与Elasticsearch索引相关的各种功能等。主要内容如下&#xff1a; 索引映射(mapping)结构的定义方法&#xff0c;常用的各种字段类型和动态映射的使用。…

细说 MySQL 用户安全加固策略

这是一篇关于如何加强 MySQL 用户安全的文章&#xff0c;通读全文您可以了解密码复杂度策略、连接控制插件以及密码变更策略的相关知识。本文内容仅供参考&#xff0c;请在操作时以实际环境为准&#xff0c;避免造成经济损失。 作者&#xff1a;余振兴&#xff0c;爱可生 DBA 团…

Linux系统LVS+Keepalived群集

目录 一、概述 &#xff08;一&#xff09;群集特性 1.负载均衡 2.健康检查&#xff08;探针&#xff09; 3.故障转移 &#xff08;二&#xff09;Keepalived 1.作用 &#xff08;1&#xff09;支持故障自动转移 &#xff08;2&#xff09;支持节点健康状态检…