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 |