hash_compare-Klasse
Die Vorlagenklasse beschreibt ein Objekt, das in einem der Hashassoziativen container - hash_map, hash_multimap, hash_set oder hash_multiset - Option verwendet werden kann ein standardmäßiges Merkmale-Parameterobjekt, um die Elemente zu sortieren und zu, hashen, 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 Hashassoziative container speichert ein Hashmerkmalsobjekt des Typs Merkmale (ein Vorlagenparameter). Sie können eine Klasse aus einer Spezialisierung von hash_compare ableiten, um bestimmte Funktionen und Objekte selektiv überschreiben, oder eine eigene Version dieser Klasse enthalten, wenn Sie bestimmte Mindestanforderungen erfüllen. Insbesondere für ein Objekt hash_comp des Typs hash_compare <Key, Traits>, wird das folgende Verhalten durch die oben erwähnten Container erfordert:
Für alle Werte _Key des Typs Taste, die grafische Aufruf hash_comp(_Key) als Hashfunktion, die eine Verteilung von Werten des Typs size_t ergibt. Die Funktion, die von hash_compare angegeben wird, gibt _Key zurück.
Für jeden Wert _Key1 des Typs Taste, der in der Sequenz _Key2 vor und denselben Hashwert hat (Wert zurückgegeben durch die Hashfunktion), hash_comp ist (_Key2, _Key1) false. Die Funktion muss eine ganze Reihenfolge Werten des Typs Taste festlegen. Die Funktion, die von hash_compare angegeben wird, gibt Erstellt.(_Key2, _Key1), zurück, wobei Erstellt. ein gespeichertes Objekt vom Typ Merkmale ist, dass Sie angeben können, wenn Sie das Objekt hash_comp erstellen. Bei den Standard- Merkmale-Parametertyp less <Key>, verringert wird Sortierschlüssel nie.
Die ganzzahlige Konstante bucket_size gibt die Mittelanzahl von Elementen "pro Bucket" an (Hash-Tabelle) den Eintrag der Container versuchen soll, nicht zu überschreiten. Sie muss größer null sein. Der Wert, der von hash_compare angegeben wird, ist. 4.
Die ganzzahlige Konstante min_buckets gibt die gewünschte Mindestanzahl von Buckets an, um in der Hashtabelle zu warten. Sie muss eine Potenz von zwei und größer sein. Der Wert, der von hash_compare angegeben wird, ist. 8.
In Visual C++ .NET 2003 sind Member der <hash_map> und <hash_set> Headerdateien nicht mehr im STD-Namespace enthalten. Sie wurden stattdessen in den stdext-Namespace verschoben. Weitere Informationen finden Sie unter Der stdext-Namespace.
Beispiel
Siehe Beispiele für hash_map::hash_map, hash_multimap::hash_multimap, hash_set::hash_set und hash_multiset::hash_multiset, für Beispiele, wie hash_compare deklariert und verwendet.
Anforderungen
Header: <hash_map>
Namespace: stdext
Siehe auch
Referenz
Threadsicherheit in der C++-Standardbibliothek