队列模板
先进先出 FIFO——BFS 的核心数据结构
队列
queue
BFS
FIFO
GESP6
#include <bits/stdc++.h>
using namespace std;
// 基本队列操作
void demo() {
queue<int> q;
q.push(1); q.push(2); q.push(3);
cout << q.front() << endl; // 1
q.pop();
cout << q.front() << endl; // 2
cout << q.size() << endl; // 2
}
// 优先队列(大根堆)
void demo_pq() {
priority_queue<int> pq; // 大根堆
priority_queue<int, vector<int>, greater<int>> minq; // 小根堆
pq.push(3); pq.push(1); pq.push(2);
cout << pq.top() << endl; // 3
}
// 双端队列
void demo_deque() {
deque<int> dq;
dq.push_back(1);
dq.push_front(2);
cout << dq.front() << endl; // 2
cout << dq.back() << endl; // 1
}
int main() {
demo();
demo_pq();
return 0;
}
📖 要点说明
queue: FIFO,front/back/push/poppriority_queue: 大根堆默认,小根堆加greater<int>deque: 双端队列,两头都能进出
⚠️ 常见错误
- 队列没有
top,用front - 优先队列忘加
greater<int>变小根堆 - 优先队列弹空后访问 top 崩溃