Какова цель std :: hash и / или boost :: hash?

Зачем предоставлять хэш-функцию без указания какой-либо реализации ссылки, а также без указания алгоритма ссылки (md5, sha256 и т. Д. И т. Д.)?

Также есть аналогичные функции для структур данных, такие как стандарт C ++, совместимый std::unordered_map/set/multimap/multiset::hash_function,

Так что я не получаю это:

  • Зачем предоставлять такие недокументированные методы
  • Детали реализации являются основополагающими для правильного использования хеш-функций, с точки зрения программиста, какова цель этих функций
  • Эта функция может быть связана с конкретным алгоритмом?

0

Решение

Зачем предоставлять такие недокументированные методы

Они не без документов.

Детали реализации являются основополагающими для правильного использования хеш-функций, с точки зрения программиста, какова цель этих функций

Реализация не определена, они просто должны использоваться вместе с неупорядоченными контейнерами. Они должны быть как можно более хорошими хэш-функциями, чтобы эффективно распределять элементы в сегменты. Все остальное не указано.

Обратите внимание, что пользователь должен предоставлять их при использовании неупорядоченных контейнеров с пользовательские типы.

Эта функция может быть связана с конкретным алгоритмом?

Почему бы и нет?

3

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

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

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