如何在C ++ 0x中组合哈希值? [英] How do I combine hash values in C++0x?
本文介绍了如何在C ++ 0x中组合哈希值?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
C ++ 0x加入 hash< ...>(...)
。
C++0x adds hash<...>(...)
.
无法找到一个hash_combine函数,如 boost a>。什么是最干净的方式来实现这样的东西?也许,使用C ++ 0x xor_combine
?
I could not find a hash_combine function though, as presented in boost. What is the cleanest way to implement something like this? Perhaps, using C++0x xor_combine
?
推荐答案
做它喜欢助推器家伙做它:
Well, just do it like the boost guys did it:
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);
}
这篇关于如何在C ++ 0x中组合哈希值?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文