Source of advance.cpp


  1: //advance.cpp

  3: #include <iostream>
  4: #include <vector>
  5: #include <list>
  6: #include <iterator>
  7: #include <algorithm>
  8: using namespace std;

 10: int main()
 11: {
 12:     cout << "\nThis program illustrates the use of the advance() "
 13:         "function\nto move an iterator a given number of positions.";
 14:     cout << "\nPress Enter to continue ... ";  cin.ignore(80, '\n');

 16:     int a[] = {2, 4, 6, 8, 10, 12, 14, 16, 18, 20};
 17:     list<int> intList(a, a+10);
 18:     cout << "\nHere are the values in a list of integers:\n";
 19:     copy(intList.begin(), intList.end(), ostream_iterator<int>(cout, " "));
 20:     cout << "\nPress Enter to continue ... ";  cin.ignore(80, '\n');

 22:     list<int>::iterator p = intList.begin();
 23:     advance(p, 7);
 24:     cout << "\nThe 8th value in the list is " << *p << ".";
 25:     cout << "\nPress Enter to continue ... ";  cin.ignore(80, '\n');

 27:     advance(p, -5);
 28:     cout << "\nThe 3rd value in the list is " << *p << ".";
 29:     cout << "\nPress Enter to continue ... ";  cin.ignore(80, '\n');

 31:     list<int>::reverse_iterator p_r = intList.rbegin();
 32:     advance(p_r, 5);
 33:     cout << "\nThe 6th value from the end of the list is " << *p_r << ".";
 34:     cout << "\nPress Enter to continue ... ";  cin.ignore(80, '\n');

 36:     int b[] = {1, 3, 5, 7, 9, 11, 13, 15, 17, 19};
 37:     vector<int> v(b, b+10);
 38:     cout << "\nHere are the values in a vector of integers:\n";
 39:     copy(v.begin(), v.end(), ostream_iterator<int>(cout, " "));
 40:     cout << "\nPress Enter to continue ... ";  cin.ignore(80, '\n');

 42:     vector<int>::iterator p_v = v.begin();
 43:     advance(p_v, 6);
 44:     cout << "\nThe 7th value in the vector is " << *p_v << ".";
 45:     cout << "\nPress Enter to continue ... ";  cin.ignore(80, '\n');
 46: }