C 0x 中的哈希值组合
在 C 0x 中,添加 hash<...>(...) 引入操纵哈希值的有价值的工具。然而,由于缺少类似于 Boost 中提供的 hash_combine 函数,程序员不得不寻求替代方法。本文探讨了使用 C 0x 的 xor_combine 的干净实现。
解决方案的关键在于模仿 Boost 的实现:
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); }
该函数使用 std::hash
以上是如何有效组合C 0x中的哈希值?的详细内容。更多信息请关注PHP中文网其他相关文章!