Namespaces
Variants

C++ named requirements: Hash (since C++11)

From cppreference.net
C++ named requirements

Un Hash est un objet fonction pour lequel la sortie dépend uniquement de l'entrée et présente une très faible probabilité de produire la même sortie pour différentes valeurs d'entrée.

Exigences

Le type T satisfait Hash si

Étant donné

  • h , une valeur de type T ou const T , dont le type d'argument est Key ,
  • k , une valeur convertible en Key ou const Key ,
  • u , une expression lvalue de type Key .

Les expressions suivantes doivent être valides et avoir leurs effets spécifiés.

Expression Type de retour Exigences
h ( k ) std::size_t La valeur retournée dépend uniquement de la valeur de k pendant la durée du programme.

Toutes les évaluations de h ( k ) exécutées lors d'une exécution donnée d'un programme produisent le même résultat pour la même valeur de k .

La probabilité que h ( a ) == h ( b ) pour a ! = b doit approcher 1.0 / std:: numeric_limits < std:: size_t > :: max ( ) .

h ( u ) std::size_t u n'est pas modifié.

Bibliothèque standard

(C++11)
objet fonction de hachage
(modèle de classe)

Rapports de défauts

Les rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.

DR Applicable à Comportement publié Comportement corrigé
LWG 2291 C++11 des résultats identiques pour des arguments identiques étaient requis dans tous les cas requis uniquement au sein d'une même exécution