sort는 stable함을 보장하지 않기에, 단순히 sort에 정렬기준을 커스텀해서 넣어서 이 문제를 풀 수 없지만..
comp를 구현하실때, vec1.first==vec2.first일때 true를 반환하도록 구현할경우, strict weak ordering을 만족하지 않아서 문제가 됩니다.
https://www.secmem.org/blog/20...에 "compare 함수의 잘못된 사용"으로 검색하시어 읽어보시면 도움이 될 것 같습니다.
이러한 상황에서는 조건문으로 분기할 필요 없이, 간단히 bool cmp(...){ return v1.first<v2.first; }처럼 구현하셔도 됩니다. 등호가 없어야합니다.
leehoogwan 2년 전
일단 stable_sort를 이용해서 맞긴 했는데,
처음에는 저렇게도 짰습니다.
근데 저렇게 하면 comp함수 부분에서 invalid comparator오류가 발생합니다.
이 오류는 ==이 true면 나머지는 false여야 한다? 이런 의미던데, 도통 이해가 안갑니다ㅜㅜ
이부분에 대해서 설명해주실 고수분 계신가요?..