Freigeben über


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

Standardvorlagenbibliothek

Weitere Ressourcen

<hash_map> Member

<hash_set> Member