C++ STL iterator, operator< program example

 

Compiler: Visual C++ Express Edition 2005

Compiled on Platform: Windows XP Pro SP2

Header file: Standard

Additional project setting: Set project to be compiled as C++

Project -> your_project_name Properties -> Configuration Properties -> C/C++ -> Advanced -> Compiled As: Compiled as C++ Code (/TP)

Other info: none

To do:  Using the C++ iterator, operator< to test if the iterator object on the left side of the operator is less than the iterator object on the right side in C++ programming

To show: How to use the C++ iterator, operator< to test if the iterator object on the left side of the operator is less than the iterator object on the right side in C++ programming

 

// C++ STL iterator, operator<

#include <iterator>

#include <vector>

#include <iostream>

using namespace std;

 

int main(void)

{

int i;

// vector container

vector<int> vec;

// vector iterator

vector<int>::iterator veciter;

 

// push/insert data into vector

for(i = 10; i<= 17; ++i)

vec.push_back(i);

 

// print the data

cout<<"The initial vec vector is: ";

for(veciter = vec.begin(); veciter != vec.end(); veciter++)

cout<<*veciter<<" ";

cout<<endl;

 

// initializing reverse_iterators to the last element

vector<int>::reverse_iterator rvecpos1 = vec.rbegin(), rvecpos2 = vec.rbegin();

cout<<"The iterators rvecpos1 & rvecpos2 initially point to the first element in the reversed sequence: "<<*rvecpos1<<endl;

cout<<"\nOperation: rvecpos1 <rvecpos2> rvecpos2"<<endl;

 

if(rvecpos1 > rvecpos2)

cout<<"The iterator rvecpos1 is greater than the iterator rvecpos2."<<endl;

else

cout<<"The iterator rvecpos1 is not greater than the iterator rvecpos2."<<endl;

cout<<"\nOperation: rvecpos2++;"<<endl;

rvecpos2++;

cout<<"The iterator rvecpos2 now points to the second element in the reversed sequence: "<<*rvecpos2<<endl;

cout<<"\nOperation: rvecpos1 <rvecpos2> rvecpos2"<<endl;

if(rvecpos1 > rvecpos2)

cout<<"The iterator rvecpos1 is greater than the iterator rvecpos2."<<endl;

else

cout<<"The iterator rvecpos1 is not greater than the iterator rvecpos2."<<endl;

return 0;

}

 

Output examples:

 

The initial vec vector is: 10 11 12 13 14 15 16 17

The iterators rvecpos1 & rvecpos2 initially point to the first element in the reversed sequence: 17

Operation: rvecpos1 <rvecpos2> rvecpos2

The iterator rvecpos1 is not greater than the iterator rvecpos2.

Operation: rvecpos2++;

The iterator rvecpos2 now points to the second element in the reversed sequence: 16

Operation: rvecpos1 <rvecpos2> rvecpos2

The iterator rvecpos1 is not greater than the iterator rvecpos2.

Press any key to continue . . .

 

 

C and C++ Programming Resources | C & C++ Code Example Index