C++/기타
[algorithm] find, find_if
에리카네스
2022. 8. 3. 03:17
둘 다 iterator가 존재하는 컨테이너에 사용할 수 있다. (vector, array...)
find는 원소를 비교할 때 operator==를 사용한다. 즉, operator==가 존재하지 않는 pair의 경우 컴파일 에러가 나온다.
이럴때는 find_if를 통해 찾으려는 값 대신 custom method를 넘겨줄 수 있다.
// t가 pair인 경우 컴파일 에러 발생
auto iter = find_if(v.begin(), v.end(), t);
auto iter = find_if(v.begin(), v.end(), [&t](const pair<int, int>& elem) { return elem.first == t; });