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


Класс hash_compare

Класс шаблона объекте, который может использоваться контейнерами любого хэш ассоциативными — 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, Traits>, следующее расширение функциональности должен вышеперечисленными контейнерами.

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

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

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

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

В Visual C++ .NET 2003 C, элементы файла заголовка <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>