хорошая хеш-функция для структуры ключа, которая имеет три целых

Для простой структуры C ++, которая имеет три целых числа для идентификации уникальной структуры, что может быть хорошей реализацией хеш-функции, если не известно слишком много о реалистических значениях a, b и c. Мне нужно использовать структуру в качестве ключа к unordered_map?

struct Key {

int a, b, c;

}

4

Решение

Передайте всю структуру в Murmurhash: https://sites.google.com/site/murmurhash/

Не пытайтесь смешивать значения самостоятельно (например, совет выше для умножения, сложения, xor и т. Д.). Весь смысл использования хэш-функции заключается в том, что это уже может смешивать их очень эффективно. Если вы предварительно смешаете, вы просто убираете полезную энтропию.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]