Bidirectional random access iterators : vector access « vector « C++ Tutorial






#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 

}








16.25.vector access
16.25.1.Random access of a vector
16.25.2.the use of the subscripting operator
16.25.3.Checked and Unchecked Access of a Vector
16.25.4.access field for vector
16.25.5.Bidirectional random access iterators