1: //queue01.cpp
3: #include <iostream>
4: #include <queue>
5: using namespace std;
7: int main()
8: {
9: cout << "\nThis program illustrates the \"FIFO\" (First In, "
10: "First Out) behavior\nof a simple queue of characters, "
11: "as well as its default constructor,\nits copy constructor, "
12: "and the queue push(), pop(), front(), back(),\nempty(), "
13: "and size() member functions.";
14: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n');
16: queue<char> q1;
17: q1.push('A');
18: q1.push('B');
19: q1.push('C');
20: q1.push('D');
21: cout << "\nThe queue q1 contains " << q1.size() << " values.";
22: cout << "\nThe front value is " << q1.front() << " and the back "
23: "value is " << q1.back() << ".";
24: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n');
26: queue<char> q2(q1);
27: q2.push('E');
28: cout << "\nThe queue q2 is created as a copy of q1, after which "
29: "another value is added,\nso its size is " << q2.size() << ".";
30: cout << "\nThe front value is " << q2.front() << " and the back "
31: "value is " << q2.back() << ".";
32: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n');
34: cout << "\nHere the values of q1, in \"FIFO\" order:\n";
35: //This is the proper way to access the elements of a queue:
36: while(!q1.empty())
37: {
38: cout << "Popping: ";
39: cout << q1.front() << "\n";
40: q1.pop();
41: }
42: cout << "Press Enter to continue ... "; cin.ignore(80, '\n');
44: cout << "\nHere the values of q2, in \"FIFO\" order:\n";
45: while(!q2.empty())
46: {
47: cout << "Popping: ";
48: cout << q2.front() << "\n";
49: q2.pop();
50: }
51: cout << "Press Enter to continue ... "; cin.ignore(80, '\n');
52: }