Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Шаблон класса описывает объект, который можно использовать любым из хэш-ассоциативных контейнеров — 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_comp типа hash_compare<Key, Traits>следующее поведение требуется приведенным выше контейнерам:
Для всех значений
keyтипаKeyвызов hash_comp(key) служит хэш-функцией, которая дает распределение значений типаsize_t. Функция, предоставленная hash_compare, возвращаетkey.Для любого типа
Key, который предшествуетkey2последовательности и имеет то же хэш-значениеkey1(значение, возвращаемое хэш-функцией), hash_comp(key2,key1) имеет значение false. Функция должна навязать общее упорядочение значений типаKey. Функция, предоставляемая hash_compare возвращает comp(key2,key1,где comp является хранимым объектом типаTraits, который можно указать при создании объекта hash_comp. Для типаless<Key>параметра по умолчаниюTraitsключи сортировки никогда не уменьшались.Целочисленная константа
bucket_sizeуказывает среднее число элементов на "контейнер" (запись хэш-таблицы), которое контейнер должен пытаться не превышать. Это значение должно быть больше нуля. Значение, предоставленное hash_compare, равно 4.Целочисленная константа
min_bucketsуказывает минимальное количество контейнеров для обслуживания в хэш-таблице. Оно должно быть степенью числа два и больше нуля. Значение, предоставленное hash_compare, равно 8.
Пример
Примеры объявления и использования hash_compare см. в примерах hash_map::hash_map, hash_multimap::hash_multimap, hash_set::hash_set и hash_multiset::hash_multiset.
Требования
Заголовок:<hash_map>
Пространство имен: stdext
См. также
Потокобезопасность в стандартной библиотеке C++
Справочник по стандартной библиотеке C++