Source of vector05.cpp


  1: //vector05.cpp

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


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

 18:     vector<int> v1(8);

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

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

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