C 14의 투명 비교기
C 14에서는 멤버 함수 템플릿이 find, count, lower_bound, upper_bound 및 equal_range는 이제 오버로드에 참여하기 위해 투명 비교기가 필요합니다.
투명 비교기의 목적
투명 비교기는 연관 컨테이너에서 이질적인 조회 문제를 해결하는 것을 목표로 합니다. C 14 이전에는 연관 컨테이너가 컨테이너의 키와 정확히 동일한 유형의 키를 사용하여 검색을 수행할 수 있었습니다. 그러나 많은 시나리오에서는 컨테이너의 키 유형으로 변환 가능한 키를 사용하여 검색을 허용하는 것이 바람직합니다.
투명 비교기의 예
다음 예는 설명합니다. 투명한 비교기:
template <> struct less<> { template <class T, class U> auto operator()(T&& t, U&& u) const -> decltype(std::forward<T>(t) < std::forward<U>(u)); typedef *unspecified* is_transparent; };
이 비교기는 모든 유형을 허용하므로 이종 유형과 함께 사용할 수 있습니다. 인수 유형을 지정하고 이를 비교 연산자에 전달합니다.
표준 컨테이너에 미치는 영향
기본적으로 표준 컨테이너는 투명 비교자를 사용하지 않습니다. 그러나 명시적으로 std::less<> 또는 연관 컨테이너를 인스턴스화할 때 다른 투명 비교기를 사용하면 새로운 기능을 활성화할 수 있습니다.
문제 해결
투명 비교기를 사용하면 연관 컨테이너가 키를 사용하여 검색을 수행할 수 있습니다. 컨테이너의 키 유형으로 변환할 수 있습니다. 이는 특히 이종 조회가 필요한 시나리오에서 연관 컨테이너의 유연성과 유용성을 크게 확장합니다.
결론
C 14에 투명 비교기를 도입하면 강력한 연관 컨테이너에서 이질적인 조회를 위한 메커니즘입니다. 개발자는 투명한 비교기를 활용하여 비교기가 제공하는 유연성과 편의성을 활용할 수 있습니다.
위 내용은 투명 비교기는 C 14 연관 컨테이너에서 이종 조회를 어떻게 향상합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!