백준에서 해당 문제를 푸는데 문자열을 그냥 정렬하는 문제였다.
근데 sort에서 자꾸 invalid comparator문제가 발생해서 알아보았다.
Sort 메서드에서 comparator로 들어오는 매개함수는 반드시 Strict Weak Ordering을 만족해야 한다. 이게 무슨말이냐면, A == B일 경우에는 A < B도 false이고 A > B도 false여야 한다는 말이다. |
위처럼 comparator를 작성해서 사용했는데, 이 코드에서는 str1 == str2인 경우에는 return false를 해주어야 한다.
정리 : compare 함수는 비교 대상이 같은 경우에는 return false를 해주어야 한다.
'코딩 > C++' 카테고리의 다른 글
[C++] Comparator 사용시 주의사항 (0) | 2021.08.17 |
---|---|
[C++] 2차원 배열 0, -1로 초기화하기 memset 메서드 사용 (0) | 2021.08.06 |
[C++] std::sort 오름차순 내림차순 정렬 (0) | 2021.07.28 |
[C++] 문자열을 공백까지 입력받는 방법 (feat. 그대로 출력하기) (0) | 2021.07.28 |
[C++] 벡터 사용 시, () 선언과 [] 선언의 차이 (0) | 2021.07.27 |