1: //stack02.cpp
3: #include <iostream>
4: #include <stack>
5: #include <deque>
6: #include <vector>
7: using namespace std;
9: int main()
10: {
11: cout << "\nThis program illustrates the creation of a stack using "
12: "values from a deque\n(when the underlying container is the "
13: "default one, namely a deque), and from\na vector, when the "
14: "underlying container is a vector.";
15: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n');
17: int a1[] = {1, 2, 3, 4};
18: deque<int> d(a1, a1+4);
19: stack<int> s1(d);
20: cout << "\nThe stack s1 is created from a deque of 4 values.";
21: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n');
23: cout << "\nHere are the values of s1, in \"LIFO\" order:\n";
24: //This is the proper way to access the elements of a stack:
25: while(!s1.empty())
26: {
27: cout << "Popping: ";
28: cout << s1.top() << "\n";
29: s1.pop();
30: }
31: cout << "Press Enter to continue ... "; cin.ignore(80, '\n');
33: int a2[] = {6, 9, 8, 10, 5, 7};
34: vector<int> v(a2, a2+6);
35: stack<int, vector<int>> s2(v);
36: cout << "\nThe stack s2 is created from a vector of 6 values.";
37: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n');
39: cout << "\nHere are the values of s2, in \"LIFO\" order:\n";
40: while(!s2.empty())
41: {
42: cout << "Popping: ";
43: cout << s2.top() << "\n";
44: s2.pop();
45: }
46: cout << "Press Enter to continue ... "; cin.ignore(80, '\n');
47: }