总所周知,优先队列是一种常用的数据结构。
下面是一个简单的优先队列代码:
#include <iostream>
#include <vector>
#include <queue>
using namespace std;
int main()
{
priority_queue<pair<int, int>, vector<pair<int, int>>> q;
for (int i = 0; i < 10; i++)
{
q.push(make_pair(i, i + (i - i / 2 * (i % 2 ? -1 : 1)))); // 构建一个简单的优先队列,附带一些简单的数据
}
while (!q.empty())
{
// 输出优先队列的内容
pair<int, int> top = q.top();
q.pop();
cout << top.first << " " << top.second << endl;
}
return 0;
}
输出结果如下:
9 22
8 12
7 17
6 9
5 12
4 6
3 7
2 3
1 2
0 0
有时,我们在调试时可能会出现需要输出优先队列的全部数据来观看数据情况。
例如,我们需要在输入top数据之前