STL(第四课):deque

STL deque是标准模板库(STL)中的一个容器,deque是"double-ended queue"的缩写,它是一种双端队列的数据结构,允许在两端进行插入和删除操作。

STL deque中的元素存储在连续的内存块中,一般由多个缓冲区组成,每个缓冲区的大小固定。当插入元素时,如果当前缓冲区已满,则新增一个缓冲区并将元素插入到新缓冲区的开头;当删除元素时,如果当前缓冲区只剩下一个元素,则删除该元素并释放该缓冲区。

STL deque支持随机访问和迭代器,可以在任意位置进行插入和删除操作,也可以通过迭代器遍历元素。

STL deque常用的成员函数:

  1. push_front(val):在deque头部插入一个val元素;
  2. push_back(val):在deque尾部插入一个val元素;
  3. pop_front():删除deque头部的元素;
  4. pop_back():删除deque尾部的元素;
  5. front():返回deque头部的元素;
  6. back():返回deque尾部的元素;
  7. size():返回deque中元素的个数;
  8. clear():清空deque中的所有元素;
  9. empty():判断deque是否为空;
  10. begin():返回迭代器,指向deque头部的元素;
  11. end():返回迭代器,指向deque尾部的下一个位置;
  12. rbegin():返回反向迭代器,指向deque尾部的元素;
  13. rend():返回反向迭代器,指向deque头部的前一个位置。

STL deque的时间复杂度如下:

  1. 在deque头部或尾部插入或删除元素的时间复杂度为O(1);
  2. 随机访问deque中的元素的时间复杂度为O(1);
  3. 在deque中任意位置插入或删除元素的时间复杂度为O(n),其中n为deque中元素的个数。
相关推荐
wuqingshun3141592 小时前
重写equals而不重写hashCode,会出什么问题?
java·开发语言
飞猪~2 小时前
LangChain python 版本 第一集
开发语言·python·langchain
李燚3 小时前
Go 项目怎么组织:DDD 4 层 vs MVC vs 脚本式
开发语言·golang·mvc·ddd·agent框架·eino
2zcode4 小时前
免费开源项目文档:基于MATLAB图像处理的啤酒瓶口缺陷检测系统设计与实现
开发语言·图像处理·matlab
人工智能时代 准备好了吗4 小时前
AI回答内容进入率监测:引用识别、文本匹配与语义判断
开发语言·人工智能·python
LONGZETECH4 小时前
新能源汽车动力电池检测仿真教学系统:C/S 分层架构与数字化实训落地全解析
大数据·c语言·开发语言·人工智能·架构·系统架构·汽车
郝学胜-神的一滴4 小时前
中级OpenGL教程 013:渲染器类架构设计与逐帧渲染流程详解
开发语言·c++·unity·游戏引擎·图形渲染·opengl·unreal
Metaphor6925 小时前
使用 Python 冻结 Excel 文件中的行、列和单元格
开发语言·python·excel
小七在进步5 小时前
数据结构:栈与队列之栈的实现
数据结构
言乐65 小时前
Python实现建造微服务商城后台
开发语言·python·算法·微服务·架构