둘 다 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

+ Recent posts