>백엔드 개발 >C++ >내 사용자 정의 클래스를 C std::map의 키로 사용할 수 있습니까?

내 사용자 정의 클래스를 C std::map의 키로 사용할 수 있습니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-23 09:43:13409검색

Can My Custom Class Be Used as a Key in a C   std::map?

std::map

C 표준 템플릿 라이브러리의 기본 구성 요소인 std::map에서 임의 클래스를 키로 효율적으로 사용 키-값 쌍을 연결합니다. 사용자 정의 클래스를 키로 사용할 때 유효한 작동을 보장하려면 특정 기준을 충족해야 합니다.

키 클래스 요구 사항

클래스가 std에서 유효한 키 역할을 하려면 ::map은 다음 요구 사항을 충족해야 합니다.

  1. 복사 가능성 및 할당 가능성: 키는 복사 및 할당이 가능해야 하며 맵 내에서 효율적인 복제 및 수정이 가능해야 합니다.
  2. 순서: std::map 내 요소의 순서는 세 번째에 의해 결정됩니다. 템플릿 인수 또는 사용된 생성자 인수입니다. 기본적으로 이는 < 연산자. 그러나 대체 순서 기준을 지정하기 위해 사용자 정의 비교 연산자를 정의할 수 있습니다.

사용자 정의 비교 연산자 정의

기본 순서가 요구 사항을 충족하지 않는 경우 사용자 정의 비교 연산자를 기능 개체로 정의할 수 있습니다. 이 연산자는 엄격한 순서를 구현해야 합니다. 즉, 두 키 a와 b에 대해 다음 조건이 충족되어야 합니다.

  • CmpMyType()(a, b) == true는 CmpMyType()(b를 의미합니다. , a) == false
  • CmpMyType()(a, b) == false 및 CmpMyType()(b, a) == false는 ==를 의미합니다. b

이러한 요구 사항을 충족함으로써 사용자 정의 클래스를 std::map의 키로 원활하게 사용할 수 있으므로 관련 값의 효율적인 순서 지정 및 검색이 가능합니다.

위 내용은 내 사용자 정의 클래스를 C std::map의 키로 사용할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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