c++ stl 优先队列怎么输出全部数据,同时又获取top数据?
Posted code_kd
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++ stl 优先队列怎么输出全部数据,同时又获取top数据?相关的知识,希望对你有一定的参考价值。
总所周知,优先队列是一种常用的数据结构。
下面是一个简单的优先队列代码:
#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数据之前输出当前优先队列的数据。
方法:使用优先队列的构造函数构造一个和当前优先队列一样的数据,然后输出。
代码如下:
#inclu
以上是关于c++ stl 优先队列怎么输出全部数据,同时又获取top数据?的主要内容,如果未能解决你的问题,请参考以下文章