第 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;
}
?