> 백엔드 개발 > C++ > 모든 클래스가 std::map의 키 역할을 할 수 있나요?

모든 클래스가 std::map의 키 역할을 할 수 있나요?

Patricia Arquette
풀어 주다: 2024-11-26 08:05:11
원래의
248명이 탐색했습니다.

Can Any Class Serve as a Key for std::map?

std::map용 키: 요구사항 및 구현

다른 클래스의 객체 매핑을 위해 std::map을 사용할 때 클래스는 키로 사용하려고 하면 유효한 키에 대한 필수 요구 사항을 충족하지 못할 수 있습니다. std::map은 임의의 클래스가 키 역할을 할 수 있는지 또는 특정 요구 사항이 존재하는지에 대한 의문을 제기하는 순서 지정 메커니즘을 사용하여 콘텐츠를 구성합니다.

std::map의 키는 다음을 준수해야 합니다. 요구 사항:

  • 복사 가능성 및 할당 가능성: 주요 클래스는 복사 및 할당이 가능해야 합니다.

맵의 순서는 세 번째 템플릿 인수 또는 생성자 인수에 의해 제어되며 기본값은 std::less입니다. 기본적으로 std::less < 연산자. 그러나 자신만의 비교 연산자를 유연하게 정의할 수 있습니다.

struct CmpMyType
{
    bool operator()( MyType const&amp; lhs, MyType const&amp; rhs ) const
    {
        // Implementation of comparison logic
    }
};
로그인 후 복사

비교 연산자가 엄격한 순서를 정의하는지 확인하세요. CmpMyType()( a, b )가 true를 반환하는 경우 CmpMyType()( b, a )는 false를 반환해야 합니다. 둘 다 false를 반환하면 해당 요소는 동등한 것으로 간주되며 동일한 동등 클래스에 속합니다.

위 내용은 모든 클래스가 std::map의 키 역할을 할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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