Поделиться через


hash_compare Class

Класс-шаблон описывает объект, который может использоваться контейнерами любого хэш - hash_map ассоциативными, hash_multimap, hash_set или hash_multiset - в качестве значения по умолчанию признаки объект параметра заказа и элементы, которые они содержат.

template<class Key, class Traits = less<Key> >
   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;
   };

Заметки

Каждый сегмент хэша ассоциативный сохраняет объект признаков хэш типа признаки (параметр шаблона).Можно создать класс, наследуемый от специализации hash_compare выборочно переопределять некоторые функции и объекты или можно предоставить собственную версию этого класса, если соотвествуете определенные минимальные.В частности, для hash_comp объекта типа **hash_compare<ключ, признаки>**следующая функциональности, необходимые вышеуказанными контейнерами:

  • Для всех значений _Key type ключвызов hash_comp(_Key) служит хэш-функцией, которая формирует распределение значений типа size_t.Функция hash_compare возвращает переданную _Key.

  • Для любого значения _Key1 type ключ то предшествует _Key2 последовательности и имеет одно и то же хэш-значение (возвращаемое значение хэш-функции) hash_comp(_Key2" _Key1) false.Функция должна установить полный упорядочивания для значений типа ключ.Функция hash_compare возвращает переданную comp(_Key2" _Key1), где comp сохраненные объект типа признаки что можно указать при построении hash_comp объекта.Для значения по умолчанию признаки тип параметра **<ключ>**ключи сортировки никогда не снижают в значении.

  • Константа integer bucket_size указывает среднее количество элементов на "контейнер" (запись hashtable -), контейнер должен пытаться превышения.Он должен быть больше нуля.Значение, возвращенное hash_compare 4.

  • Константа integer min_buckets определяет минимальное количество сегментов в хэш-таблице. для поддержанияОн должен быть мощью 2 и больше нуля.Значение, возвращенное hash_compare 8.

В Visual C++ .NET 2003, члены <hash_map> и <hash_set> файлы заголовков больше не находятся в пространстве имен std, но скорее перейти на пространство имен stdext.Дополнительные сведения см. в разделе Пространство имен stdext.

Пример

См. примеры hash_map:: hash_map" hash_multimap:: hash_multimap" hash_set:: hash_setи hash_multiset:: hash_multisetдля примеров, как объявить и использовать hash_compare.

Требования

заголовок:<hash_map>

пространство имен: stdext

См. также

Ссылки

Потокобезопасность в стандартной библиотеке C++

Стандартная библиотека шаблонов

Другие ресурсы

члены<hash_map>

члены<hash_set>