-
카테고리
-
세부 분야
게임 프로그래밍
-
해결 여부
미해결
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;
이렇게 반대로 해야 작은 숫자부터
출력이되는데
왜 이런 차이가 발생했는지 알고싶습니다
답변을 작성해보세요.
0
Rookiss
지식공유자2023.09.14
내부적으로 정렬할 때 CompareTo를 호출하고 int 부호를 보고 정렬을 할텐데,
그에 따라 방향을 맞춰주시면 됩니다.
고해성사를 하자면 저도 늘 +1인지 -1인지
헷갈려서 둘 중 하나로 예상한 결과가 아니면 바꾼답니다.
왜 강의랑 다른지 여부는 전체 코드를 봐야 알 수 있을 것 같네요.
답변 1