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