Mega Code Archive

 
Categories / C++ Tutorial / Vector
 

Bidirectional random access 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;    // Traverse random    cout << "Traverse random" << endl;    bi=vector1.begin();    cout << *bi << " ";                // First element    cout << *(bi+=3) << " ";     // 1+3 is 4th element    cout << *(bi-=1) << " ";     // 4-1 is third element    cout << bi[-1] << " ";             // 3-1 is second element    cout << bi[1] << endl << endl;   // 3+1 is fourth element    // Create bidirectional iterator    vector<double>::reverse_iterator ri;      // 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  }