#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
}
|