1: //priority_queue03.cpp
3: #include <iostream>
4: #include <queue>
5: #include <vector>
6: #include <functional>
7: using namespace std;
9: int main()
10: {
11: cout << "\nThis program illustrates how to define a priority_queue "
12: "object with the\npriority determined by a built-in \"function "
13: "object\", and also how to alter\nthe underlying container used "
14: "by the priority_queue object.";
15: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n');
17: priority_queue<int, vector<int>, greater<int>> pq1;
18: pq1.push(27);
19: pq1.push(19);
20: pq1.push(35);
21: pq1.push(46);
22: pq1.push(11);
24: cout << "\nThe priority queue pq1 contains "
25: << pq1.size() << " values.";
26: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n');
28: cout << "\nHere they are, in priority order:\n";
29: while(!pq1.empty())
30: {
31: cout << "Popping ";
32: cout << pq1.top() << "\n";
33: pq1.pop();
34: }
35: cout << "Press Enter to continue ... "; cin.ignore(80, '\n');
37: priority_queue<double, deque<double>, greater<double>> pq2;
38: pq2.push(2.7);
39: pq2.push(1.9);
40: pq2.push(3.5);
41: pq2.push(4.6);
42: pq2.push(1.1);
44: cout << "\nThe priority queue pq2 contains "
45: << pq2.size() << " values.";
46: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n');
48: cout << "\nHere they are, in priority order:\n";
49: while(!pq2.empty())
50: {
51: cout << "Popping ";
52: cout << pq2.top() << "\n";
53: pq2.pop();
54: }
55: cout << "Press Enter to continue ... "; cin.ignore(80, '\n');
56: }