unordered_multimap 예제

예를 들어 char & int의 멀티맵을 키 값 쌍으로 하고 다음 값으로 초기화되어 다음 예제에서는 std:unordered_multimap::insert() 함수의 사용을 보여 주며 이니셜이 표시됩니다. 다중 맵 컨테이너는 키로 함께 관련된 개체를 그룹화하는 데 유용합니다. 예: 이 컨테이너의 반복 순서는 안정적이지 않아도 됩니다(예를 들어 std:equal은 두 std::unordered_multimaps를 비교하는 데 사용할 수 없음) 키가 동등한 요소 그룹(key_eq와 같음)을 비교한다는 점을 제외하면 비교자)는 반복 순서로 연속 하위 범위를 형성하며 equal_range()로도 액세스할 수 있습니다. 템플릿 <클래스 키, 클래스 T, 클래스 해시 = std::hash, 클래스 코드 = std::equal_to> unordered_multimap = std::unordered_multimap<키, T, 해시, 프레드, std::pmr::polymorphic_allocator<std::pair> 정렬된 연관 컨테이너는 노드 기반 할당 체계를 사용합니다. 모든 요소에 대한 이터레이터는 안정적이며 C++17에서는 이터레이터를 무효화하지 않고 요소를 한 맵에서 다른 맵으로 이동할 수도 있습니다. 노드 기반 메모리 할당은 큰 할당을 할 필요가 없으므로 정렬된 컨테이너 함수 타이밍을 보다 일관되게 유지합니다. 이제 정렬되지 않은 멀티맵에 적용할 수 있는 일부 함수를 볼 수 있습니다. 따라서 키가 있는지 여부를 확인하기 위해 지정된 범위의 요소 수를 계산합니다. 그것은 std::distance() 알고리즘 즉 위치 – 요소를 삽입 하는 위치에 대 한 힌트를 사용 하 여 수행할 수 있습니다. 집합 컨테이너는 키 전용 항목을 지원합니다. 맵과 마찬가지로 set은 고유한 키만 지원하지만 이미 존재하는 키에 쓰는 것은 낭비되는 작업입니다.

세트는 `구독주제` 또는 `저희 레스토랑이 판매하는 음식의 종류`와 같은 독특한 것들의 컬렉션을 저장하는 데 유용합니다. 키로 값을 저장해야 하는 경우 대신 맵이 필요합니다. 당신은 주문 연관 컨테이너를 사용해야합니다 : 스왑 작업 수행 순서가없는 멀티 맵 :: 1 스왑 후 : (폰팅 , 30) (콜리 , 32) (자야 수리야 , 28) (사친 , 49) 주문되지 않은 멀티맵 :: 2 스왑 후 : (폰팅 , 30) (Kohli , 32) (자야수리야 , 28) (자야수리야 , 28) (자야수리야 , 28) 클래스 키, 클래스 T, 클래스 해시 = std::해시, 클래스 KeyEqual = std::equal_to, 클래스 할당자 < std::pair > 1.48 이전의 부스트 버전에서는 이전 C+0x 초안의 다양한 쌍 생성기를 에뮬레이트했습니다. 역방향 호환성의 경우 매크로 BOOST_UNORDERED_DEPRECATED_PAIR_CONSTRUCT를 정의하여 이 옵션을 사용할 수 있습니다. 내부 표현: unordered_multimap의 내부 구현은 unordered_map의 구현과 동일하지만 중복 키의 경우 각 키-값 쌍으로 다른 개수 값이 유지됩니다.