1: //deque12.cpp
3: #include <iostream>
4: #include <deque>
5: #include <string>
6: using namespace std;
8: int main()
9: {
10: cout << "\nThis program illustrates the use of member functions "
11: "clear(),\nerase(), pop_back() and pop_front() for deque "
12: "objects.";
13: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n');
15: int a[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
16: deque<int> d(a, a+10);
17: cout << "\nFor d we have ...";
18: cout << "\nSize = " << d.size();
19: cout << "\nContents: ";
20: for(deque<int>::size_type i=0; i<d.size(); i++)
21: cout << d.at(i) << " ";
22: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n');
24: cout << "\nFirst, we delete the third component of d using this "
25: "call to erase():\np = d.erase(d.begin()+2);"
26: "\nand then display the remaining values in d.";
27: deque<int>::iterator p = d.erase(d.begin()+2);
28: cout << "\nSize = " << d.size();
29: cout << "\nContents: ";
30: for(deque<int>::size_type i=0; i<d.size(); i++)
31: cout << d.at(i) << " ";
32: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n');
33: cout << "\nThe iterator returned by the above call to erase() "
34: "points to " << *p << ".\n";
35: cout << "Press Enter to continue ... "; cin.ignore(80, '\n');
37: cout << "\nNext, we delete the 3rd through 7th components of d using "
38: "this call to erase():\np = d.erase(d.begin()+2, d.begin()+7);"
39: "\nand then display the remaining values in d.";
40: p = d.erase(d.begin()+2, d.begin()+7);
41: cout << "\nSize = " << d.size();
42: cout << "\nContents: ";
43: for(deque<int>::size_type i=0; i<d.size(); i++)
44: cout << d.at(i) << " ";
45: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n');
46: cout << "\nThe iterator returned by the above call to erase() "
47: "points to " << *p << ".\n";
48: cout << "Press Enter to continue ... "; cin.ignore(80, '\n');
50: cout << "\nNow we remove a component from the end of d (using "
51: "d.pop_back()),\nand display again to confirm.";
52: d.pop_back();
53: cout << "\nSize = " << d.size();
54: cout << "\nContents: ";
55: for(deque<int>::size_type i=0; i<d.size(); i++)
56: cout << d.at(i) << " ";
57: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n');
59: cout << "\nThen we remove a component from the front of d (using "
60: "d.pop_front()),\nand display again to confirm.";
61: d.pop_front();
62: cout << "\nSize = " << d.size();
63: cout << "\nContents: ";
64: for(deque<int>::size_type i=0; i<d.size(); i++)
65: cout << d.at(i) << " ";
66: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n');
68: cout << "\nFinally, we clear d and display once again to confirm:";
69: d.clear();
70: cout << "\nSize = " << d.size();
71: cout << "\nContents: ";
72: for(deque<int>::size_type i=0; i<d.size(); i++)
73: cout << d.at(i) << " ";
74: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n');
75: }