suu3
공부한 내용을 기록합니다.
suu3
  • 분류 전체보기
    • 에러 처리

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

태그

  • Do it! 타입스크립트 프로그래밍
  • spread 문법
  • inline-grid
  • Python
  • scroll-timeline
  • rest 문법
  • REACT
  • CSS
  • JavaScript
  • numble

최근 글

티스토리

hELLO · Designed By 정상우.
suu3

공부한 내용을 기록합니다.

에러 처리

[C++] Invalid Comparator

2022. 1. 11. 01:06
728x90

 

오랜만에 C++ 를 쓰면서 우선순위 큐에 쓸 compare 구조체를 작성하는데

이렇게 하는거였나? 하면서 짰더니 정말 터무니없는 코드를 짜고 말았다. 🤔

 

Clion에서 실행하면 invalid comparator 에러가 뜨고 온라인 디버거로 실행하면 제대로 출력되니 답답한 상황이었는데

결론부터 말하자면 이렇다.

 

(X)

struct cmp {
    bool operator()(order a, order b) {
        if(a.price > b.price)
            return true;
        return a.name > b.name;
    }
};

 

(O)

struct cmp {
    bool operator()(order a, order b) {
        if(a.price != b.price)
            return a.price > b.price;
        return a.name > b.name;
    }
};

return에서 true와 false가 갈라지도록 코드를 짜줘야한다.

아마 온라인 디버거는 strict weak ordering을 그냥 넘어가주는(?) 것 같다.

 

 

'에러 처리' 카테고리의 다른 글

(Window) VCS CommandNotFoundException  (0) 2022.03.25
(window)반응형 구현 시 인터넷 창의 즉각적인 변화를 확인하고 싶을 때  (0) 2022.03.08
[Django] django.db.migrations.exceptions.CircularDependencyError  (0) 2022.02.11
    '에러 처리' 카테고리의 다른 글
    • (Window) VCS CommandNotFoundException
    • (window)반응형 구현 시 인터넷 창의 즉각적인 변화를 확인하고 싶을 때
    • [Django] django.db.migrations.exceptions.CircularDependencyError
    suu3
    suu3

    티스토리툴바