【发布时间】:2010-12-21 12:40:24
【问题描述】:
我有一双
我知道 pair.first 的值不能超过 1000。
我也知道字符串 pair.second 始终是 1 个单词。永远不要超过 1 个字。
因此,要为该对构造哈希值,我正在执行以下操作:
pair<int,string> p;
hash<char*> H;
hash_vale = H(p.second)*1000 + p.first;
我认为只要字符串的哈希值不太大并且 H(p.second) 将给出 1-1 映射,这将给出唯一值。这些假设是否有效?
谢谢,
【问题讨论】:
-
std::hash<char*>不是特化的,所以它和std::hash<void*>一样,因为它不检查字符串内容而只使用它的地址