>백엔드 개발 >C++ >C 14 투명 비교기는 연관 컨테이너 조회를 어떻게 변경합니까?

C 14 투명 비교기는 연관 컨테이너 조회를 어떻게 변경합니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-25 19:40:17578검색

How Do C  14 Transparent Comparators Change Associative Container Lookups?

투명 비교자를 사용하여 C 14의 연관 컨테이너 변경

C 14에서는 연관 컨테이너에 상당한 변화를 도입하여 "투명 비교자를 허용합니다. " 이 변경에서는 Compare::is_transparent 유형이 존재하지 않는 한 find, count, lower_bound, upper_bound 및 equal_range 멤버 함수 템플릿이 오버로드 해결에 참여하지 않아야 합니다.

투명 비교기의 목적

투명 비교기를 사용하면 키 유형과 다른 유형을 사용하여 연관 컨테이너의 요소를 비교할 수 있습니다. 이는 연관 컨테이너의 기능을 확장하여 더욱 유연하고 효율적인 조회를 가능하게 합니다.

이점 및 변경 사항

이 변경 사항은 이기종 조회 시나리오에 도움이 되므로 서로 다른 항목을 직접 비교할 수 있습니다. 컨테이너 내의 데이터 유형. 그러나 기본적으로 표준 컨테이너의 동작을 근본적으로 변경하지는 않습니다. 투명한 비교기(예: std::less<>)를 명시적으로 사용하지 않으면 컨테이너는 이전과 같이 계속 작동합니다.

기존 코드에 미치는 영향

이제 std::set의 기본 비교자는 Key = std::less를 암시적으로 지정합니다. 따라서 기본 비교기를 사용하는 기존 코드에는 변경 사항이 발생하지 않습니다. 이종 조회를 선택하려면 투명 비교기 유형(예: std::set>)을 명시적으로 지정해야 합니다.

요약하자면 C 14의 투명 비교기는 향상된 기능을 제공합니다. 연관 컨테이너의 경우 더욱 다양한 데이터 비교가 가능합니다. 그러나 투명 비교기는 기본적으로 비활성화되어 있으며 필요한 경우 기존 코드에서 안전하게 채택할 수 있다는 점에 유의하는 것이 중요합니다.

위 내용은 C 14 투명 비교기는 연관 컨테이너 조회를 어떻게 변경합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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