std::vector foo; foo.push_back(0); foo.push_back(1); foo.push_back(2); foo.push_back(3); foo.push_back(4); struct is_even { bool operator()(int n) { return n % 2; } }; std::vector::iterator first_odd_number = std::find(foo.begin(), foo.begin() + 2, is_even);