Как я комбинирую значения хэш-функции в C++ 0x?

C++ 0x добавляет hash<...>(...).

Я не мог найти a hash_combine функционируйте хотя, как представлено в повышении. Что самый чистый путь состоит в том, чтобы реализовать что-то вроде этого? Возможно, использование C++ 0x xor_combine?

78
задан plasmacel 20 October 2018 в 17:27
поделиться

1 ответ

Что ж, просто делайте это так, как это делали ребята из наддува:

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);
}
83
ответ дан 24 November 2019 в 10:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: