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; });