STL | stack 和 queue
stack
介绍
先进后出的适配器
头文件
#include <stack>
template <class Type, class Container = deque <type>>
class stack
初始化
stack();
// 使用容器来构造一个栈,并保持原容器中的元素顺序
explict stack(const container_type& right);
例:
#include <iostream>
#include <vector>
#include <stack>
using namespace std;
int main() {
vector<int> vec = { 1, 3, 5, 7 };
stack<int, vector<int>> st(vec);
cout << st.top() << endl; // 输出7
return 0;
}
函数
empty
删除栈顶元素
void pop();
push
压栈
void push(const Type& val);
size
返回栈的长度
size_type size() const;
swap
void swap(stack&other) noexcept;
top
返回栈顶元素的引用
reference top();
const_reference top() const;
运算符
- operator=
- operator<
- operator<=
- operator==
- operator>
- operator>=
queue
queue
介绍
先进先出的适配器
头文件
#include <queue>
// 默认底层容器为deque,可以指定为其他容器
template <class Type, class Container = deque<Type>>
class queue
初始化
queue();
explicit queue(const container_type& right);
函数
back
返回最后一个元素的引用
reference back();
const_reference back() const;
empty
bool empty() const;
front
返回第一个元素的引用
reference front();
const_reference front() const;
pop
void pop();
push()
将元素添加到队列尾部
void push(const Type& val);
size
size_type size() const;
swap
void swap(queue& other) noexcept;
操作符
- operator=
- operator<
- operator<=
- operator==
- operator>
- operator>=
priority_queue
介绍
底层数据结构为堆
对元素进行排序,以便最大的元素始终在最前面
头文件
#include <queue>
template <class Type, class Container=vector<type>,
class Compare=less <typename Container:: value_type>>
class priority_queue
初始化
priority_queue();
// const Traits& _comp 是一个比较函数对象
explicit priority_queue(const Traits& _comp);
...
...
例:
// 默认大根堆, 即每次取出的元素是队列中的最大值
priority_queue<int> pri_que1;
// 大根堆, 每次取出的元素是队列中的最大值,同第一行
priority_queue<int, vector<int>, less<int> > pri_que2;
// 小根堆, 每次取出的元素是队列中的最小值
priority_queue<int, vector<int>, greater<int> > pri_que3;
函数
- empty
- pop
- push
- size
- swap
- top
运算符
同queue
分类:
STL
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)