讲师中心 微信公众号
AI工具推荐 视频效率加速

C++ queue队列常用操作_C++双端队列deque与queue使用技巧

陌墨君_9810

陌墨君_9810

发布时间:2025-12-23 12:33:14

|

800人浏览过

|

来源于php中文网

原创

queue是FIFO容器,仅支持尾插头删,适用于BFS等场景;deque支持双端操作且可随机访问,适合滑动窗口和频繁首尾插入,功能更灵活但应根据需求选择。

c++ queue队列常用操作_c++双端队列deque与queue使用技巧

在C++中,queue 和 deque 是两种常用的容器适配器,适用于不同场景下的数据操作需求。它们都定义在 <queue></queue> 头文件中(deque 需要 <deque></deque>),使用时需包含对应头文件。

queue 队列的基本操作

queue 是一种先进先出(FIFO)的数据结构,只允许在队尾插入元素,在队首删除元素。

常用操作包括:

  • push(val):在队尾加入一个元素
  • pop():移除队首元素(不返回值)
  • front():获取队首元素的引用
  • back():获取队尾元素的引用
  • empty():判断队列是否为空
  • size():返回队列中元素个数

示例代码:

立即学习“C++免费学习笔记(深入)”;

#include <queue><br>std::queue<int> q;<br>q.push(10);<br>q.push(20);<br>if (!q.empty()) {<br>    std::cout << q.front() << std::endl; // 输出 10<br>    q.pop(); // 移除 10<br>    std::cout << q.front() << std::endl; // 输出 20<br>}

deque 双端队列的核心特性

deque(double-ended queue)支持在头部和尾部高效地插入和删除元素,功能比 queue 更灵活。

前端设计优化skill
前端设计优化skill

前端设计与 UI/UX 全方位优化专家。覆盖视觉层次、排版系统、色彩理论、响应式布局、交互体验、动画动效、无障碍访问、性能优化八大维度,帮助开发者将普通页面升级为高品质产品级界面。前端设计与 UI/UX 全方位优化专家。覆盖视觉层次、排版系统、色彩理论、响应式布局、交互体验、动画动效、无障碍访问、性能优化八大维度,帮助开发者将普通页面升级为高品质产品级界面。

下载

它兼具 vector 和 queue 的特点,可以在两端进行操作。

常用操作有:

  • push_back(val) / push_front(val):尾部或头部插入
  • pop_back() / pop_front():删除尾部或头部元素
  • front() / back():访问首尾元素
  • empty() / size():判空与大小
  • 支持随机访问:operator[] 和 at()

示例:

#include <deque><br>std::deque<int> dq;<br>dq.push_back(1);<br>dq.push_front(0);<br>dq.push_back(2);<br>for (int i = 0; i < dq.size(); ++i) {<br>    std::cout << dq[i] << " "; // 输出 0 1 2<br>}

queue 与 deque 的使用技巧对比

虽然 deque 功能更全,但选择应根据使用场景决定。

  • 若只需要 FIFO 行为,用 queue 更清晰,接口受限反而减少误操作
  • 需要从前端插入或访问中间元素时,必须使用 deque
  • queue 可基于 deque 实现,默认底层容器就是 deque
  • deque 支持迭代器,可配合 STL 算法使用,而 queue 不支持
  • 性能上,deque 在两端操作接近 O(1),且不会像 vector 频繁移动内存

实际应用建议

常见用途:

  • BFS 广度优先搜索:使用 queue 存储待访问节点
  • 滑动窗口问题:使用 deque 维护窗口最大值(单调队列)
  • 需要前后插删的缓存结构:优先考虑 deque
  • 当需要遍历时,不要用 queue,改用 deque 或 list

基本上就这些,合理选择容器能提升代码可读性和效率。

热门AI工具

更多
WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

UP简历
UP简历 Hot

一款AI办公效率工具,主要用于基于AI技术的免费在线简历制作工具,适合需要提升相关任务效率的用户。

音述AI
音述AI Hot

