为什么必须在哈希表链接的C++代码中输入密钥 我只需要对C++代码进行一些说明。

为什么必须在哈希表链接的C++代码中输入密钥 我只需要对C++代码进行一些说明。,c++,hashtable,chaining,C++,Hashtable,Chaining,根据,, 我发现用户需要输入值和键。我能理解为什么用户需要输入值,但为什么世界上的用户需要输入键 1我们知道元素将通过使用哈希函数如:modulo:element%table_SIZE定位到哈希表中。但在这段代码中,它们要求用户输入要将其值放入哈希表中的位置数: "Enter key at which element to be inserted: "; 据我所知,由于哈希函数的存在,用户永远不会被允许为其元素输入所选的位置或键 我很迷恋这个问题,所以请帮帮我,我知道这里有很多专家,所以这就是

根据,, 我发现用户需要输入值和键。我能理解为什么用户需要输入值,但为什么世界上的用户需要输入键

1我们知道元素将通过使用哈希函数如:modulo:element%table_SIZE定位到哈希表中。但在这段代码中,它们要求用户输入要将其值放入哈希表中的位置数:

"Enter key at which element to be inserted: ";
据我所知,由于哈希函数的存在,用户永远不会被允许为其元素输入所选的位置或键


我很迷恋这个问题,所以请帮帮我,我知道这里有很多专家,所以这就是我在这里寻找答案的原因。

一般来说,哈希表存储键值对


也许在您的心智模型中有一个简化版的哈希表,其中键是根据值计算的?

通常的方法是从键计算哈希值,从哈希值我们计算首选索引到表中,再加上一系列替代索引。哈希值的计算方式应尽可能接近随机查找。首选索引通常只是哈希值模表大小。替代索引使用或多或少复杂的算法计算——在最简单的情况下,第i个替代地址的哈希值+i模表大小

我从未见过哈希表实现要求用户或软件开发人员提供替代索引


实际上,哈希表之外的任何数据存储,例如在双链接列表中,都已经过时了。您只需使哈希表足够大,哈希函数足够好,以避免冲突,如果数据量增加,那么您会在用户背后自动分配一个更大的表。

从文章中我看到这是HashMap,用于获取基于键的值。你们要找的可能是HashSet。我猜你们不明白地图是什么。实际上我希望用户只插入像这个应用程序一样的值。谢谢你提到HashMap,我以前不知道,在这种情况下,网站使用了非常糟糕的措辞。数据不是存储在一个键上,而是存储在一个键下。基础英语。在电话簿上,我的名字在第73页,但在钥匙啃咬器下面;您只需使哈希表足够大,哈希函数足够好,以避免冲突-这根本不现实。。你从哪里听说的?