std::multimap
는 동일한 키를 가진 여러 항목을 허용하면서 정렬된 키-값 쌍의 목록을 포함하는 연관 컨테이너입니다. 정렬은 키에 적용되는 비교 함수
Compare
에 따라 수행됩니다. 검색, 삽입 및 삭제 연산은 로그 시간 복잡도를 가집니다.
std::multimap
의 반복자는 비내림차순 키 순서로 순회하며, 여기서 비내림차순은 생성 시 사용된 비교 함수에 의해 정의됩니다. 즉, 다음과 같이 주어졌을 때
m
,
std::multimap
it_l
과
it_r
,
m
에 대한 역참조 가능한 반복자들로
it_l
<
it_r
조건을 만족함.
m.
value_comp
(
)
(
*
it_r,
*
it_l
)
==
false
(기본 비교 함수를 사용하는 경우 오름차순).
키가 동등하게 비교되는 키-값 쌍들의 순서는 삽입 순서이며 변경되지 않습니다.
(since C++11)
표준 라이브러리가
Compare
요구 사항을 사용하는 모든 곳에서, 동등성은
Compare
에 설명된 동등 관계를 사용하여 결정됩니다. 비공식적으로 표현하면, 두 객체
a
와
b
는 어느 한쪽도 다른 쪽보다 작지 않을 경우 동등한 것으로 간주됩니다:
!
comp
(
a, b
)
&&
!
comp
(
b, a
)
.
std::multimap
는
Container
,
AllocatorAwareContainer
,
AssociativeContainer
및
ReversibleContainer
요구 사항을 충족합니다.
std::multimap
의 모든 멤버 함수는
constexpr
입니다: 상수 표현식 평가에서
std::multimap
객체를 생성하고 사용하는 것이 가능합니다.
그러나,
std::multimap
객체는 일반적으로
constexpr
일 수 없습니다. 동적으로 할당된 모든 저장 공간은 동일한 상수 표현식 평가에서 해제되어야 하기 때문입니다.
(C++26부터)
목차
템플릿 매개변수
멤버 타입
타입
정의
key_type
Key
mapped_type
T
value_type
std :: pair < const Key , T >
size_type
부호 없는 정수 타입 (보통 std::size_t )
difference_type
부호 있는 정수 타입 (보통 std::ptrdiff_t )
key_compare
Compare
allocator_type
Allocator
reference
value_type &
const_reference
const value_type &
pointer
Allocator::pointer
(C++11까지)
std :: allocator_traits < Allocator >:: pointer
(C++11부터)
const_pointer
Allocator::const_pointer
(C++11까지)
std :: allocator_traits < Allocator >:: const_pointer
(C++11부터)
iterator
LegacyBidirectionalIterator 및 ConstexprIterator (C++26부터) 에서 value_type
const_iterator
LegacyBidirectionalIterator 및 ConstexprIterator (C++26부터) 에서 const value_type
reverse_iterator
std :: reverse_iterator < iterator >
const_reverse_iterator
std :: reverse_iterator < const_iterator >
node_type (C++17부터)
의 특수화인 node handle 컨테이너 노드를 나타냅니다
멤버 클래스
value_type
타입의 객체를 비교합니다
(클래스)
멤버 함수
multimap
을 생성합니다
(public member function)
multimap
을 소멸시킵니다
(public member function)
컨테이너에 값을 할당합니다
(public member function)
관련 할당자 반환
(public member function)
반복자
시작 부분에 대한 반복자를 반환합니다
(public member function)
끝을 가리키는 반복자를 반환합니다
(public member function)
시작 부분으로의 역방향 반복자를 반환합니다
(public member function)
역방향 반복자를 끝으로 반환합니다
(public member function)
용량
컨테이너가 비어 있는지 확인합니다
(public member function)
요소의 개수를 반환합니다
(public member function)
가능한 최대 요소 수를 반환합니다
(public member function)
수정자
내용을 지움
(public member function)
요소를 삽입합니다
또는 노드
(C++17부터)
(public member function)
요소 범위를 삽입합니다
(public member function)
요소를 제자리에서 생성
(public member function)
힌트를 사용하여 제자리에서 요소를 생성합니다
(public member function)
요소를 삭제합니다
(public member function)
내용을 교환합니다
(public member function)
컨테이너로부터 노드를 추출합니다
(public member function)
다른 컨테이너로부터 노드를 연결함
(public member function)
조회
특정 키와 일치하는 요소의 수를 반환합니다
(public member function)
특정 키를 가진 요소를 찾습니다
(public member function)
특정 키를 가진 요소가 컨테이너에 포함되어 있는지 확인합니다
(public member function)
특정 키와 일치하는 요소들의 범위를 반환합니다
(public member function)
주어진 키보다
작지 않은
첫 번째 요소에 대한 반복자를 반환합니다
(public member function)
주어진 키보다
큰
첫 번째 요소에 대한 반복자를 반환합니다
(public member function)
관찰자
키를 비교하는 함수를 반환합니다
(public member function)
value_type
타입의 객체에서 키를 비교하는 함수를 반환합니다
(public member function)
비멤버 함수
(C++20에서 제거됨)
(C++20에서 제거됨)
(C++20에서 제거됨)
(C++20에서 제거됨)
(C++20에서 제거됨)
(C++20)
두
multimap
의 값을 사전식으로 비교
(함수 템플릿)
std::swap
알고리즘을 특수화
(함수 템플릿)
특정 조건을 만족하는 모든 요소를 삭제
(함수 템플릿)
참고 사항
예제
결함 보고서
다음의 동작 변경 결함 보고서들은 이전에 발표된 C++ 표준에 소급 적용되었습니다.
참고 항목
키-값 쌍의 컬렉션, 키로 정렬됨, 키는 고유함
(클래스 템플릿)
키-값 쌍의 컬렉션, 키로 해싱됨
(클래스 템플릿)
두 개의 컨테이너를 적응시켜 키-값 쌍의 컬렉션을 제공하며, 키로 정렬됨
(클래스 템플릿)