C ++ 0x添加hash<...>(...)。但是我无法找到一个hash_combine功能,如boost所示。实现这样的最干净的方法是什么?也许,使用C ++ 0x xor_combine?
3 回答
守着一只汪
TA贡献1872条经验 获得超3个赞
好吧,就像助推器一样去做:
template <class T>
inline void hash_combine(std::size_t& seed, const T& v)
{
std::hash<T> hasher;
seed ^= hasher(v) + 0x9e3779b9 + (seed<<6) + (seed>>2);
}
- 3 回答
- 0 关注
- 668 浏览
添加回答
举报
0/150
提交
取消