C++标注模板库(STL)-deque介绍

C++标准库中的deque是一个双端队列(double-ended queue),它支持在队列的前端和后端进行插入和删除操作。deque在内部使用了动态数组来实现,因此具有高效的随机访问性能。

deque基本操作

deque是C++标准库中的双端队列(double-ended queue),它支持在队列的前端和后端进行插入和删除操作。以下是一些基本的deque操作函数:

  1. push_front(): 在队列前端插入一个元素。
  2. push_back(): 在队列后端插入一个元素。
  3. pop_front(): 删除队列前端的一个元素。
  4. pop_back(): 删除队列后端的一个元素。
  5. front(): 返回队列前端元素。
  6. back(): 返回队列后端元素。
  7. empty(): 检查deque是否为空。
  8. size(): 返回deque中元素的数量。
  9. clear(): 删除deque中的所有元素。
  10. insert(iterator position, const value_type& val): 在迭代器position指定的位置之前插入值val
  11. erase(iterator position): 删除位于position的元素。
  12. erase(iterator first, iterator last): 删除位于范围[first, last)内的元素。
  13. swap(deque<T>& x): 与另一个deque交换内容。
  14. rbegin(): 返回指向deque后端的随机访问迭代器。
  15. rend(): 返回指向deque前端反向的随机访问迭代器。
  16. begin(): 返回指向deque前端的随机访问迭代器。
  17. end(): 返回指向deque后端反向的随机访问迭代器。

deque特性

  1. 具有动态大小:deque是一个动态数组,可以根据需要自动扩展或收缩容器。
  2. 两端可扩展:deque可以在前端或后端(或同时两端)进行插入和删除操作。
  3. 随机访问迭代器:deque允许通过随机访问迭代器直接访问各个元素。

请注意,不同的库可能以不同的方式实现deques,但在任何情况下,它们都允许通过随机访问迭代器直接访问各个元素,并通过根据需要扩展和收缩容器来自动处理存储。

应用举例

c++ 复制代码
#include <iostream>
#include <deque>

int main() {
    std::deque<int> d;

    // 在队列后端插入元素
    d.push_back(1);
    d.push_back(2);
    d.push_back(3);

    // 在队列前端插入元素
    d.push_front(0);
    d.push_front(4);

    // 删除队列前端元素
    d.pop_front();

    // 删除队列后端元素
    d.pop_back();

    // 遍历队列中的元素并输出
    for (int i : d) {
        std::cout << i << " ";
    }

    return 0;
}
相关推荐
不爱编程的小九九4 分钟前
小九源码-springboot103-踏雪阁民宿订购平台
java·开发语言·spring boot
共享家95275 分钟前
LRU 缓存的设计与实现
开发语言·c++
2301_7965125230 分钟前
Rust编程学习 - 问号运算符会return一个Result 类型,但是如何使用main函数中使用问号运算符
开发语言·学习·算法·rust
草莓熊Lotso35 分钟前
Linux 基础开发工具入门:软件包管理器的全方位实操指南
linux·运维·服务器·c++·人工智能·网络协议·rpc
座山雕~36 分钟前
测试接口-----详细
开发语言·postman
小龙报1 小时前
算法通关指南:数据结构和算法篇 --- 队列相关算法题》--- 1. 【模板】队列,2. 机器翻译
c语言·开发语言·数据结构·c++·算法·学习方法·visual studio
木木em哈哈1 小时前
有关于cnb自动化的脚本补全
服务器·开发语言·pygame
星释1 小时前
Rust 练习册 :Poker与扑克牌游戏
开发语言·游戏·rust
晨非辰1 小时前
【数据结构初阶】--从排序算法原理分析到代码实现操作,参透插入排序的奥秘!
c语言·开发语言·数据结构·c++·算法·面试·排序算法
Jonathan Star1 小时前
Next.js、NestJS、Nuxt.js 是 **Node.js 生态中针对不同场景的框架**
开发语言·javascript·node.js