> 백엔드 개발 > C++ > 엄격한 약한 순서를 정의하는 방법 `

엄격한 약한 순서를 정의하는 방법 `

DDD
풀어 주다: 2025-01-03 07:56:38
원래의
636명이 탐색했습니다.

How to Define a Strict Weak Ordering `

연산자 정의 < n-튜플에 대한 엄격한 약한 순서 지정

질문:

< 엄격한 약한 순서 지정 개념을 준수하는 n-튜플(예: 3-튜플)에 대한 연산자는 무엇입니까?

답변:

엄격한 약한 순서 이해

엄격한 약한 순서 지정은 다음을 정의하는 수학적 관계입니다. 두 객체 사이의 구체적인 비교:

  • 동등: 두 객체 모두 동일한 것으로 간주됩니다(즉, a < b 및 b < a는 모두 거짓입니다).
  • 보다 작음: 한 개체가 다른 개체보다 "작은" 것으로 간주됩니다(즉, a < b는 true이고 b < a는 false입니다.

< 연산자

< n-튜플에 대한 연산자를 사용하려면 한 튜플이 다른 튜플과 같거나 작은 것으로 간주되는 시기를 결정하는 조건을 설정해야 합니다. 이는 튜플의 특정 데이터 구조와 의미에 따라 달라집니다.

std::tuple의 예

C 표준 라이브러리의 std::tuple 클래스는 올바른 < 엄격한 약한 순서를 위한 연산자입니다. 이 클래스를 사용할 수 없는 경우 직접 < 연산자:

struct S {
    ThingA a;
    ThingB b;
};

bool operator<(S const& lhs, S const& rhs) {
    return std::tie(lhs.a, lhs.b) < std::tie(rhs.a, rhs.b);
}
로그인 후 복사

이것은 ThingA와 ThingB가 이미 엄격한 약한 순서를 구현했다고 가정합니다.

유사한 접근 방식을 사용하여 동일성을 구현할 수도 있습니다.

bool operator==(S const& lhs, S const& rhs) {
    return std::tie(lhs.a, lhs.b) == std::tie(rhs.a, rhs.b);
}
로그인 후 복사

위 내용은 엄격한 약한 순서를 정의하는 방법 `의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