首页app攻略C++如何使用std::deque双端队列_C++ std::deque使用方法

C++如何使用std::deque双端队列_C++ std::deque使用方法

圆圆2025-10-13 23:01:17次浏览条评论

std::deque是C STL中的双端队列,支持高效首尾插入删除,兼具良好的缓存性能和随机访问能力,适用于滑动窗口、任务调度等场景。

c++如何使用std::deque双端队列_c++ std::deque使用方法

在C中,std::deque(双端队列)是标准模板库(STL)提供的一个序列容器,支持在头部和尾部快速地插入和删除元素。与向量相比,双端队列在两端操作更加灵活;与列表相比,它具有更好的存储性能和随机访问能力。

包含头文件

使用std::deque前包含对应的头文件:

#include lt;dequegt;声明与初始化

可以通过多种方式创建和初始化一个deque对象:

学习“C免费学习笔记(深入)”;std::dequelt;intgt;dq; // 空的int类型双端队列 std::dequelt;intgt; dq(5); // 包含 5 个默认值 0 的元素 std::dequelt;intgt; dq(5, 10); // 包含 5 个默认值 10 的元素 std::dequelt;intgt; dq2(dq); // 拷贝构造 std::dequelt;intgt; dq = {1, 2, 3, 4}; // 列表初始化(C) 11起)常用成员函数操作

deque提供了丰富的数据操作接口:

插入与删除dq.push_back(x); // 尾部插入x dq.push_front(x); // 头部插入x dq.pop_back(); // 删除尾部元素 dq.pop_front(); // 删除头部元素 dq.insert(it, x); //在迭代器位置插入x dq.erase(it); // 删除指定位置元素 dq.clear(); // 清空所有元素

访问元素 AppMall 应用商店

AI 应用商店,提供即时交付、后续付费的人工智能应用服务 56 查看详情 dq.front(); // 获取第一个元素 dq.back(); // 获取最后一个元素 dq[i]; // 获取最后一个元素 dq[i]; //随机访问第i个元素(不检查越界) dq.at(i); // 访问第i个元素(会做越界检查,越界推送std::out_of_range)

容量与状态查询dq.empty(); //判断是否为空 dq.size(); //返回当前元素个数 dq.max_size(); //最大可承载元素数传输deque

使用可以下标、迭代器或范围for循环遍历:

//使用范围forfor (const autoamp; elem : dq) {    std::cout lt;lt; elem lt;lt; " ";}// 使用迭代器 for (auto it = dq.begin(); it

!= dq.end(); it) {    std::cout lt;lt; *it lt;lt; " ";}

deque也支持反向迭代:

for (auto rit = dq.rbegin(); rit != dq.rend(); rit) {    std::cout lt;lt; *rit lt;lt; " ";}实际使用示例

#include lt;iostreamgt;#include lt;dequegt;int main() {    std::dequelt;intgt; dq;    dq.push_back(10);    dq.push_front(5);    dq.push_back(15);    std::cout lt;lt; "前面: " lt;lt; dq.front() lt;lt; "\n"; // 输出 5    std::cout lt;lt; "Back: " lt;lt; dq.back() lt;lt; "\n"; // 输出 15    while (!dq.empty()) {        std::cout lt;lt; dq.front() lt;lt; " ";        dq.pop_front();    }    //输出:5 10 15    return 0;}

基本上就这些。std::deque需要适合在端点增删元素的场景,比如实现滑动窗口、任务调度队列等。它的接口设计想象,用起来和向量很像,但功能更全面。注意不要对deque使用间隙capacity()和reserve(),它没有预备空间的概念。基本上就这些。

以上就是C如何使用std::deque双端队列_C std::deque使用方法的详细内容,更多请关注乐哥常识网相关文章!高通亮相2025中国移动全球合作伙伴大会:合创智启未来共赢AI时代Reflection AI完成20亿美元融资,打造“开放智能”夸克浏览器AI搜索指令分享_精通夸克AI搜索的命令与提示

C++如何使用std
小米猫眼是干嘛呢 小米猫眼延迟
相关内容
发表评论

游客 回复需填写必要信息