Anmerkung
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen, dich anzumelden oder die Verzeichnisse zu wechseln.
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen , die Verzeichnisse zu wechseln.
Die Klassenvorlage beschreibt ein Objekt, das von einem der Hashzuordnungscontainer verwendet werden kann – hash_map, hash_multimap, hash_set oder hash_multiset – als Standardparameterobjekt zum Sortieren und Hashen der darin enthaltenen Elemente.
Syntax
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 Hashcontainer speichert ein Hasheigenschaftenobjekt vom Typ Traits (ein Vorlagenparameter). Sie können eine Klasse aus einer Spezialisierung von „hash_compare“ ableiten, um gezielt bestimmte Funktionen und Objekte zu überschreiben, oder Sie können eine eigene Version dieser Klasse angeben, wenn Sie bestimmte Mindestanforderungen einhalten. Insbesondere für ein Objekt hash_comp typs hash_compare<Key, Traits>ist das folgende Verhalten von den oben genannten Containern erforderlich:
Für alle Werte
keydes TypsKeydient der Aufruf hash_comp(key) als Hashfunktion, wodurch eine Verteilung von Werten vom Typsize_tzurückgegeben wird. Die von „hash_compare“ bereitgestellte Funktion gibtkeyzurück.Für jeden Wert
key1vom TypKey, der in der Sequenz vorausgehtkey2und denselben Hashwert aufweist (Wert, der von der Hashfunktion zurückgegeben wird), ist hash_comp(key2,key1) "false". Die Funktion muss eine Gesamtbestellung für Werte vom TypKeyauferlegen. Die von hash_compare bereitgestellte Funktion gibt comp(, ),zurück,key1wobei comp ein gespeichertes Objekt vom TypTraitsist, das Sie angeben können, wenn Sie das Objekt hash_comp erstellen.key2Für den StandardparametertypTraitsless<Key>verringern die Sortierschlüssel niemals den Wert.Die ganzzahlige Konstante
bucket_sizegibt die mittlere Anzahl von Elementen pro Bucket (Hashtabelleneintrag) an, die der Container nicht überschreiten soll. Der Wert der Konstanten muss größer als 0 sein. „hash_compare“ stellt den Wert „4“ bereit.Die ganze Zahl
min_bucketsgibt die Mindestanzahl der Buckets an, die in der Hashtabelle verwaltet werden sollen. Der Wert der Konstanten muss eine Potenz von zwei und größer als 0 sein. „hash_compare“ stellt den Wert „8“ bereit.
Beispiel
Beispiele, wie „hash_compare“ deklariert und verwendet wird, finden Sie in den Beispielen zu hash_map::hash_map, hash_multimap::hash_multimap, hash_set::hash_set und hash_multiset::hash_multiset.
Anforderungen
Header:<hash_map>
Namespace: stdext
Siehe auch
Threadsicherheit in der C++-Standardbibliothek
C++-Standardbibliotheksreferenz