[ C++ 20 ] Three-Way Comparison

Minsu._.Lighting·2024년 2월 26일
0

📔 [ Modern C++ / C# ]

목록 보기
5/8

💡 Three-Way Comparison?

  • 3방향 비교 연산자
    - < , <= , > , >= , == , != 를 한번에 판단 가능
    - 생긴 모양이 우주선과 닮아서 우주선 연산자, spaceship operator 라고도 불린다

  • 주어진 표현식의 결과가 같은지, 보다 작은지, 큰지 세 가지 결과 중 하나를 반환해야 하기에 bool로 표현이 불가능 하다
    - 정수 타입 : strong_ordering
    - 실수 타입 : partial_ordering
    - 사용자 정의 타입 : weak_ordering

  • 기본 타입 보다는 사용자 정의 타입에서 효과를 볼 수 있다
    - 무거운 기존 비교 연산자를 두번 호출할 필요 없이 3방향 비교 연산자를 통해 한번 호출로 결과를 낼 수 있기 때문


📌 strong_ordering

  • strong_ordering::less : 첫 번째 피연산자가 두 번째 피연산자보다 작다.

  • strong_ordering::greater : 첫 번째 피연산자가 두 번째 피연산자보다 크다.

  • strong_ordering::equal : 두 피연산자가 같다.

📌 partial_ordering

  • strong_ordering::less : 첫 번째 피연산자가 두 번째 피연산자보다 작다.

  • strong_ordering::greater : 첫 번째 피연산자가 두 번째 피연산자보다 크다.

📌 weak_ordering

  • strong_ordering::less : 첫 번째 피연산자가 두 번째 피연산자보다 작다.

  • strong_ordering::greater : 첫 번째 피연산자가 두 번째 피연산자보다 크다.

  • strong_ordering::equivalent : 두 피연산자가 같다.

profile
오코완~😤😤

0개의 댓글

관련 채용 정보