C++中的queue(容器适配器)

目录

一、成员函数 

一、构造函数

二、入栈 push

三、出栈 pop

四、判空 empty

五、队列大小 size

六、取队头元素 front

七、取队尾元素 back

八、入栈 emplace

九、交换函数 swap

二、非成员函数重载

一、关系运算符重载

二、交换函数 swap 


C++中的queue不再是容器,而是容器适配器

注意:queue不再支持迭代器,因为需要保证先进先出 

一、成员函数 

一、构造函数

1.默认构造 

explicit queue (const container_type& ctnr = container_type())

queue<int> q;

二、入栈 push

void push (const value_type& val)

queue<int> q;
q.push(1); q.push(2); q.push(3);

三、出栈 pop

void pop ()

四、判空 empty

bool empty () const

queue<int> q;
for (int i = 0; i < 10; ++i) q.push(i);
while (!q.empty()) q.pop();

五、队列大小 size

size_type size() const

queue<int> q;
for (int i = 0; i < 10; ++i) q.push(i);
cout << q.size() << endl;

六、取队头元素 front

value_type& front ()

const value_type& front () const

queue<int> q;
for (int i = 0; i < 10; ++i) q.push(i);
cout << q.front() << endl;//0

七、取队尾元素 back

value_type& back ()

const value_type& back () const

queue<int> q;
for (int i = 0; i < 10; ++i) q.push(i);
cout << q.back() << endl;//9

八、入栈 emplace

emplace和push功能一样,但是当栈的对象为自定义类型时,emplace可以直接传入对象构造参数,无需构造对象再传入。

queue<pair<int, char>> q;
pair<int, char> p(10, 'a');
q.push(p);
q.emplace(20, 'b');

九、交换函数 swap

template <class... Args> 

void emplace (Args&&... args)

queue<int> q1;
q1.push(1); q1.push(2); q1.push(3);
queue<int> q2;
q2.push(4); q2.push(5);
cout << "交换前:q1.size: " << q1.size() << " q1.size: " << q2.size() << endl;
q1.swap(q2);
cout << "交换后:q1.size: " << q1.size() << " q1.size: " << q2.size() << endl;
//交换前:q1.size: 3 q1.size : 2
//交换后:q1.size : 2 q1.size : 3

二、非成员函数重载

一、关系运算符重载

(1)
template <class T, class Container>bool operator== (const queue<T,Container>& lhs, const queue<T,Container>& rhs);
(2)
template <class T, class Container>bool operator!= (const queue<T,Container>& lhs, const queue<T,Container>& rhs);
(3)
template <class T, class Container>bool operator<  (const queue<T,Container>& lhs, const queue<T,Container>& rhs);
(4)
template <class T, class Container>bool operator<= (const queue<T,Container>& lhs, const queue<T,Container>& rhs);
(5)
template <class T, class Container>bool operator>  (const queue<T,Container>& lhs, const queue<T,Container>& rhs);
(6)
template <class T, class Container>bool operator>= (const queue<T,Container>& lhs, const queue<T,Container>& rhs);

二、交换函数 swap 

template <class T, class Container>

void swap (queue<T,Container>& x, queue<T,Container>& y) noexcept

queue<int> q1;
q1.push(1); q1.push(2); q1.push(3);
queue<int> q2;
q2.push(4); q2.push(5);
cout << "交换前:q1.size: " << q1.size() << " q1.size: " << q2.size() << endl;
swap(q1, q2);
cout << "交换后:q1.size: " << q1.size() << " q1.size: " << q2.size() << endl;
//交换前:q1.size: 3 q1.size : 2
//交换后:q1.size : 2 q1.size : 3

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

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

相关文章

在 Windows 下搭建自己的深度学习开发环境

通常程序员们会选择 Ubuntu 这类 linux 环境开发深度学习算法&#xff0c;但在 Windows 做类似的工作有时也会带来很多方便。本文梳理一下在 Windows 部署深度学习开发环境的一般步骤&#xff0c;供大家参考。 一、检查GPU显卡 1、查看显卡规格 在Windows下&#xff0c;可以…

