【发布时间】:2012-09-25 19:43:43
【问题描述】:
我正在编写语言解释器。 有问题:我想创建类型字典,您可以在其中按索引放置任何类型的值,任何类型的值(简单类型的简单 [int,float,string] 或复杂 [list,array,dictionary] 或复杂的简单类型...)。这与 python-lang 中的相同。 我应该使用什么哈希函数算法?
对于字符串,有许多哈希示例 - 最简单的:所有字符的总和乘以 31,然后除以 HASH_SIZE,这个简单的数字。
但是对于不同的类型,我认为,它必须是更复杂的算法。 我找到了 SHA256,但不知道如何使用“unsigned char [32]”结果类型在哈希表中进行寻址 - 它比计算机中的 RAM 多得多。 谢谢。
【问题讨论】:
-
SHA 系列哈希是加密哈希。它们不适合哈希表实现。
-
实际上,在 Python 中,您不能将列表、数组或字典存储在哈希表中——您可以存储复杂的对象,但它们必须是不可变的。
标签: c++ hash dictionary hashtable hash-function