C++ stack queue priority_queue
栈、队列、和优先队列(堆)
stack用法
使用前先导入#include<stack>
然后创建stack <type> s;
然后一堆操作
压栈s.push(i);
出栈s.pop();
访问栈顶s.top();
获取长度s.size();
判断是否为空s.empty();
想必从第一节看过来的不用解释都能看懂啦~
不能使用迭代器(栈怎么能遍历呢?)
queue用法
使用前先导入#include<queue>
然后创建queue <type> q;
然后一堆操作~
入队q.push(i);
出队q.pop();
访问队首q.front();
访问队尾q.back();
获取长度q.size();
判断是否为空q.empty();
想必从第一节看过来的不用解释都能看懂啦~
不能使用迭代器(队列怎么能遍历呢?)
priority_queue用法
优先队列!堆!!
使用前先导入#include<priority_queue>
然后创建priority_queue <type> pq;
(默认是一个大根堆)
如果想要一个小根堆呢?
只需要这么写priority_queue<int, vector<int>, greater<int>> pq;
==注意,<>里的三个参数缺一不可==
一些操作
插入堆pq.push(i);
删除堆顶元素pq.pop();
访问堆顶元素pq.top();
判断是否为空pq.empty();
返回元素数量pq.size();
想必从第一节看过来的不用解释都能看懂啦~
不过不能直接堆排序~,想输出排序结果的话,可以使用
1 | while(!pq.empty()){ |
就可以啦~
不能使用迭代器(堆怎么能遍历呢)
STL暂时告一段落啦~~~
- Title: C++ stack queue priority_queue
- Author: Connor
- Created at : 2025-10-22 16:18:17
- Updated at : 2025-10-22 16:25:31
- Link: https://redefine.ohevan.com/2025/10/22/stack-queue-pq/
- License: This work is licensed under CC BY-NC-SA 4.0.