当前位置: 首页 > news >正文

【C++】queue(二)

2.queue的介绍和使用

2.1 queue的介绍

queue的文档介绍
翻译:

队列是一种容器适配器,专门用于在FIFO上下文(先进先出)中操作,其中从容器一端插入元素,另一端提取元素。

队列作为容器适配器实现,容器适配器即将特定容器类封装作为其底层容器类,queue提供一组特定的成员函数来访问其元素。元素从队尾入队列,从队头出队列。

底层容器可以是标准容器类模板之一,也可以是其他专门设计的容器类。该底层容器应至少支持以下操作:
empty:检测队列是否为空
size:返回队列中有效元素的个数
front:返回队头元素的引用
back:返回队尾元素的引用
push_back:在队列尾部入队列
pop_front:在队列头部出队列

标准容器类deque和list满足了这些要求。默认情况下,如果没有为queue实例化指定容器类,则使用标准容器deque。

2.2 queue的使用

函数声明接口说明
queue()构造空的队列
empty()检测队列是否为空,是返回true,否则返回false
size()返回队列中有效元素的个数
front()返回队头元素的引用
back()返回队尾元素的引用
push()在队尾将元素val入队列 pop() 将队头元素出队列

二叉树的层序遍历

classSolution{public:vector<vector<int>>levelOrder(TreeNode*root){vector<vector<int>>vv;queue<TreeNode*>q;intlevelsize=0;if(root){q.push(root);levelsize=1;}while(!q.empty()){vector<int>v;while(levelsize--){TreeNode*front=q.front();q.pop();v.push_back(front->val);if(front->left){q.push(front->left);}if(front->right){q.push(front->right);}}vv.push_back(v);levelsize=q.size();}returnvv;}};

用队列实现栈

classMyStack{public:MyStack(){}voidpush(intx){q2.push(x);while(!q1.empty()){q2.push(q1.front());q1.pop();}swap(q1,q2);}intpop(){intx=q1.front();q1.pop();returnx;}inttop(){returnq1.front();}boolempty(){returnq1.empty();}private:queue<int>q1;queue<int>q2;};

http://www.jsqmd.com/news/674534/

相关文章:

  • Python 封神技巧:1 行代码搞定 90% 日常数据处理,效率直接拉满
  • SegNet 彻底吃透:编码器-解码器架构封神,语义分割边界精度卷到极致!
  • 医疗电爪安全规范详解,2026年优质医疗自动化电爪品牌甄选 - 品牌2026
  • LeetCode 热题 100-----4. 移动零
  • Anthropic新品频发“斩杀”传统软件公司,AI与SaaS是取代还是融合?
  • JVM执行模式解析:解释、编译与混合优化
  • 千问 LeetCode 1575.统计所有可行路径 public int countRoutes(int[] locations, int start, int finish, int fuel)
  • 嵌入式C语言高级编程之依赖注入模式
  • Cursor Skill 概念、编写与接入指南
  • 【C++】手撕日期类——运算符重载完全指南(含易错点+底层逻辑分析)
  • 《每个女孩都是生活家》
  • 如何利用智能照明控制器实现城市照明的“零扰民”运维?
  • ML:数据集、训练集与测试集
  • Ubuntu服务器Docker安装后必做的三件事:换源、装Portainer、设自启(避坑实录)
  • Meta烧Token成KPI,OpenClaw引发AI成本结构重塑:不拼算力拼效率
  • LeetCode热题100-单词拆分
  • 1.7k stars!Mozilla 出手了!开源 AI 客户端 Thunderbolt,让企业真正掌控自己的 AI!
  • 质子成像诊断随机磁场技术
  • 了解新能源电爪产线适配性,专业新能源汽车制造电爪厂家挑选 - 品牌2026
  • 别再用`yum install gcc`了!手把手教你源码编译安装GCC 11.2.0,打造专属开发环境
  • 2026年专业伺服电爪厂商甄选指南:伺服电爪精准控制解析 - 品牌2026
  • 利用层次聚类来提升知识检索的性能
  • SQL练习题及答案与详细分析
  • 告别网页版卡顿!手把手教你用BLAST+在Ubuntu上搭建本地序列比对环境(附批量建库脚本)
  • Dify工业知识库冷启动难题破解:仅需3人·2天·1台国产服务器,完成某汽车零部件集团全厂知识纳管
  • Go语言的文件处理操作
  • 可学习上采样方法改进YOLOv5特征图恢复:从原理到实战全解析
  • Display Driver Uninstaller终极指南:5步彻底解决显卡驱动安装难题
  • 头歌操作系统课后作业2.1
  • MySQL 索引命中机制详解