为了解决它,使用哈希函数很方便,它为每一行返回一个唯一的值(哈希)。
C++11 具有用于获取哈希的内置工具:hash。  
以后要统计哈希的个数,还是用unordered_map哈希表比较好,它也在C++ 11中出现过。你可以在动态数据结构->课程中了解更多关于使用map的知识。关联数组:映射。

从字符串“test”获取散列的示例:

哈希<字符串> hash_fn;
size_t str_hash = hash_fn(“测试”; );
cout<<str_hash;


结果将是:“2949673445”,因此您可以从每个唯一的字符串中获得一个唯一的哈希值,该哈希值可用作  unordered_map 中的键。

对字符串进行哈希处理是将字符串表示为某个数字,每个字符串都是唯一的(我们假设冲突的可能性可以忽略不计)。这允许您在数据库中存储任何重要数据(如密码)而不是字符串,而是数字。如果攻击者获得了密码数据库的访问权限,这允许您保护密码,因为他不会获得密码本身,而只能获得密码的数字表示,并且几乎不可能通过其散列获得字符串(尤其是在不知道散列算法的情况下) ). 
多项式哈希最常用于编程竞赛问题。
确定字符串S的哈希函数的最佳方法之一如下:
h(S)  =  S[0]  +  S[1] * P  +  S[2] * P^2  +  S[3] * P^3  +  ...  +  S[N] * P^N