hash_multimap Class
[!참고]
이 API는 사용되지 않습니다.대신 unordered_multimap Class.
컨테이너 클래스 hash_multimap는 표준 템플릿 라이브러리의 확장 이며 저장 및 각 요소의 정렬 키 값이 고유 하지 않아도 한 쌍인 컬렉션과 연결 된 데이터 값에서 데이터의 빠른 검색에 사용 됩니다.
template <
class Key,
class Type,
class Traits=hash_compare<Key, less<Key> >,
class Allocator=allocator<pair <const Key, Type> >
>
class hash_multimap
매개 변수
키
Hash_multimap에 저장 될 키 데이터 형식입니다.Type
Hash_multimap에 저장 될 요소의 데이터 형식입니다.Traits
클래스 중 하나가 함수 개체를 포함 하는 형식 성분 상대적인 순서와 1 진 조건부 요소의 키 값 형식의 부호 없는 정수로 매핑하는 해시 함수를 결정 하는 정렬 키로 두 개의 요소 값을 비교할 수 있습니다 size_t.이 인수는 선택 사항입니다 및 hash_compare*< 키, 적은 <Key> >* 기본값은입니다.Allocator
Hash_multimap의 할당 및 할당 취소에 대 한 세부 정보를 캡슐화 하는 저장 된 할당 기 개체를 나타내는 형식입니다.이 인수는 선택적 이며 기본값은 할당자*<*pair *<*const 키에서 입력 > >.
설명
Hash_multimap은 다음과 같습니다.
요소 값의 효율적인 검색을 지 원하는 가변 크기 컨테이너에 연결 된 키 값에 기반 하는 결합형 컨테이너입니다.
해당 요소에 액세스 하는 양방향 반복기를 제공 하기 때문에 되돌릴 수 있습니다.
버킷으로 해시 함수가 요소의 키 값에 적용 값을 기준으로 해당 요소의 그룹화 되기 때문에 해시.
여러 개의 키 값에 연결 된 많은 요소 데이터 값을 가질 수 있도록 해당 요소는 고유 키가 필요가 없습니다 때문입니다.
쌍 결합형 컨테이너 해당 요소 값을 키 값을 구분 하기 때문입니다.
템플릿 클래스를 제공 하는 기능 때문입니다 일반 및 독립적 요소 또는 키를 포함 하는 데이터를 특정 형식으로.요소 및 키를 사용 하는 데이터 형식 대신 비교 함수 및 할당자 클래스 템플릿 매개 변수로 지정 되 고.
정렬을 통해 해싱의 가장 큰 장점은 높은 효율성입니다. 성공적인 해싱 삽입, 삭제, 수행 하 고 일정 한 평균 시간 시간 비교 정렬 기법에 대 한 컨테이너의 요소 수의 밑에 비례 찾습니다.요소에는 hash_multimap의 값 이지만 없습니다 해당 키 값을 직접 변경할 수 있습니다.대신 이전 요소와 연관 된 키 값 삽입 새 요소와 연관 된 삭제 되 고 새 키 값이 있어야 합니다.
컨테이너 유형 중에서 선택할 검색 유형을 일반적 따라야 하 고 삽입 하는 응용 프로그램에 필요한.해시 된 결합형 컨테이너 조회, 삽입 및 제거 작업에 최적화 되어 있습니다.명시적으로 이러한 작업을 지원 하는 멤버 함수가 상수 평균적이 고 컨테이너의에서 요소 수에 의존 하지 않는 시간에 수행 하 여 잘된 해시 함수를 함께 사용 하면 효율적입니다.잘 디자인 된 해시 함수 해시 된 값의 균일 한 분포를 생성 및 충돌, 충돌 고유 키 값이 동일한 해시 된 값에 매핑되는 경우에 발생할 수 있다고 수 최소화.최악의 경우를 최악의 가능한 해시 함수로 작업 (선형 시간) 시퀀스의 요소 수 비례합니다.
응용 프로그램에서 해당 키 값을 연결 하는 조건이 충족 되 면 hash_multimap는 결합형 컨테이너의 선택 해야 합니다.이런이 종류의 구조를 위한 모델 목록을 제공 하는 연결된 문자열 값, 단어, 정의 핵심 단어 단어 항상 고유 하 게 정의 되지 않았습니다입니다.다음 키는 고유 되었습니다 있도록 대신 키워드 고유 하 게 정의 된 경우에 hash_map 컨테이너의 선택 됩니다.한편, 단어 목록이 방금 저장 된 경우에 hash_set는 해당 컨테이너가 됩니다.단어가 여러 개 허용 하는 경우는 hash_multiset는 적절 한 컨테이너 구조 됩니다.
컨트롤의 저장 된 해시를 호출 하 여 시퀀스의 hash_multimap 주문 성분 형식의 개체를 value_compare.이 저장 된 개체의 멤버 함수를 호출 하 여 액세스할 수 있습니다 key_comp.함수 개체 클래스의 개체와 똑같이 동작 해야 hash_compare< 키를 보다*<Key> >.모든 값에 대해 구체적으로 _Key 유형 키, 호출 성분(_Key)* 형식의 값의 분포를 얻을 size_t.
일반적으로 요소를 단지 미만 동급이 순서를 설정할 필요가: 임의의 두 요소가 지정 되도록, (둘 다 보다는 다른와 같은 의미)에 해당 하는 나 보다 다른 인지 확인할 수 있습니다.이 비 해당 요소 간의 정렬 됩니다.더 기술적인 메모에 비교 함수 유도 엄격한 약한 표준 수학 점에서 주문 이진 조건부입니다.이진 술 부 f(x,y) 인수 개체를 두 개 가진 함수 개체는 x 및 y 및 반환 값이 true 또는 false.이진 조건부 비 회귀, 반대칭 특성이 결합 된, 및 전이 되 고 등가 전이 되 면 두 개체 위치 경우 순서가 엄격 하 게 약한 순서는 hash_multimap에서 부과 되 x 및 y 때 동일한 것으로 정의 된 모두 f(x,y) 및 f(y,x) false입니다.강력한 조건 키 사이의 같음 동등성을 대신 하면 다음 순서 (모든 요소를 서로 기준으로 정렬 됩니다 의미)에서 총 되며 일치 하는 키를 서로 모아져 수 없게 됩니다.
제어 되는 시퀀스에 있는 요소의 실제 순서는 해시 함수, 정렬 함수 및 컨테이너 개체에 저장 된 해시 테이블의 현재 크기에 따라 다릅니다.일반적 제어 되는 시퀀스의 요소 순서를 예측할 수 있도록 해시 테이블의 현재 크기를 확인할 수 없습니다.요소 삽입 없음 반복기를 무효화 하 고 요소 제거 제거 요소를 구체적으로 가리키는 것만 이러한 반복기를 무효화 합니다.
반복기는 hash_multimap 클래스에서 제공 되지만 클래스 멤버 함수는 양방향 반복기입니다 삽입 및 hash_multimap 버전이 해당 기능 요구 사항은 보다 양방향 반복기 클래스에 의해 보장 된 최소한의 더 약한 입력된 반복기를 템플릿 매개 변수로 사용 합니다.다른 반복기 개념 구체화가 해당 기능에 관련 된 제품군을 형성 합니다.자체 요구 사항, hash_multimap 각 반복기 개념이 고 해당 반복기의 형식에서 제공 하는 요구 사항에 자신의 가정을 사용 하 여 작업 하는 알고리즘 제한 해야 합니다.일부 개체를 참조 하는 입력된 반복기를 역참조 될 수 있습니다 및 시퀀스에서 다음 반복기를 증가 될 수 있음을 가정할 수 있습니다.최소한의 hash_multimap 기능, 이지만 충분히 의미 있게 반복기에 대 한 범위를 이야기할 수 있습니다 [_First, _Last) 의 멤버 함수입니다.
Visual C++.NET 2003 멤버는 <hash_map> 및 <hash_set> 헤더 파일이 더 이상 std 네임 스페이스에 있지만 오히려 stdext 네임 스페이스로 이동 되었습니다.자세한 내용은 stdext 네임스페이스를 참조하십시오.
생성자
특정 크기의 또는 요소를 특정 값 또는 특정 목록 생성 allocator 의 다른 복사본이 나 hash_multimap. |
형식 정의
나타내는 형식에서 allocator 클래스의 hash_multimap 개체입니다. |
|
읽을 수 있는 양방향 반복기를 제공 하는 형식에 const 요소에 있는 hash_multimap. |
|
에 대 한 포인터를 제공 하는 형식에 const 요소에 있는 hash_multimap. |
|
참조를 제공 하는 형식에 const 요소에 저장 한 hash_multimap 읽기 및 수행 const 작업. |
|
모든 수 양방향 반복기를 제공 하는 형식의 읽을 const 요소에 있는 hash_multimap. |
|
요소 개수를 나타내는 데 사용 되는 부호 있는 정수 형식에 hash_multimap 반복기가 가리키는 요소 사이의 범위에 있습니다. |
|
양방향 반복기를 제공 하는 형식을 읽거나 모든 요소를 수정할 수 있는 hash_multimap. |
|
두 요소의 상대적 순서를 결정 하는 두 정렬 키를 비교할 수 있는 함수 개체를 제공 하는 형식에서 hash_multimap. |
|
각 요소를 구성 하는 요소는 정렬 키 개체를 설명 하는 형식에서 hash_multimap. |
|
에 저장 된 데이터 형식을 나타내는 형식에 hash_multimap. |
|
요소에 대 한 포인터를 제공 하는 형식에 hash_multimap. |
|
에 저장 된 요소에 대 한 참조를 제공 하는 형식에 hash_multimap. |
|
양방향 반복기를 제공 하는 형식을 읽거나 수정할 요소를 역순으로 hash_multimap. |
|
요소의 수를 나타내는 부호 없는 정수 형식에 hash_multimap. |
|
두 요소를 비교 하 여 상대적인 순서를 결정 하는 정렬 키로 수는 함수 개체를 제공 하는 형식에서 hash_multimap. |
멤버 함수
첫 번째 요소에 반복기를 반환 된 hash_multimap. |
|
반환 주소에서 첫 번째 요소는 const 반복기는 hash_multimap. |
|
반환 주소에 있는 마지막 요소 다음에 나오는 위치는 const 반복기는 hash_multimap. |
|
모든 요소를 삭제 한 hash_multimap. |
|
요소 개수를 반환은 hash_multimap 인 키 매개 변수에 지정 된 키와 일치 합니다. |
|
첫 번째 요소는 역순된 주소는 const 반복기를 반환 hash_multimap. |
|
주소는 반전된의 마지막 요소 다음에 나오는 위치는 const 반복기를 반환 합니다. hash_multimap. |
|
제자리에서 구성 요소를 삽입 한 hash_multimap. |
|
제자리에서 구성 요소를 삽입 한 hash_multimap, 배치 힌트를. |
|
경우 테스트 하는 hash_multimap 비어 있습니다. |
|
반복기를 마지막 요소 다음에 나오는 위치 주소 반환 된 hash_multimap. |
|
반복기를 마지막 요소 다음에 나오는 위치 주소 반환 된 hash_multimap. |
|
요소나 요소에서 범위를 제거는 hash_multimap 지정 된 위치에서 |
|
요소 위치를 가리키는 반복기를 반환 된 hash_multimap 는 지정 된 키에 해당 하는 키가. |
|
복사본을 반환의 allocator 개체를 만드는 데 사용 되는 hash_multimap. |
|
요소나 다양 한 요소를 삽입 하는 hash_multimap 지정 된 위치. |
|
순서 키를 사용 하 여 비교 개체의 복사본을 검색 한 hash_multimap. |
|
첫 번째 요소에 반복기를 반환 된 hash_multimap 지정 된 키 보다 크거나 같은 키와 값입니다. |
|
최대 길이를 반환 된 hash_multimap. |
|
첫 번째 요소는 역방향된 반복기를 반환 합니다. hash_multimap. |
|
반전된은 마지막 요소 다음에 나오는 위치를 설명 하는 반복기를 반환 hash_multimap. |
|
새 크기에 지정 된 hash_multimap. |
|
두 요소가 교환 hash_multimaps. |
|
첫 번째 요소에 반복기를 반환 된 hash_multimap 는 키와 값의 지정 된 키 보다 높습니다. |
|
순서 대로 요소 값에 사용 되는 비교 개체의 복사본을 검색 한 hash_multimap. |
연산자
요소의 대체에 hash_multimap 의 다른 사본을 가진 hash_multimap. |
요구 사항
헤더: <hash_map>
네임 스페이스: stdext