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