> 백엔드 개발 > C++ > 투명 비교기는 C 연관 컨테이너에서 이기종 조회를 어떻게 활성화합니까?

투명 비교기는 C 연관 컨테이너에서 이기종 조회를 어떻게 활성화합니까?

DDD
풀어 주다: 2024-12-23 02:55:13
원래의
154명이 탐색했습니다.

How Do Transparent Comparators Enable Heterogeneous Lookup in C   Associative Containers?

C 연관 컨테이너용 투명 비교기

투명 비교기의 개념 이해

C에서 14일부터 연관 컨테이너에는 "투명"이라는 새로운 개념이 도입되었습니다. 비교자." 표준에 따르면 멤버 함수 템플릿 find, count, lower_bound, upper_bound 및equal_range는 Compare::is_transparent 유형이 존재하는 경우에만 오버로드 해결에 참여합니다.

투명 비교기는 중첩된 is_transparent를 정의하는 유형입니다. 유형. 이 유형은 이종 조회를 위해 비교기가 투명해야 한다는 것을 연관 컨테이너에 신호로 보냅니다. 결과적으로, 컨테이너는 이제 컨테이너의 키 유형과 해당 키 유형과 비교할 수 있는 다른 유형 간의 비교를 수행할 수 있습니다.

투명 비교기의 이점

투명 비교기 연관 컨테이너의 이질적인 조회 문제를 해결합니다. 전통적으로 컨테이너는 컨테이너의 키 유형과 동일한 유형의 키로만 검색할 수 있었습니다. 투명 비교기를 사용하면 키 유형과 비교할 수 있지만 반드시 동일한 유형일 필요는 없는 값으로 컨테이너를 검색할 수 있습니다.

투명 비교기 구현

C 14는 다음을 제공합니다. less라는 라이브러리 템플릿은 투명 비교기를 정의하는 데 사용할 수 있습니다. less 템플릿에는 void를 전문화하고 모든 유형을 비교할 수 있는 기본 구현이 있습니다. Cmp가 투명한 비교자인 std::less를 지정하면 연관 컨테이너가 이기종 조회를 활성화할 수 있습니다.

표준 컨테이너에 미치는 영향

소개 투명 비교기의 경우 투명 비교기가 사용되는 경우에만 연관 컨테이너의 동작이 변경됩니다. 기본적으로 컨테이너는 원래 동작을 유지합니다. std::less와 같은 투명한 비교기를 사용할 때 컨테이너는 이기종 조회를 수행하는 기능을 얻습니다.

제공된 예에서 std::set std::set> 그렇지 않습니다.

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

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