hash_compare — Klasa
Szablon klasy opisuje obiekt, który może być używany przez dowolne kontenery asocjacyjne skrótów — hash_map, hash_multimap, hash_set lub hash_multiset — jako domyślny obiekt parametru Traits do porządkowenia i tworzenia skrótu elementów, które zawierają.
Składnia
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;
};
Uwagi
Każdy kontener asocjacyjny skrót przechowuje obiekt cech skrótu typu Traits
(parametr szablonu). Klasę można utworzyć na podstawie specjalizacji hash_compare, aby selektywnie zastąpić niektóre funkcje i obiekty lub podać własną wersję tej klasy, jeśli spełniasz pewne minimalne wymagania. W szczególności w przypadku obiektu hash_comp typu hash_compare<Key, Traits>
następujące zachowanie jest wymagane przez powyższe kontenery:
Dla wszystkich wartości
key
typuKey
wywołanie hash_comp(key
) służy jako funkcja skrótu, która daje rozkład wartości typusize_t
. Funkcja dostarczana przez hash_compare zwraca wartośćkey
.W przypadku dowolnej wartości
key1
typuKey
, która poprzedzakey2
sekwencję i ma tę samą wartość skrótu (wartość zwracana przez funkcję skrótu), hash_comp(key2
,key1
) jest fałszem. Funkcja musi narzucić łączną kolejność dla wartości typuKey
. Funkcja dostarczana przez hash_compare zwraca comp(, ), gdzie comp jest przechowywanym obiektem typuTraits
, który można określić podczas konstruowania obiektu hash_comp.,
key1
key2
Dla domyślnegoTraits
typuless<Key>
parametru klucze sortowania nigdy nie zmniejszają wartości.Stała
bucket_size
całkowita określa średnią liczbę elementów na "zasobnik" (wpis tabeli skrótów), których kontener powinien spróbować nie przekroczyć. Musi być większy niż zero. Wartość podana przez hash_compare wynosi 4.Stała
min_buckets
całkowita określa minimalną liczbę zasobników do utrzymania w tabeli skrótów. Musi być mocą dwóch i większą niż zero. Wartość podana przez hash_compare wynosi 8.
Przykład
Zobacz przykłady hash_map ::hash_map, hash_multimap::hash_multimap, hash_set::hash_set i hash_multiset::hash_multiset, aby zapoznać się z przykładami sposobu deklarowania i używania hash_compare.
Wymagania
Nagłówek:<hash_map>
Przestrzeń nazw: stdext
Zobacz też
Bezpieczeństwo wątku w standardowej bibliotece C++
Dokumentacja standardowej biblioteki C++