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++
Стандартная библиотека шаблонов