一款AI音频处理工具,主要用于音述AI是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区,适合需要提升相关任务效率的用户。

超级简历WonderCV

一款AI办公效率工具,主要用于免费求职简历模版下载制作,应届生职场人必备简历制作神器,适合需要提升相关任务效率的用户。

Atoms
Atoms Hot

Atoms是一款AI智能体工具,第一支自动构建真实业务的 AI 团队。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

Lovart
Lovart Hot

一款面向视觉设计创作的AI设计平台,可通过智能体和画布工作流辅助制作海报、Logo、网页、PPT及其他视觉内容。

创客贴AI

创客贴AI是一款AI图像与设计工具,AI辅助的智能在线设计工具。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

相关专题

更多
c++怎么把double转成int
c++怎么把double转成int

本专题整合了 c++ double相关教程,阅读专题下面的文章了解更多详细内容。

4168

2025.08.29

C++中int、float和double的区别
C++中int、float和double的区别

本专题整合了c++中int和double的区别,阅读专题下面的文章了解更多详细内容。

804

2025.10.23

treenode的用法
treenode的用法

​在计算机编程领域,TreeNode是一种常见的数据结构,通常用于构建树形结构。在不同的编程语言中,TreeNode可能有不同的实现方式和用法,通常用于表示树的节点信息。更多关于treenode相关问题详情请看本专题下面的文章。php中文网欢迎大家前来学习。

2641

2023.12.01

C++ 高效算法与数据结构
C++ 高效算法与数据结构

本专题讲解 C++ 中常用算法与数据结构的实现与优化,涵盖排序算法(快速排序、归并排序)、查找算法、图算法、动态规划、贪心算法等,并结合实际案例分析如何选择最优算法来提高程序效率。通过深入理解数据结构(链表、树、堆、哈希表等),帮助开发者提升 在复杂应用中的算法设计与性能优化能力。

376

2025.12.22

深入理解算法:高效算法与数据结构专题
深入理解算法:高效算法与数据结构专题

本专题专注于算法与数据结构的核心概念,适合想深入理解并提升编程能力的开发者。专题内容包括常见数据结构的实现与应用,如数组、链表、栈、队列、哈希表、树、图等;以及高效的排序算法、搜索算法、动态规划等经典算法。通过详细的讲解与复杂度分析,帮助开发者不仅能熟练运用这些基础知识,还能在实际编程中优化性能,提高代码的执行效率。本专题适合准备面试的开发者,也适合希望提高算法思维的编程爱好者。

397

2026.01.06

C++ 数据结构与算法实现教程合集
C++ 数据结构与算法实现教程合集

以 C++ 为实现语言,系统讲解核心数据结构与算法,涵盖链表(单链表/双链表/环检测)、栈与队列(单调栈/优先队列)、二叉树(遍历/BST/AVL/红黑树)、哈希表(开地址法/链地址法)、图(邻接表/BFS/DFS/Dijkstra/拓扑排序)、常见排序算法(快排/归并/堆排/计数排序)的实现与复杂度分析,同时分享 LeetCode 刷题技巧、竞赛编程常用模板(二分/前缀和/滑动窗口/动态规划),帮助开发者夯实算法基础。

472

2026.05.09

硬盘接口类型介绍
硬盘接口类型介绍

硬盘接口类型有IDE、SATA、SCSI、Fibre Channel、USB、eSATA、mSATA、PCIe等等。详细介绍:1、IDE接口是一种并行接口,主要用于连接硬盘和光驱等设备,它主要有两种类型:ATA和ATAPI,IDE接口已经逐渐被SATA接口;2、SATA接口是一种串行接口,相较于IDE接口,它具有更高的传输速度、更低的功耗和更小的体积;3、SCSI接口等等。

3168

2023.10.19

PHP接口编写教程
PHP接口编写教程

本专题整合了PHP接口编写教程,阅读专题下面的文章了解更多详细内容。

5049

2025.10.17

Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

60

2026.10.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn