연산자를 정의하는 방법< 엄격한 약한 순서 지정을 위한 n-튜플
소개
엄격한 약한 순서 지정은 두 개체 간의 관계를 정의하는 수학적 개념입니다. 이는 객체 x와 y가 동일하면 f(x, y)와 f(y, x)가 모두 false임을 지정합니다. a가 b보다 작으면 f(a, b)는 참이고 f(b, a)는 거짓입니다.
n-튜플에 대한 정의
n-튜플의 경우 연산자< 다음 조건에 따라 엄격한 약한 순서를 충족하도록 정의할 수 있습니다.
구현
위 정의는 다음 단계를 사용하여 C에서 구현할 수 있습니다.
예
3-튜플의 경우 연산자< 다음과 같이 정의할 수 있습니다.
struct Triple { int x; int y; int z; bool operator<(const Triple& other) const { return (x < other.x) || (y < other.y) || (z < other.z); } };
이 정의를 사용하면 두 개의 트리플이 x, y 및 z에 대해 동일한 값을 갖는 경우 동일합니다. 트리플의 구성 요소 중 하나라도 다른 트리플의 구성 요소보다 작으면 트리플은 다른 트리플보다 작은 것으로 간주됩니다.
std::tuple
또는 std:: C 표준 라이브러리에서 제공하는 튜플 클래스는 이미 튜플에 대한 엄격한 약한 순서를 구현합니다. 이를 활용하려면 튜플에 포함된 개체를 복사하지 않고 튜플을 사용할 수 있습니다.
struct S { int a; int b; }; bool operator<(const S& lhs, const S& rhs) { return std::tie(lhs.a, lhs.b) < std::tie(rhs.a, rhs.b); }
위 내용은 엄격한 약한 순서를 구현하는 방법`의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!