Source of deque05.cpp


  1: //deque05.cpp

  3: #include <iostream>
  4: #include <string>
  5: #include <deque>
  6: using namespace std;


  9: int main()
 10: {
 11:     cout << "\nThis program illustrates typical uses of the "
 12:         "default deque class iterator\n(which is a random "
 13:         "access iterator), and shows additional uses of member\n"
 14:         "functions begin() and end(), as well as the use of "
 15:         "operators =, +, -, ++,\n--, != and * with deque class "
 16:         "iterators.";
 17:     cout << "\nPress Enter to continue ... ";  cin.ignore(80, '\n');

 19:     deque<int> d1(8);

 21:     cout << "\nFirst we enter some integer squares into "
 22:         "a deque of size 8, and then display: \n";
 23:     //Create and initialize an iterator.
 24:     deque<int>::iterator p = d1.begin();
 25:     int i = 0;
 26:     while(p != d1.end())
 27:     {
 28:         *p = i*i; //Assign i*i to deque d via iterator p.
 29:         p++;      //Advance the iterator **after** using it.
 30:         i++;      //Increment the value to be squared.
 31:     }
 32:     p = d1.begin();
 33:     while(p != d1.end()) cout << *p++ << " "; //Note *p++ "idiom".
 34:     cout << "\nPress Enter to continue ... ";  cin.ignore(80, '\n');

 36:     cout << "\nNext we double the values in the deque and "
 37:         "re-display (backwards this time): \n";
 38:     p = d1.begin();
 39:     while(p != d1.end())
 40:     {
 41:         *p = *p * 2;
 42:         p++;
 43:     }
 44:     //This time, initialize the iterator to d1.end().
 45:     //And decrement the iterator **before** using it!
 46:     p = d1.end();
 47:     while(p != d1.begin()) cout << *--p << " "; //Note *--p "idiom".
 48:     cout << "\nPress Enter to continue ... ";  cin.ignore(80, '\n');

 50:     cout << "\nFinally, we display (using iterators) some "
 51:         "particular deque values:";
 52:     cout << "\nFirst component of the deque = " << *(d1.begin());
 53:     cout << "\nThird component of the deque = " << *(d1.begin()+2);
 54:     cout << "\nLast component of the deque  = " << *(d1.end()-1);
 55:     cout << "\nPress Enter to continue ... ";  cin.ignore(80, '\n');
 56: }