classe hash_compare

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.

Note

hash_compare a été supprimé dans MSVC Build Tools 14.51

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 Key() sert de fonction de hachage, ce qui génère une distribution de valeurs de type key.size_t 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 que vous pouvez spécifier lorsque vous construisez l’objet hash_comp.key2key1,Traits Pour le type Traitsde paramètre par défautless<Key>, 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

En-tête :<hash_map>

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++