Converting Between Iterators and Indexes in a Vector : vector iterator « vector « C++ Tutorial






#include <algorithm>
#include <string>
#include <vector>
#include <iostream>

using namespace std;

template <class T>
void print(T& c){
   for( typename T::iterator i = c.begin(); i != c.end(); i++ ){
      std::cout << *i << endl;
   }
}

int main( )
{
   const char* name_array[] = { "John", "Harry", "Mark", "Abe" };
   const int age_array[] = { 89, 34, 12, 20 };
   const int people = sizeof( age_array ) / sizeof( age_array[0] );

   // make vectors with names and ages
   vector<string> names( name_array, name_array+people );
   vector<int> ages( age_array, age_array+people );

   // find the youngest age
   vector<int>::iterator age_itr = min_element( ages.begin(), ages.end() );

   // convert from iterator to index
   cout << names[age_itr-ages.begin()]
      << ", the youngest person, is " << *age_itr << " years old\n";

   // convert from index to iterator
   print( names);
   names.erase( names.begin()+1 ); // erase the second element
   print( names);
}








16.19.vector iterator
16.19.1.Display contents of vector through an iterator
16.19.2.Use const_iterator to loop through the vector
16.19.3.Change contents of vector through an iterator
16.19.4.iterators for vector
16.19.5.Declare an iterator to a vector
16.19.6.Obtain an iterator to the start of vector
16.19.7.Cycle through v in the forward direction using an iterator.
16.19.8.Cycle through v in the reverse direction using a reverse_iterator.
16.19.9.See if iterator is still in the same spot of memory
16.19.10.Loop through all elements in a vector in reverse order by using rbegn, rend
16.19.11.Reverse iterators
16.19.12.Const iterators
16.19.13.Converting Between Iterators and Indexes in a Vector