【发布时间】:2016-09-03 04:19:57
【问题描述】:
我需要使用多个哈希表,所以在c++ 中,我通常会使用std::unordered_map。到目前为止,我可以理解我可以在 Python 中使用字典,所以我们假设以下代码:
my_dict_1 = {}
my_dict_1['foo'] = 1
my_dict_2 = {}
my_dict_2['foo'] = 2
这两个字典是否会使用不同的哈希函数(注意键是相同的),因此它们可以被认为是两个不同的哈希表(我的意思是它们实际上会以不同的方式存储数据) ?
编辑:
是的,字典当然是两个不同的对象,但问题在于它们将用于存储数据的技术!
【问题讨论】:
-
它们显然不是同一个哈希表。
-
@JohnColeman 感谢您的支持。你能指出一些这样说的文件吗?我是python 的新手,对我来说还不是很清楚。 :/ 你的意思是每个字典都有自己的哈希函数,对吧?我想知道它们是否也独立,但这是为了以后.. :)
-
“不同的哈希函数”是什么意思?哈希函数是一段代码(它是实现定义的)。不过,它们绝对是不同的字典(哈希表)(因为它们是通过构造两个不同的对象)。顺便说一句,它与字典没有任何关系。
-
我的意思是每个字典使用的哈希函数都不同。如果使用字典作为哈希表,然后使用另一个,我想知道它们会以不同的方式存储数据,因为不同的静默函数。希望现在更清楚@importthis。
-
我真的很好奇你为什么要问这个问题——为什么哈希函数会不同,又会有什么不同?散列的目的是快速测试两个键是否相同,为每个字典设置不同的散列有什么好处?
标签: c++ python dictionary hash hashtable hash-function