hash_compare Class
Die Vorlagenklasse beschreibt ein Objekt, das von einem der assoziative Container des Hashs — hash_map, hash_multimap, hash_set oder hash_multiset — Traits-Parameterobjekt als Standard zum Sortieren oder gehashten verwendet werden kann, die Elemente, die sie enthalten.
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;
};
Hinweise
Jeder assoziative Container des Hashs speichert ein Hash merkmals Objekt vom Typ Traits (ein Vorlagenparameter).Sie können eine Klasse aus einer Spezialisierung von hash_compare abgeleitet werden, um bestimmte Funktionen und Objekte selektiv überschreiben, oder Sie können angeben, Version dieser Klasse verfügen, wenn Sie bestimmte Mindestanforderungen erfüllen.Insbesondere für ein Objekt hash_comp des Typs hash_compare <Key, Traits> , ist folgendes Verhalten durch die oben genannten Container erforderlich:
Für alle Werte _Key des Typs Taste, fungiert der Aufruf hash_comp(_Key) als Hashfunktion, die auf eine Verteilung von Werten des Typs size_tergibt.Die Funktion, die von hash_compare angegeben wird, gibt _Keyzurück.
Für jeden möglichen Wert _Key1 des Typs Taste , der _Key2 in der Sequenz vorangestellt ist und denselben Hashwert (der Wert zurückgegeben von der Hashfunktion) ist hash_comp(_Key2, _Key1) falsch.Die Funktion muss eine vollständige Reihenfolge auferlegen Werte vom Typ Taste.Die Funktion, die von hash_compare angegeben wird, gibt_Key2( Comp, _Key1, ) zurück, wobei Comp ein gespeichertes Objekt vom Typ Traits entspricht, mit der Sie angeben können, wenn Sie das Objekt hash_comp erstellen.Für den Standardwert Traits-Parametertyp kleiner <Key> , Wertminderung Sortierschlüssel nie ab.
Die ganzzahlige Konstante bucket_size gibt die Anzahl der Ressourcen von Elementen pro „Bucket“ (Hash-Tabelle der Container) den Eintrag versuchen soll, um nicht nach oben.Er muss größer als null sein.Der Wert, der von hash_compare angegeben ist, ist 4.
Die ganzzahlige Konstante min_buckets gibt die Anzahl der Buckets an, die in der Hashtabelle zu warten.Es muss eine Potenz von Zwei und größer als null sein.Der Wert, der von hash_compare angegeben ist, ist 8.
In Visual C++ .NET 2003 sind Member der <hash_map> und <hash_set> Headerdateien nicht mehr im std-Namespace, sondern sind in den stdext Namespace verschoben wurde.Weitere Informationen finden Sie unter Der stdext-Namespace.
Beispiel
Weitere Informationen finden Sie Beispiele für hash_map::hash_map, hash_multimap::hash_multimap, hash_set::hash_set, und hash_multiset::hash_multisetBeispiele für die Verwendung hash_compare deklariert und verwendet.
Anforderungen
Header: <hash_map>
Namespace: stdext
Siehe auch
Referenz
Threadsicherheit in der C++-Standardbibliothek