반응형
C++ string의 compare을 쓸 때
string a = "Apple", b = "Banana";
int result = a.compare(b);
if (result < 0) cout << "a < b\n";
else if (result > 0) cout << "a > b\n";
else cout << "a == b\n";
- 첫 문자 'A'(65) vs 'B'(66) 비교
- 계산: 65 - 66 = -1
- → 음수 → "Apple"이 "Banana"보다 사전순 앞
반대로:
b.compare(a); // "Banana" vs "Apple"
66 - 65 = +1 → 양수 → "Banana"가 "Apple"보다 뒤
위와 같은 원리로 compare이 돌아가는데 이걸 정리하면
a < b 의 반환값에 따라
음수면 a가 더 앞에 와야하고
0이면 서로 같고
양수면 b가 더 앞에 와야한다.
우리가 직접 객체를 만들어 정렬의 기준을 만들때 이 원리를 알고 사용하면 헷갈리지 않고 만들 수 있다.
반응형
'프로그래밍 언어' 카테고리의 다른 글
| 클로저 (Closure) (1) | 2025.11.03 |
|---|---|
| 로케일(Locale)이란? (0) | 2025.10.01 |
| 타입 승격 (Type Promotion) (0) | 2025.09.21 |
| 버퍼링 (Buffering) (0) | 2025.09.19 |
| 스트림 (Stream) (0) | 2025.09.19 |
댓글