【发布时间】:2020-08-31 17:24:59
【问题描述】:
我认为这种设计选择背后是有原因的。 Boost seems to have an implementation for it,因此应该可以使用向量作为哈希表键。应用于数组的散列函数是否有任何理论属性使它们更容易发生冲突或其他不良行为?
【问题讨论】:
-
我认为没有任何理由不能使用向量作为 unordered_map 的键;你只需要指定一个哈希函数来计算一个向量的哈希值。
-
你能提供一个适合向量的哈希函数的例子吗?
-
不是恒定的时间复杂度似乎可能会影响不将
std::hash专门用于std::vector的决定,确保用户知道如果他们想使用他们会进入什么一个作为钥匙。不过,这是一个猜测。 -
很好的观察@chris
-
您需要为此滚动自己的哈希函数。一点都不难。