STL-queue&deque&stack
STL queue&deque&stack
queue主要包括循环队列queue和优先队列priority_queue两个容器
stack包含栈容器
include 头文件声明
#include <queue> #include <deque> #include <stack>
声明
queue<int> q; deque<int> p; struct abc{…}; queue<abc> q; //结构体rec中必须定义小于号 priority_queue<int> q; // 大根堆 priority_queue<int, vector<int>, greater<int> q; // 小根堆 priority_queue<pair<int, int>>q;
stack声明和其他的容器类似
queue:
首先插入的元素将首先被提取,依此类推
有一个称为“前”的元素,它是位于最前位置或位于第一个位置的元素,也有一个名为“后”的元素,它是位于最后位置的元素
在普通队列中,元素的插入在尾部,而删除则从前面开始
优先队列是普通队列的扩展版本,对优先级最高的元素首先进行操作
/////
循环队列 queue
push 从队尾插入
pop 从队头弹出
front 返回队头元素
back 返回队尾元素
push() pop() front() back()
超过限制会循环进行
/////
优先队列 priority_queue
push 把元素插入堆
pop 删除堆顶元素
top 查询堆顶元素(最大值)
push() pop() top()
deque:
双端队列deque是一个支持在两端高效插入或删除元素的连续线性存储空间
就像是vector和queue的结合
与vector相比,deque在头部增删元素仅需要O(1)的时间
与queue相比,deque像数组一样支持随机访问
/////
begin/end,返回deque的头/尾迭代器
front/back 队头/队尾元素
push_back 从队尾入队
push_front 从队头入队
pop_back 从队尾出队
pop_front 从队头出队
clear 清空队列
效率较慢
stack:
首先插入的元素将在末尾提取,以此类推。有一个名为“top”的元素,它是位于最上面位置的元素
所有插入和删除操作都是在堆栈的顶部元素本身进行的
/////
push 向栈顶插入
pop 弹出栈顶元素
push() pop()
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具