第 5 行定义了一个队首是最大值的优先队列,第 10 行的输出如下:
27 - wuhan 21 - shanghai 11 - beijing
第 13 行定义了一个队首是最小值的优先队列,第 19 行的输出如下:
11 - beijing 21 - shanghai 27 - wuhan
#include <bits/stdc++.h>
using namespace std;
int main() {
priority_queue<pair<int, string>> pq; //队首是最大值
pair<int, string> a(11, "beijing"), b(21, "shanghai"), c(27, "wuhan");
pq.push(a);
pq.push(b);
pq.push(c);
while (!pq.empty()) {
cout << pq.top().first << " - " << pq.top().second << "\n";
pq.pop();
}
priority_queue<pair<int, string>, vector<pair<int, string>>, \
greater<pair<int, string>>> pq2; //队首是最小值
pq2.push(a);
pq2.push(b);
pq2.push(c);
while (!pq2.empty()) {
cout << pq2.top().first << " - " << pq2.top().second << "\n";
pq2.pop();
}
return 0;
}