Класс 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++
Библиотека стандартных шаблонов