我正在尝试自己实现哈希映射,我想使用数组来做到这一点。但我目前正在处理的问题是如何将密钥散列为哈希值。我是否需要使用不同的方法来执行散列给出不同的类型,如'int','char','string','* pointer',还是有一种方法可以让我一起做到这一点?我试图使用 reinterpret_cast(表达式),但它不适用于'char'。
提前致谢。
答案 0 :(得分:0)
STL使用已为大多数基本类型定义的模板类。实际上,在实时场景中,如果超出这些范围,则必须为自己的数据类型实现它。
模板类为hash<T>
,请查看here。
请注意,模板不能用作Java泛型,你可以填补这个漏洞。对于您的特定类型的模板专门化,在这种情况下,您没有适用于所有类型的实现(除非您为要存储在地图中的对象定义公共基类,或者,在评论中建议你进入较低级别,并获取类变量的原始字节。)