Mega Code Archive

 
Categories / C++ Tutorial / Vector
 

Reverse iterators

#include <vector>  #include <iostream>  using namespace std;  vector<double> makevector(int size){   vector<double> result;   for (int i=1; i<=size; i++) {      result.push_back(double(i));    }    return result;  }  void print(const vector<double>& l)  {    cout << "Size of vector is: " << l.size() << endl;    vector<double>::const_iterator i;    for (i=l.begin(); i!=l.end(); i++)    {      cout << (*i) << " ";    }    cout << endl;  }  int main()  {    vector<double> vector1=makevector(5);    vector<double>::iterator bi;    // Create bidirectional iterator    vector<double>::reverse_iterator ri;    // Traverse reverse forward    cout << "Traverse reverse forward" << endl;    ri=vector1.rbegin();          // Set iterator    while (ri!=vector1.rend()) cout << (*ri++) << " ";    cout << endl << endl;    // Traverse reverse backward    cout << "Traverse reverse backward" << endl;    ri=(vector1.rend());    do    {      cout << (*--ri) << " ";    }    while (ri!=vector1.rbegin());    cout << endl << endl;    // Traverse reverse random    cout << "Traverse reverse random" << endl;    cout << *ri << " ";               // First element    cout << *(ri+=3) << " ";        // 1+3 is 4th element    cout << *(ri-=1) << " ";        // 4-1 is third element    cout << ri[-1] << " ";          // 3-1 is second element    cout << ri[1] << endl << endl;  // 3+1 is fourth element  }