2개의 요소만 포함하는 경량 구조를 구성할 때 많은 개발자는 내장된 지원으로 인해 std::pair를 선택합니다. Operator< 엄격하게 약한 주문을 위해. 그러나 이 접근 방식은 혼란을 초래할 수 있는 도움이 되지 않는 변수 이름 지정 형태의 단점을 나타냅니다. 멤버가 두 명 이상이면 쌍을 중첩하는 것이 바람직하지 않습니다.
대체 솔루션은 Boost 또는 C 11의 튜플을 사용하는 것입니다. 튜플은 std::pair에 비해 향상된 구조와 명확성을 제공하지만 여전히 활용하기 번거로울 수 있습니다. . 이 문제를 완화하기 위해 개발자는 대신 연결 기반 작업 사용을 고려할 수 있습니다.
bool operator<(MyStruct const& lhs, MyStruct const& rhs){ return std::tie(lhs.one_member, lhs.another, lhs.yet_more) < std::tie(rhs.one_member, rhs.another, rhs.yet_more); }
이 경우 연결은 전달된 인수에서 참조 튜플을 생성합니다. 이 접근 방식의 이점은 다음과 같습니다.
개인적으로 상속하는 동안 튜플에서 대안으로 제안될 수 있으며, 이는 여러 가지를 보여줍니다. 단점:
전체적으로 튜플과 타이를 통한 비교 연산자 구현 단순화되고 올바른 연산자 구현을 위한 실행 가능한 옵션입니다. 그러나 프로파일링을 통해 비교 작업이 애플리케이션 실행에 병목 현상을 일으키는 것으로 밝혀지면 성능에 미치는 영향을 고려하고 해결해야 합니다.
위 내용은 튜플과 `std::tie`가 C에서 비교 연산자 구현을 어떻게 단순화할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!