Udostępnij za pośrednictwem


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 typu Keywywołanie hash_comp(key) służy jako funkcja skrótu, która daje rozkład wartości typu size_t. Funkcja dostarczana przez hash_compare zwraca wartość key.

  • W przypadku dowolnej wartości key1 typu Key , która poprzedza key2 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 typu Key. Funkcja dostarczana przez hash_compare zwraca comp(, ), gdzie comp jest przechowywanym obiektem typuTraits, który można określić podczas konstruowania obiektu hash_comp.,key1key2 Dla domyślnego Traits typu less<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++