1: //priority_queue02.cpp
3: #include <iostream>
4: #include <queue>
5: #include <vector>
6: #include <list>
7: #include <functional>
8: using namespace std;
11: int main()
12: {
13: cout << "\nThis program illustrates two constructors of the "
14: "STL priority-queue class,\nand the assignment of one "
15: "priority_queue object to another.";
16: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n');
18: cout << "\nFirst, we create an empty priority_queue object pq1, "
19: "then push five values\ninto it, then display those five values in "
20: "the default priority order.";
21: priority_queue<int> pq1;
22: pq1.push(27);
23: pq1.push(19);
24: pq1.push(35);
25: pq1.push(46);
26: pq1.push(11);
27: while(!pq1.empty())
28: {
29: cout << "\nPopping ";
30: cout << pq1.top();
31: pq1.pop();
32: }
33: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n');
35: cout << "\nSecond, we create a priority_queue pq2 with four "
36: "values from a list,\nthen display those four values, again "
37: "in default priority order.";
38: int a[] = {11, 44, 33, 22};
39: list<int> lst(a, a+4);
40: priority_queue<int> pq2(lst.begin(), lst.end());
41: //Before displaying pq2, assign it to another priority_queue object.
42: priority_queue<int> pq3;
43: pq3 = pq2;
44: while(!pq2.empty())
45: {
46: cout << "\nPopping ";
47: cout << pq2.top();
48: pq2.pop();
49: }
50: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n');
52: cout << "\nFinally, we display pq3, which was obtained by "
53: "assigning pq2 to pq3,\nimmediately after declaring pq3 as "
54: "an empty priority_queue object.";
55: while(!pq3.empty())
56: {
57: cout << "\nPopping ";
58: cout << pq3.top();
59: pq3.pop();
60: }
61: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n');
62: }