Здравствуйте, Qbit86, Вы писали:
MTD>>Назначение функции hash — дать хеш.
Q>Назначение функции hash — быть использованной стандартной библиотекой: «defines the default hash function used by the standard library» ©
Какой авторитетный источник. В стандарте тоже написано?
Q>>>Будут при arity(k) > arity(M). Это пример был к тому, что твоя identity — никак не «идеальная».
MTD>>Да, но лучше того, что сделали в Майкрософт.
Q>Если используются просто как контрольная сумма, то конечно лучше.
Контрольная сумма и хеш вещи разные, созданы для разного. Задача хеша — мапить ключ в хеш, задача контрольной суммы — проверка целостности.
MTD>>Мне нужно через std::hash — я обобщенный код пишу.
Q>Значит, тебе не нужно через std::hash, а нужно через свою хэш-функцию со специализацией для size_t.
Я не хочу переписывать стандартную библиотеку.
Q>И тем не менее, случаи biased-данных, что ломают наивные сортировки или хэш-таблицы, периодически встречаются. Не у всех и не у каждого, но не исчезающе редко.
Из практики есть пример, когда обсуждаемая хеш-функция работала плохо? Любопытно, квиксорт — наивная сортировка?