c++ - 索引哈希表

标签 c++ function hashtable

我刚刚开始学习哈希表,到目前为止,我知道你把你​​想要哈希的对象通过一个哈希函数,然后使用它返回的索引来得到你想要的对应对象。虽然有些事情我不明白:

您使用什么结构来存储对象,以便您可以使用哈希函数返回的代码快速索引它们?我唯一能想到的就是使用一个数组,但是要处理所有的键,你必须分配一个 9999999999999 个元素大或类似的东西。或者它是否像遍历链表或其他东西一样简单,并将每个元素中的 ID 与该哈希函数中的键进行比较?如果是这样,那似乎有点低效,不是吗?

最佳答案

通常,您使用数组(或类似于 vector 的东西)。你选择一个合理的大小(例如,比你期望的项目数量大 20%)和一些解决冲突的方法,当/如果两个键产生相同的哈希值(例如,每个位置都是链表的头部)散列为该值的项目)。

关于c++ - 索引哈希表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3134738/

相关文章:

c++ - C++类中的变量返回类型

c++ - C++ 中 operator new[] 的参数值

python:如何更改函数输入参数的值?

html - Powershell-帮助将哈希表转换为HTML

c++ - 提取cpp中的所有包含文件

c# - 为什么 `Predicate<T>` 与 `Func<T,bool>` 不匹配?

javascript - JS中私有(private)方法的一种尝试

c - 计算 C Union 的哈希码的有效方法是什么?

hashtable - 用两个数组创建一个哈希表

c++ - 在数组 C++ 中使用删除关键字