Partager via


hash_compare, classe

Le modèle de classe décrit un objet qui peut être utilisé par l’un des conteneurs associatifs de hachage ( hash_map, hash_multimap, hash_set ou hash_multiset) en tant qu’objet de paramètre Traits par défaut pour classer et hacher les éléments qu’ils contiennent.

Syntaxe

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 de type traits de hachage (paramètre de Traits modèle). Vous pouvez dériver une classe d’une spécialisation de hash_compare pour remplacer de manière sélective certaines fonctions et certains objets, ou vous pouvez fournir votre propre version de cette classe si vous répondez à certaines exigences minimales. Plus précisément, pour un objet hash_comp de type hash_compare<Key, Traits>, le comportement suivant est requis par les conteneurs ci-dessus :

  • Pour toutes les valeurs de typeKey, l’appel hash_comp(key) sert de fonction de hachage, ce qui génère une distribution de valeurs de type size_t.key La fonction fournie par hash_compare retourne key.

  • Pour toute valeur key1 de type Key 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 imposer un ordre total aux valeurs de type Key. La fonction fournie par hash_compare retourne comp(, ) où comp est un objet stocké de type Traits que vous pouvez spécifier lorsque vous construisez l’objet hash_comp. , key1key2 Pour le type less<Key>de paramètre par défautTraits, les clés de tri ne diminuent jamais en valeur.

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

  • La constante min_buckets entière spécifie le nombre minimal de compartiments à conserver dans la table de hachage. Il doit s'agir d'une puissance de deux et sa valeur doit être supérieure à zéro. La valeur fournie par hash_compare est 8.

Exemple

Consultez les exemples pour hash_map::hash_map, hash_multimap::hash_multimap, hash_set::hash_set et hash_multiset::hash_multiset pour voir comment déclarer et utiliser hash_compare.

Spécifications

Header :<hash_map>

Espace de noms : stdext

Voir aussi

Sécurité des threads dans la bibliothèque C++ Standard
Informations de référence sur la bibliothèque standard C++