cpppreference에서 std::find_if 구현을 보면 다음과 같다.
template<class InputIt, class UnaryPredicate>
constexpr InputIt find_if(InputIt first, InputIt last, UnaryPredicate p)
{
for (; first != last; ++first) {
if (p(*first)) {
return first;
}
}
return last;
}
3번째 인수 p로 람다나 함수객체를 받고 있다. iter first로 순회를 하다가 p에 어떤 값을 넣었을 때 참이면 iter first를 반환하고, 한번도 참이 나오지 않으면 iter last를 반환한다.