>백엔드 개발 >C++ >`를 정의하는 방법

`를 정의하는 방법

Patricia Arquette
Patricia Arquette원래의
2024-12-22 06:17:31886검색

How to Define the `

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

n-튜플이 엄격한 약한 순서 지정을 충족하려면 다음 기준을 충족해야 합니다.

  • 등가: 두 개의 튜플 x와 y는 다음과 같습니다. x < y도 y< x는 참입니다.
  • 비대칭: x < y, 그 다음 y < x는 참일 수 없습니다.
  • 전이성: x < y 및 y < z, x < z.

부스트 라이브러리는 '<' 연산자를 사용하여 사전 정의된 튜플 클래스를 제공합니다. 엄격한 약한 순서를 준수하여 특정 컨텍스트에 대해 자신만의 연산자를 정의할 수 있습니다.

다음은 '<' 연산자를 구현하는 방법입니다. 수동:

struct S
{
     ThingA   a;
     ThingB   b;
};

bool operator<(S const& lhs, S const& rhs)
{
    return std::make_tuple(lhs.a, lhs.b) < std::make_tuple(rhs.a, rhs.b);
}

이 예에서는 std::make_tuple 함수를 활용하여 S의 개별 요소를 복사하지 않고 튜플을 만듭니다. 그런 다음 일반 튜플 비교 연산자를 사용하여 튜플을 비교합니다.

연산자 '=='의 경우 유사한 접근 방식을 따를 수 있습니다.

bool operator==(S const& lhs, S const& rhs)
{
    return std::make_tuple(lhs.a, lhs.b) == std::make_tuple(rhs.a, rhs.b);
}

이러한 구현에서는 ThingA와 ThingB에는 자체 연산자 '<'가 있습니다. 엄격한 약한 순서 지정을 위해 정의된 연산자 '=='입니다.

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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.