The program that can be mentioned below illustrates you about how to use the max_element() function in the C++ language programming :
Code:
#include <vector>
#include <set>
#include <algorithm>
#include <iostream>
#include <ostream>
using namespace std;
class Cnt;
ostream& operator<<( ostream& osn, const Cnt& rs );
class Cnt
{
public:
Cnt( int p = 0 ) : m_nVl( p )
{
}
Cnt( const Cnt& rs ) : m_nVl( rs.m_nVl )
{
}
Cnt& operator=( const Cnt& rs )
{
m_nVl = rs.m_nVl;
return *this;
}
bool operator<( const Cnt& rs ) const
{
return ( m_nVl < rs.m_nVl );
}
friend ostream& operator<<( ostream& osn, const Cnt& rs );
private:
int m_nVl;
};
inline ostream& operator<<(ostream& osn, const Cnt& rs)
{
osn << "Cnt( " << rs.m_nVl << " )";
return osn;
}
bool mod_lesser ( int elm1, int elm2 )
{
if ( elm1 < 0 )
elm1 = - elm1;
if ( elm2 < 0 )
elm2 = - elm2;
return elm1 < elm2;
};
int main( )
{
Cnt d1 = 1, d2 = 2, d3 = -3;
set<Cnt> t1;
set<Cnt>::iterator t1_Itr, t1_R1_Itr, t1_R2_Itr;
t1.insert ( d1 );
t1.insert ( d2 );
t1.insert ( d3 );
cout << "t1 = (";
for ( t1_Itr = t1.begin( ); t1_Itr != --t1.end( ); t1_Itr++ )
cout << " " << *t1_Itr << ",";
t1_Itr = --t1.end( );
cout << " " << *t1_Itr << " )." << endl;
t1_R1_Itr = max_element ( t1.begin ( ) , t1.end ( ) );
cout << "The largest element in t1 is: " << *t1_R1_Itr << endl;
cout << endl;
vector <int> v1;
vector <int>::iterator v1_Iter, v1_R1_Iter, v1_R2_Iter;
int i;
for ( i = 0 ; i <= 3 ; i++ )
{
v1.push_back( i );
}
int ii;
for ( ii = 1 ; ii <= 4 ; ii++ )
{
v1.push_back( - 2 * ii );
}
cout << "Vector v1 is ( " ;
for ( v1_Iter = v1.begin( ) ; v1_Iter != v1.end( ) ; v1_Iter++ )
cout << *v1_Iter << " ";
cout << ")." << endl;
v1_R1_Iter = max_element ( v1.begin ( ) , v1.end ( ) );
v1_R2_Iter = max_element ( v1.begin ( ) , v1.end ( ), mod_lesser);
cout << "The largest element in v1 is: " << *v1_R1_Iter << endl;
cout << "The largest element in v1 under the mod_lesser"
<< "\n binary predicate is: " << *v1_R2_Iter << endl;
}
Output
Code:
t1 = ( Cnt( -3 ), Cnt( 1 ), Cnt( 2 ) ).
The largest element in t1 is: Cnt( 2 )
Vector v1 is ( 0 1 2 3 -2 -4 -6 -8 ).
The largest element in v1 is: 3
The largest element in v1 under the mod_lesser
binary predicate is: -8
Bookmarks