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

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

Susan Sarandon
Susan Sarandon원래의
2024-12-31 12:23:16893검색

How Do Transparent Comparators Enhance Lookup in C  14 Associative Containers?

투명 비교기: 연관 컨테이너의 향상된 조회 기능

C 14에서는 연관 컨테이너에 중요한 변화가 도입되었습니다. [associative.reqmts]/13에 명시된 대로 멤버 함수 템플릿 find, count, lower_bound, upper_bound 및equal_range는 Compare::is_transparent 유형이 존재하는 경우에만 오버로드 해결에 참여합니다.

목적 투명 비교기

비교기를 "투명"하게 만드는 목적은 조회를 확장하는 것입니다. 연관 컨테이너의 기능. 비교기를 투명하게 함으로써 개발자는 키 유형 자체를 사용하도록 제한하는 대신 컨테이너의 키와 비교할 수 있는 유형을 활용할 수 있습니다. 이를 통해 더욱 유연하고 효율적인 조회 시나리오가 가능해집니다.

구현 및 사용

C 14에서는 투명한 비교기 생성을 용이하게 하는 std::less와 같은 라이브러리 템플릿을 도입합니다.

template <class T = void> struct less {
    // ...
    typedef *unspecified* is_transparent;
};

template <> struct less<void> {
    // ...
    typedef *unspecified* is_transparent;
};

이 예에서는 std::set> std::set>

연관 컨테이너에 미치는 영향

특히, 이 변경 사항은 기본적으로 표준 컨테이너의 기본 작동에 영향을 주지 않습니다. 키 유형을 기본 비교 기준으로 사용하여 항상 그랬던 것처럼 계속 작동합니다.

그러나 std::less<> 투명한 비교기 또는 기타 호환 가능한 대안을 통해 개발자는 연관 컨테이너에서 이종 조회의 향상된 기능을 잠금 해제할 수 있습니다. 이를 통해 컨테이너의 키 유형과 다를 수 있는 유형을 사용하여 비교를 수행할 수 있으므로 유연성과 다양성이 향상됩니다.

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

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