Partager via


hash_compare Class

La classe de modèle décrit un objet qui peut être utilisé par les conteneurs associatifs de hachage l'un des - hash_map, hash_multimap, hash_set, ou hash_multiset - en tant qu'objet paramètre par défaut de caractéristiques classer et hacher les éléments qu'ils contiennent.

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;
   };

Notes

Chaque conteneur associatif de hachage stocke un objet Ctraits de hachage de type caractéristiques (un paramètre de modèle).Vous pouvez dériver une classe d'une spécialisation de hash_compare pour substituer sélectivement de certains fonctions et objets, ou vous pouvez fournir votre propre version de cette classe si vous répondez à certaines configuration minimale requise.Spécifiquement, pour un hash_comp d'objet de type hash_compare <Key, Traits> , le comportement suivant est requis par les conteneurs précédemment :

  • Pour toutes les valeurs _Key de type Clé, l'appel hash_comp(_Key) sert de fonction de hachage, qui donne une distribution des valeurs de type size_t.La fonction fournie par le hash_compare retourne _Key.

  • Pour toute valeur _Key1 du type Clé qui précède _Key2 dans la séquence et a la même valeur de hachage (valeur retournée par la fonction de hachage), hash_comp(_Key2, _Key1) est false.La fonction doit appliquer le classement total aux valeurs de type Clé.La fonction fournie par le hash_compare retourne comp.(_Key2, _Key1), où les comp. constituent un objet stocké de type caractéristiques que vous pouvez spécifier lorsque vous construisez le hash_comp d'objet.Pour le type moins <Key> de paramètre de caractéristiques par défaut, les clés de tri ne font baisser jamais dans une valeur.

  • La constante entière bucket_size spécifie le nombre moyen d'éléments par « compartiment » (entrée hashtable) que le conteneur doit essayer de ne pas dépasser.Elle doit être supérieure à zéro.la valeur fournie par le hash_compare est 4.

  • La constante entière min_buckets spécifie le nombre minimal de compartiments pour stocker dans la table de hachage.Il doit être une puissance de deux et supérieur à zéro.la valeur fournie par le hash_compare est 8.

Dans Visual C++ .NET 2003, les membres des fichiers d'en-tête de <hash_map> et de <hash_set> ne sont plus dans l'espace de noms de type, mais plutôt ont été entrés dans l'espace de noms de stdext.Pour plus d'informations, consultez The stdext Namespace.

Exemple

Voir des exemples de hash_map : : hash_map, hash_multimap : : hash_multimap, hash_set : : hash_set, et hash_multiset : : hash_multiset, pour obtenir des exemples de déclarer et utiliser le hash_compare.

Configuration requise

en-tête : <hash_map>

l'espace de noms : stdext

Voir aussi

Référence

Sécurité des threads dans la bibliothèque C++ standard

Modèles Standard

Autres ressources

<hash_map> membres

<hash_set> membres