hash_compare-Klasse
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
key
des TypsKey
dient der Aufruf hash_comp(key
) als Hashfunktion, wodurch eine Verteilung von Werten vom Typsize_t
zurückgegeben wird. Die von „hash_compare“ bereitgestellte Funktion gibtkey
zurück.Für jeden Wert
key1
vom TypKey
, der in der Sequenz vorausgehtkey2
und 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 TypKey
auferlegen. Die von hash_compare bereitgestellte Funktion gibt comp(, ),
zurück,key1
wobei comp ein gespeichertes Objekt vom TypTraits
ist, das Sie angeben können, wenn Sie das Objekt hash_comp erstellen.key2
Für den StandardparametertypTraits
less<Key>
verringern die Sortierschlüssel niemals den Wert.Die ganzzahlige Konstante
bucket_size
gibt 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_buckets
gibt 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