Just some simple examples posted here as a means of easy lookup…
class MyValue
{
public:
MyValue::MyValue( int v ) : value( v ) {}
int value;
};
class MyValue_eq : public unary_function< MyValue, bool >
{
int value;
public:
explicit MyValue_eq( const int& val ) : value( val ) {}
bool operator() ( const MyValue& c ) const
{
return c.value == value;
}
};
vector< MyValue > mvals;
MyValue m1( 1 );
MyValue m2( 2 );
MyValue m3( 3 );
MyValue m4( 4 );
mvals.push_back( m1 );
mvals.push_back( m2 );
mvals.push_back( m3 );
mvals.push_back( m4 );
typedef vector< MyValue >::iterator mit;
mit p_mit = find_if( mvals.begin(),
mvals.end(),
MyValue_eq( 2 ) );
int x = (*p_mit).value;