Например так:
std::list<int> listInt;
for( int n = 0; n < 100;++n)
listInt.push_back(n);
std::list<int>::iterator pos = std::find_if( listInt.begin(), listInt.end(),
std::not1( std::bind2nd( std::modulus<int>(), 2)));
...
где std::not1( std::bind2nd( std::modulus<int>(), 2)) - функциональные адаптеры, с помощью которых мы находим первый четный элемент списка...