c++ - 如何在 C++0x 中组合哈希值?

标签 c++ c++11 boost hash std

C++0x 添加 hash<...>(...) .

我找不到 hash_combine功能,如 boost 中所示.实现这样的事情的最干净的方法是什么?也许,使用 C++0x xor_combine ?

最佳答案

好吧,就像提拔的人那样做:

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++ - 如何在 C++0x 中组合哈希值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2590677/

相关文章:

c++ - GUI系统架构?

c++ - std::multiset<int> 与 std::map<int, std::size_t> 用于保持多个可重复整数值

c++ - 对同一链中的 boost::asio::yield 执行顺序感到困惑

c++ - 是否允许在 JSON 文件中对 boost read_json 进行注释?

c++ - boost、c++ 和 fatal error : boost/random/uniform_int_distribution. hpp:没有这样的文件或目录

c++ - 从 3D 对象获取 2D 凹多边形

c++ - 如何使用美元/欧元符号登录代码来初始化变量?

c++ - 使用 SFML 和纹理构建游戏拒绝绘制

c++ - XCode 无法编译 Poco 项目, undefined symbol

c++ - 在 Windows 上编译 C++ (Mingw/Cygwin)