hash_compare — Klasa
Obiekt, który przez żadną z kontenerów asocjacyjnych mieszania zawiera opis szablonu klasy — hash_map, hash_multimap, hash_set, lub hash_multiset — domyślnie cechy parametr obiektu do porządkowania i mieszania zawierają elementy.
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;
};
Uwagi
Każdy pojemnik asocjacyjne mieszania przechowuje obiekt cech mieszania typu cechy (parametr szablonu).Klasy mogą dziedziczyć specjalizacji hash_compare do przeciążania niektóre funkcje i obiekty lub podać własną wersję tej klasy, które spełniają pewne minimalne wymagania.W szczególności dla hash_comp obiektu typu hash_compare<klucz, cechy>, następujące zachowanie jest wymagane przez powyższe kontenery:
Dla wszystkich wartości _Key typu klucz, wywołanie hash_comp(_Key) służy jako funkcja mieszania, która daje w wyniku rozkład wartości typu size_t.Zwraca wartość funkcji dostarczonych przez hash_compare _Key.
Dla każdej wartości _Key1 typu klucz czy poprzedza _Key2 w sekwencji i ma tę samą wartość mieszania wartość (wartość zwracaną przez funkcję mieszania), hash_comp(_Key2, _Key1) ma wartość false.Funkcja musi nakładać sumy zamówienia na wartości typu klucz.Zwraca wartość funkcji dostarczanych przez hash_compare komp(_Key2, _Key1), gdzie komp jest przechowywana obiektu typu cechy można określić podczas konstruowania obiektu hash_comp.Dla domyślnej cechy typ parametru mniej<klucz>, klucze sortowania nigdy spadek wartości.
Stała wartość całkowita w bucket_size określa średnią liczbę elementów na "Wiadro" (wpis tabeli mieszania) który kontenera nie należy próbować przekroczyć.Musi być większa od zera.Wartość dostarczonych przez hash_compare jest 4.
Stała wartość całkowita w min_buckets określa minimalną liczbę pakiety, aby utrzymać w tabeli mieszania.Musi być zasilania dwu i większa od zera.Wartość dostarczonych przez hash_compare jest 8.
W Visual C++ .NET 2003, elementy członkowskie plików nagłówka <hash_map> i <hash_set> nie są już w przestrzeni nazw std, ale raczej zostały przeniesione do przestrzeni nazw stdext.Zobacz Przestrzeń nazw stdext, aby uzyskać więcej informacji.
Przykład
Zobacz przykłady dla hash_map::hash_map, hash_multimap::hash_multimap, hash_set::hash_set, i hash_multiset::hash_multiset, przykłady deklarować i używać hash_compare.
Wymagania
Nagłówek: <hash_map>
Przestrzeń nazw: stdext
Zobacz też
Informacje
Bezpieczeństwo wątku w standardowej bibliotece C++
Standardowa biblioteka szablonów