둘 다 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; });
'C++ > 기타' 카테고리의 다른 글
이니셜라이저 리스트 직접 초기화, 복제 리스트 초기화 (0) | 2023.03.08 |
---|---|
[algorithm] sort, stable_sort (0) | 2022.08.03 |
[algorithm] 순열과 조합 (0) | 2022.07.31 |
[algorithm] 교집합, 합집합, 차집합 (0) | 2022.07.28 |
map, set (0) | 2022.07.27 |