将字符串标记为int以获得更快的哈希映射

时间:2013-05-02 17:59:56

标签: c++ python string hash dictionary

我有一个关于使用包含字符串作为键的哈希的问题。假设我有一个将字符串映射到双精度的哈希值。

问题是,我听说有人说最好将字符串标记为整数并使哈希映射为双精度而不是字符串为双精度?这在Python或C ++中通常会更快(2个问题)还是无关紧要。假设我们在C ++中使用boost unsorted_map,所以它就像Python字典。

如果密钥实际上是密切的(字符串,字符串) - > double或in c ++ unsorted_map>?

1 个答案:

答案 0 :(得分:0)

如果您对字符串进行标记,则应注意不要使用具有相同标记的不同字符串。 std :: unordered_map也将使用哈希进行快速搜索,但也将使用相同哈希但具有不同值的字符串。当然需要一些时间。

如果您能够以两个字符串永远不会具有相同标记的方式对字符串进行标记,那么使用带有整数的map作为键是非常好的主意。