Pour le résoudre, il est pratique d'utiliser une fonction de hachage qui renvoie une valeur unique pour chaque ligne (hash).
C++11 dispose d'une fonction intégrée pour obtenir un hachage : hachage.  < br /> À l'avenir, pour compter le nombre de hachages, il est préférable d'utiliser la table de hachage unordered_map, également apparue dans C++ 11. Vous pouvez en savoir plus sur l'utilisation de map dans le cours Structures de données dynamiques -> Tableaux associatifs : carte.

Exemple d'obtention d'un hachage à partir de la chaîne "test" :

hachage<chaîne> hash_fn ;
size_t str_hash = hash_fn("test" );
cout<<str_hash ;


Le résultat sera : "2949673445", donc à partir de chaque chaîne unique, vous pouvez obtenir un hachage unique qui peut être utilisé comme clé dans la  unordered_map.

Le hachage d'une chaîne est une représentation d'une chaîne sous la forme d'un certain nombre, unique (nous supposerons que le risque de collision est négligeable) pour chaque chaîne. Cela vous permet de stocker toutes les données importantes (comme les mots de passe) dans la base de données non pas sous forme de chaînes, mais sous forme de nombres. Cela vous permet de protéger les mots de passe si un attaquant parvient à accéder à la base de données de mots de passe, car il n'obtiendra pas les mots de passe eux-mêmes, mais uniquement leur représentation numérique, et il est presque impossible d'obtenir une chaîne par son hachage (surtout sans connaître l'algorithme de hachage ). 
Les hachages polynomiaux sont le plus souvent utilisés dans la programmation de problèmes de concurrence.
L'une des meilleures façons de déterminer la fonction de hachage de la chaîne S est la suivante :
h(S)  ; =  S[0]  +  S[1] * P  +  S[2] * P^2  +  S[3] * P^3  +  ...  +  S[N] * P^N