#include "pch.h"
#include <iostream>
#include <vector>
#include <functional>
#include <algorithm>
#include <ctime>
using namespace std;
#if 0
template < typename Container>
void showContainer ( Container & con)
{
typename Container:: iterator it = con. begin ( ) ;
for ( ; it != con. end ( ) ; ++ it)
{
cout << * it << " " ;
}
cout << endl;
}
template < typename Iterator, typename Compare>
Iterator my_find_if ( Iterator first, Iterator last, Compare comp)
{
for ( ; first != last; ++ first)
{
if ( comp ( * first) )
{
return first;
}
}
return last;
}
template < typename Compare, typename T>
class _mybind 1st
{
public :
_mybind 1st ( Compare comp, T val)
: _comp ( comp) , _val ( val)
{ }
bool operator ( ) ( const T & second)
{
return _comp ( _val, second) ;
}
private :
Compare _comp;
T _val;
} ;
template < typename Compare, typename T>
_mybind 1st< Compare, T> mybind 1st ( Compare comp, const T & val)
{
return _mybind 1st< Compare, T> ( comp, val) ;
}
int main ( )
{
vector< int > vec;
srand ( time ( nullptr ) ) ;
for ( int i = 0 ; i < 20 ; ++ i)
{
vec. push_back ( rand ( ) % 100 + 1 ) ;
}
showContainer ( vec) ;
sort ( vec. begin ( ) , vec. end ( ) ) ;
showContainer ( vec) ;
sort ( vec. begin ( ) , vec. end ( ) , greater< int > ( ) ) ;
showContainer ( vec) ;
auto it1 = my_find_if ( vec. begin ( ) , vec. end ( ) ,
mybind 1st ( greater< int > ( ) , 70 ) ) ;
if ( it1 != vec. end ( ) )
{
vec. insert ( it1, 70 ) ;
}
showContainer ( vec) ;
return 0 ;
}
#endif