다음을 통해 공유


hash_compare 클래스

클래스 템플릿은 해시 결합 컨테이너(hash_map, hash_multimap, hash_set 또는 hash_multiset)에서 사용할 수 있는 개체를 포함하는 요소를 정렬하고 해시하는 기본 Traits 매개 변수 개체로 설명합니다.

구문

class hash_compare
{
   Traits comp;
   public:
   const size_t bucket_size = 4;
   const size_t min_buckets = 8;
   hash_compare();
   hash_compare(Traits pred);
   size_t operator()(const Key& key) const;
   bool operator()(
   const Key& key1,
   const Key& key2) const;
};

설명

각 해시 결합 컨테이너는 형식 Traits 의 해시 특성 개체(템플릿 매개 변수)를 저장합니다. hash_compare 특수화에서 클래스를 파생시켜 특정 함수 및 개체를 선택적으로 재정의하거나, 최소한의 특정 요구를 충족하는 경우 이 클래스의 고유한 버전을 제공할 수 있습니다. 특히 형식 hash_compare<Key, Traits>의 개체 hash_comp 경우 위의 컨테이너에서 다음 동작이 필요합니다.

  • 형식Key의 모든 값 key대해 호출 hash_comp()는key 형식 size_t값의 분포를 생성하는 해시 함수 역할을 합니다. hash_compare에서 제공하는 함수는 key를 반환합니다.

  • 시퀀스에 선행 key2 되고 해시 값key1(해시 함수에서 반환된 값)이 있는 형식 Key 의 모든 값에 대해 hash_comp(key2, key1)는 false입니다. 함수는 형식 Key의 값에 총 순서를 적용해야 합니다. hash_compare 제공하는 함수는 comp(, )를 반환합니다. 여기서 comp는 hash_comp 개체를 생성할 때 지정할 수 있는 형식 Traits 의 저장된 개체입니다. ,key1key2 기본 Traits 매개 변수 형식 less<Key>의 경우 정렬 키 값이 감소하지 않습니다.

  • 정수 상수 bucket_size 는 컨테이너가 초과하지 않도록 해야 하는 "bucket"(해시 테이블 항목)당 평균 요소 수를 지정합니다. 0보다 커야 합니다. hash_compare에서 제공하는 값은 4입니다.

  • 정수 상수 min_buckets 는 해시 테이블에 기본 얻을 버킷의 최소 수를 지정합니다. 0보다 큰 2의 거듭제곱이어야 합니다. hash_compare에서 제공하는 값은 8입니다.

예시

hash_compare를 선언 및 사용하는 방법의 예제는 hash_map::hash_map, hash_multimap::hash_multimap, hash_set::hash_sethash_multiset::hash_multiset에 대한 예제를 참조하세요.

요구 사항

헤더:<hash_map>

네임스페이스: stdext

참고 항목

C++ 표준 라이브러리의 스레드 보안
C++ 표준 라이브러리 참조