首页 > 后端开发 > C++ > 正文

c++中的std::deque容器怎么使用_c++ std::deque使用方法

冰火之心
发布: 2025-10-11 14:27:02
原创
919人浏览过
std::deque是C++ STL中支持双端高效插入删除的序列容器,通过包含<deque>头文件使用,可定义如std::deque<int> dq;常用操作包括push_back、push_front、pop_back、pop_front、front、back、size、empty等,支持随机访问但不保证内存连续,适用于双端频繁操作场景。

c++中的std::deque容器怎么使用_c++ std::deque使用方法

std::deque(双端队列)是 C++ 标准模板库(STL)中的一个序列容器,支持在头部和尾部高效地插入和删除元素。与 std::vector 相比,std::deque 在两端操作都很快,而 vector 只在尾部高效。下面介绍 deque 的基本用法和常见操作。

包含头文件和定义 deque

使用 std::deque 需要包含头文件 <deque>

#include <deque>
#include <iostream>

定义一个 deque 的方式如下:

std::deque<int> dq; // 存储 int 的 deque
std::deque<std::string> names; // 存储字符串的 deque

常用成员函数和操作

deque 提供了丰富的接口来操作数据,以下是常用的几种方法:

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

1. 插入元素
  • push_back(value):在尾部添加元素
  • push_front(value):在头部添加元素
  • insert(iterator, value):在指定位置插入元素

示例:

百度智能云·曦灵
百度智能云·曦灵

百度旗下的AI数字人平台

百度智能云·曦灵 83
查看详情 百度智能云·曦灵
dq.push_back(10); // [10]
dq.push_front(5); // [5, 10]
dq.push_back(20); // [5, 10, 20]
2. 删除元素
  • pop_back():删除最后一个元素
  • pop_front():删除第一个元素
  • erase(iterator):删除指定位置的元素

示例:

dq.pop_back(); // 移除 20,剩下 [5, 10]
dq.pop_front(); // 移除 5,剩下 [10]
3. 访问元素
  • front():返回第一个元素的引用
  • back():返回最后一个元素的引用
  • operator[]at(index):通过索引访问元素

示例:

std::cout << dq.front() << std::endl; // 输出 10
std::cout << dq[0] << std::endl; // 输出 10
std::cout << dq.at(0) << std::endl; // 同上,带越界检查
4. 其他常用函数
  • size():返回元素个数
  • empty():判断是否为空
  • clear():清空所有元素
  • begin()end():返回迭代器,用于遍历

遍历示例:

for (const auto& x : dq) {
  std::cout << x << " ";
}

deque 的特点和适用场景

std::deque 的内存结构不是连续的,而是由多个固定大小的块组成,因此它可以在前后高效插入/删除。主要特点包括:

  • 支持随机访问(可用下标或 at)
  • 在头部和尾部插入删除的时间复杂度为 O(1)
  • 不保证整体内存连续(与 vector 不同)
  • 中间插入/删除效率较低(需要移动元素)

适合用于需要频繁在两端操作的场景,比如实现双端队列、滑动窗口、任务调度等。

基本上就这些。deque 使用简单,功能强大,是 vector 的有力补充。

以上就是c++++中的std::deque容器怎么使用_c++ std::deque使用方法的详细内容,更多请关注php中文网其它相关文章!

c++速学教程(入门到精通)
c++速学教程(入门到精通)

c++怎么学习?c++怎么入门?c++在哪学?c++怎么学才快?不用担心,这里为大家提供了c++速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号