JUC之线程、线程池

一、start与run方法 start方法开启一个新线程&#xff0c;异步执行。 run方法同步执行&#xff0c;不会产生新的线程。 start方法只能执行一次&#xff0c;run方法可以执行多次。 二、一些方法 sleep() 线程睡眠 两种方式调用&#xff1a; Thread.sleep(1000);TimeUnit.…

SAP MRP中的滚动提前期简介(MRP自动删除已固定计划订单)

通常被标记了固定标识的计划订单在运行MRP的时候系统是不会自动删除这部分计划订单的,但是SAP提供了“滚动提前期”这一功能,允许我们通过设定规则,在MRP运算的同时,自动删除在规定期间范围内的被固定的计划订单,从而避免这种干扰MRP运算的现象发生。 下面我们模拟这个场…

Oracle基础1

数据准备 create table my_user (id number primary key,name1 varchar2(30),name2 varchar2(30) ); alter table my_useradd(name3 varchar2(30)); -- 修改字段 alter table my_usermodify(name1 varchar2(10),name2 varchar2(20)); -- 修改字段名 alter table my_user re…

SignalR中的重连机制和心跳监测机制详解

一. 重连机制 声明&#xff1a;   本节仅介绍重连机制和心跳监测机制&#xff0c;基于Core 3.1框架&#xff0c;至于SignalR其它的一些基本使用&#xff0c;包括引入、Hub、配置等常规操作&#xff0c;在本节中不介绍&#xff0c;后续写Core下的SignalR 说明   默认是没有重…

钥匙和房间

题目链接 钥匙和房间 题目描述 注意点 所有 rooms[i] 的值 互不相同如果能进入所有房间返回true&#xff0c;否则返回falserooms[i] 是进入 i 号房间可以获得的钥匙集合 解答思路 可以通过深度优先遍历找到所有可以访问的房间&#xff0c;需要注意的是同一个房间不能重复访…

(数据分析) 一季度四川外贸进出口增长7.8% 回稳向好态势显著

据海关统计&#xff0c;一季度&#xff0c;四川实现货物贸易进出口总值2415.4亿元&#xff0c;规模位列全国第8&#xff0c;同比&#xff08;下同&#xff09;增长7.8%&#xff0c;增速高出全国2.8个百分点。主要呈现以下特点&#xff1a; 一、进口显著回升&#xff0c;进、出口…

2024.4.26

//异或 Complex Complex::operator^(const Complex c1){Complex temp;temp.relthis->rel^c1.rel;temp.virthis->vir^c1.vir;return temp; }//按位取反 Complex Complex::operator~(){this->rel~this->rel;this->vir~this->vir;return* this; } //左移 Comple…

vue+element之解决upload组件上传文件失败后仍显示在列表上、自动上传、过滤、findIndex、splice、filter

MENU 前言错误案例(没有用)正确方法结束语 前言 el-upload上传失败后&#xff0c;文件仍显示在列表上。 这个pdf文件上传失败&#xff0c;仍显示在列表&#xff0c;给人错觉是上传成功&#xff0c;所以要把它去掉。 在element中&#xff0c;file-list和v-model:file-list是用于…

Bun 入门到精通(一)

Bun 是什么&#xff1f; Bun 是用于 JavaScript 和 TypeScript 应用程序的多合一工具包。它作为一个名为 bun 的可执行文件提供。 其核心是 Bun 运行时&#xff0c;这是一个快速的 JavaScript 运行时&#xff0c;旨在替代 Node.js。它是用 Zig 编写的&#xff0c;并由 JavaSc…

Matlab|交直流系统潮流计算(含5种控制模式)

目录 1 主要内容 程序参考流程图 2 部分代码 3 程序结果 4 下载链接 1 主要内容 该程序参考文献《交直流系统潮流计算及相互关联特性分析》&#xff0c;采用5种交直流潮流控制方式&#xff1a;1.定电流定电压 2.定电流定熄弧角 3.定功率定电压 4.定功率定熄弧角 5.定触发角…

Kafka 生产者应用解析

目录 1、生产者消息发送流程 1.1、发送原理 2、异步发送 API 2.1、普通异步发送 2.2、带回调函数的异步发送 3、同步发送 API 4、生产者分区 4.1、分区的优势 4.2、生产者发送消息的分区策略 示例1&#xff1a;将数据发往指定 partition 示例2&#xff1a;有 key 的…

ollama集成open-webui本地部署大模型应用

文章目录 概述安装ollama运行指定模型命令帮助docker 安装 webuiWebUI与ollama在同一台机器WebUI与ollama不在同一台机器(推荐)更新open-webui离线安装open-webui使用验证访问导入模型文件参考资料概述 ollama是一款在本地启动并运行大型语言模型的工具,主要功能是在 Docke…

原型模式(上机考试抽题)

定义 原型模式主要解决的问题就是创建复对象&#xff0c;⽽这部分 对象 内容本身⽐较复杂&#xff0c;⽣成过程可能从库或者RPC接⼝中获取数据的耗时较⻓&#xff0c;因此采⽤克隆的⽅式节省时间。 上机考试抽题 从⼀部分可以上机考试的内容开始&#xff0c;在保证⼤家的公平…

经典的免费wordpress模板

这款经典的免费WordPress模板以鲜艳的红色为主调&#xff0c;充满了活力与热情。设计简洁而现代&#xff0c;适合各种类型的项目网站。模板采用响应式设计&#xff0c;确保在不同设备和屏幕尺寸上都能呈现出完美的视觉效果。 红色象征着激情、活力和自信&#xff0c;这款模板…

面试题:判断一个完全平方数

面试题&#xff1a;判断一个完全平方数 方法一&#xff1a;平方根法 bool isPerfectSquare(int n) {int sqrt_n int(sqrt(1.0 * n));return sqrt_n * sqrt_n n; }方法二&#xff1a;连续奇数和法 // 一个完全平方数可以表示为前n个连续奇数的和&#xff0c;如1 3 5 // 不…

对策略模式的理解

目录 一、场景1、题目描述 【[来源](https://kamacoder.com/problempage.php?pid1082)】2、输入描述3、输出描述4、输入示例5、输出示例 二、不使用策略模式三、使用策略模式1、不优雅的实现2、策略模式 简单工厂模式2.1 代码2.2 优点2.3 另一种实现方式 四、个人思考 一、场…

2024年Q1企业邮箱安全性研究报告:钓鱼邮件同比增长59.9%

4月23日&#xff0c;Coremail邮件安全联合北京中睿天下信息技术有限公司发布《2024年第一季度企业邮箱安全性研究报告》。对当前企业邮箱的应用状况和安全风险进行了分析。 1、垃圾邮件持续增长 根据Coremail邮件安全人工智能实验室最新数据显示&#xff0c;2024年第一季度&am…

4 -26

4-26 1 英语单词100个一篇六级翻译 2 div 4 补题目 3 概率论期中卷子一张&#xff0c;复习复习。 4 备课ing 晚上出去炫饭&#xff0c;串串香&#xff0c;无敌了。 中间一些模拟题是真的恶心&#xff0c;思维题是真的想不到&#xff0c;感觉自己就是一个废物呢。 1.是将一个数…

[C++]STL---unordered_set与unordered_map的模拟实现

目录 前言 哈希桶的改造 哈希桶的初步改造 迭代器的模拟实现 operator() 类互相typedef时的前置声明 友元声明 迭代器的出口 插入Insert() 查找Find(&#xff09; 哈希表的最终改造 unordered_set的模拟实现 unordered_map的模拟实现 前言 unordered_set与set的区…