【发布时间】:2010-12-04 22:37:57
【问题描述】:
.NET 框架有一个 Dictionary
如果我自己编写,我将如何计算密钥的哈希码?像 .NET 一样,我想在类型上使用 GetHashCode() 方法。
template<typename TKey,typename TVal>
class Dictionary
{
public:
void Add(TKey key, TVal val){
int hashCode = key.GetHashCode();
/* .... */
}
}
如果我确实喜欢上面的方法并且给定的键类型没有 GetHashCode() 方法,编译器会抛出错误。但是当 key 是 int 这样的原始类型时,此方法将不起作用。我可能需要通过提供 GetHashCode 来为 int 编写一个包装器。
我想知道 C++ 的实现方式是什么?
有什么想法吗?
【问题讨论】:
标签: .net c++ algorithm hashtable