Freigeben über


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

Standardvorlagenbibliothek

Weitere Ressourcen

<hash_map> Member

<hash_set> Member