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

STL专项:queue 队列

queue

queue提供了先进先出(First In First Out)的数据结构。队列在尾部添加元素,在头部删除元素。

常见的应用有:模拟、约瑟夫环、bfs、分支限界搜索、单调队列等算法。

创建队列

queue<int> q;//创建一个 int 类型的队列

入队(添加元素)

//使用 push() 函数将元素添加到队列的尾部。

q.push(10)//将10添加到队列尾部

q.push(20)

q.push(30)

出队(删除元素)

//使用 pop() 函数删除队列的头部元素

q.pop();//删除头部元素,即10

访问队列头部元素

//使用 front() 函数获取队列头部元素的引用

int frontElement = q.front();// frontElement 现在是20

访问队列尾部元素

//使用 back() 函数获取队列尾部元素的引用

int backElement = q.back();// backElement 现在是30

检查队列是否为空/获取队列大小

//使用 empty() 函数检查队列是否为空

if(q.empty())//队列为空

if(q.size())//队列不为空

手写队列

//queue和stack一样不允许遍历

int q[N];

int qh=1,qt=0;//qh队头,qt队尾

//入队

q[++qt]=x;

//出队

qh++;

//大小

qt-qh+1

约瑟夫环

约瑟夫环(easy) | 星码StarryCoding 算法竞赛新手村

代码

#include<bits/stdc++.h> using namespace std; void solve(){ int n,m;cin>>n>>m; queue<int> q; for(int i=1;i<=n;i++){ int x;cin>>x; q.push(x); } for(int i=1;i<n;i++){ for(int j=1;j<m;j++){ int x=q.front(); q.pop(); q.push(x); } q.pop(); } cout<<q.front()<<'\n'; } int main(){ int _;cin>>_; while(_--) solve(); return 0; }

区别对待

区别对待 | 星码StarryCoding 算法竞赛新手村

代码

#include<bits/stdc++.h> using namespace std; const int N = 1e5+9; void solve(){ char s[N];cin>>s+1; int n=strlen(s+1); queue<char> q1,q2; for(int i=1;i<=n;i++){ if(s[i]>='0'&&s[i]<='9') q1.push(s[i]); else q2.push(s[i]); } while(q1.size()){ cout<<q1.front(); q1.pop(); } cout<<'#'; while(q2.size()){ cout<<q2.front(); q2.pop(); } cout<<endl; } int main(){ int _;cin>>_; while(_--) solve(); return 0; }
http://www.jsqmd.com/news/155449/

相关文章:

  • YOLO模型灰度版本灰度过程中的数据分析报告
  • 超详细版JLink驱动在不同IDE中的配置对比
  • 张兆辉南沙开唱宠粉无极限 百人铁粉挤爆酒店 一位美女助手竟成全场焦点
  • YOLO检测精度不稳?可能是你的GPU资源配置不合理
  • STL专项:deque 双端队列
  • 力扣169:多数元素-抵消法和哈希表
  • 刚调试完一个追剪项目,客户要求切刀必须精确咬合印刷包装袋的切口。这玩意儿玩的就是主轴和从轴的默契配合——主轴带着材料跑,从轴伺服得在正确时间点扑上去完成剪切
  • YOLO模型缓存刷新机制:主动推送更新而非等待过期
  • STL专项:priority_queue 优先队列(堆)
  • EMC的三大法宝②:接地(二)
  • YOLO模型冷启动DNS预解析:减少网络首次延迟
  • YOLO模型灰度发布期间的内部培训计划
  • YOLO模型灰度发布期间的客户支持渠道开通
  • 手把手拆解全自动上位机:C#多线程玩转西门子PLC
  • YOLO目标检测全流程拆解:数据标注到GPU部署的每一步
  • YOLO推理批处理优化:提升GPU利用率的秘密武器
  • Java常见技术分享-17-多线程安全-并发编程的核心问题的解决方案
  • 每天一个网络知识:什么是以太网虚拟专用网络?
  • 全国首批10城菁彩Vivid影厅启幕,《山河故人》重映见证影像新纪元
  • Java常见技术分享-18-多线程安全-进阶模块-并发集合与线程池
  • 以太网二层协议有哪些?
  • 【python大数据毕设实战】音乐内容智能推荐与市场趋势分析系统、Hadoop、计算机毕业设计、包括数据爬取、数据分析、数据可视化、机器学习、实战教学
  • Linux 入门必掌握的十大命令
  • 算法-回溯-14
  • 《创业之路》-761-《架构思维:从程序员到CTO》第四部 - 架构师的职业规划与能力成长:从执行者到战略引领者的跃迁,技术、业务与软技能的三角支撑。
  • YOLO与Prometheus Thanos Ruler集成:跨集群告警规则
  • YOLO与Kubeflow MLOps集成:端到端机器学习 pipeline
  • YOLO在噪音污染监测的应用:施工机械视觉识别
  • TCN-BiGRU回归+特征贡献SHAP分析+新数据预测+多输出,MATLAB代码
  • YOLO目标检测中的知识蒸馏实践:Teacher-Student架构