• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

CompareTo 관련 질문

23.09.14 10:02 작성 조회수 228

0

우선순위 큐 내용 중 작은 순서대로 출력하는 내용입니다.

강의에서는

return Id > other.Id ? 1 : -1; 요렇게 된 상태에서

컴파일했을 때 작은 순서대로 나왔는데

 

막상 제가 해보니 큰 숫자대로 나왔습니다.

 

public int CompareTo(Knight other)

{

if (Id == other.Id)

return 0;

return Id > other.Id ? -1 : 1;

}

그래서 이렇게 하거나

아니면 return Id < other.Id ? 1 : -1;

이렇게 반대로 해야 작은 숫자부터

출력이되는데

 

왜 이런 차이가 발생했는지 알고싶습니다

 

 

 

답변 1

답변을 작성해보세요.

0

내부적으로 정렬할 때 CompareTo를 호출하고 int 부호를 보고 정렬을 할텐데,
그에 따라 방향을 맞춰주시면 됩니다.
고해성사를 하자면 저도 늘 +1인지 -1인지
헷갈려서 둘 중 하나로 예상한 결과가 아니면 바꾼답니다.
왜 강의랑 다른지 여부는 전체 코드를 봐야 알 수 있을 것 같네요.