기본적으로 C++은 원소의 대소 비교에 < 연산자를 사용합니다. 사용자 클래스에 연산자 오버로딩으로 <를 정의했으면 이때는 비교 함수를 정의하지 않아도 됩니다. 만약 <를 정의하지 않았거나 이미 정의되었지만 그 정의를 쓰고 싶지 않은 경우 새로 비교 함수를 정의해서 템플릿에 넘겨줄 수 있습니다. 중요한 건 이게 비교 "함수"이기 때문에 () 연산자로 호출할 수 있는 형태가 와야 합니다. 그래서 클래스에 원소 두 개를 받아 비교 결과를 내놓는 () 연산자를 정의해야 합니다.
sjnov11 5년 전
안녕하세요,
Associatvie container 에서 comparator 를 템플릿의 argument로 넘겨줄 수 있는데
궁금합니다.
답변주시면 대단히 감사하겠습니다.