Хеш-функции STL - PullRequest
       4

Хеш-функции STL

15 голосов
/ 13 апреля 2011

Имеются ли в STL какие-либо хеш-функции, доступные для общего доступа?

Я знаю, что есть некоторые нестандартные реализации, использующие значения хеша (например, boost :: hash_map), и MSVC8 реализуетверсия hash_map / hash_set / и т.д.

Но существуют ли какие-либо хеш-функции , которые определены в C ++ 98 STL?

Если нет, то каковы лучшие не-C ++ 98 источникиНадежная хеш-функция?

Порядок предпочтительных источников (от наиболее приемлемых до наименьших): Boost, C ++ 0x, стандарт STL, TR1, другие сторонние.

Ответы [ 3 ]

16 голосов
/ 13 апреля 2011

для суммирования:

И все они предназначены для хэшированных ассоциативных контейнеров, а не для криптографии.

3 голосов
/ 13 апреля 2011

Я полагаю, вы ищете хеш-функции для хеш-таблиц, а не для криптографии, правильно?

В таком случае, как насчет boost :: hash ?

В документации сказано, что она совместима с хешем TR1, который должен стать частью будущего стандарта C ++ 0x.Это означает, что он, вероятно, уже найден во многих компиляторах.

Для криптографических хэшей, похоже, есть реализация SHA-1 в Boost, но если вам нужны тяжелые весы, нужно использовать выделенную библиотеку., например Crypto ++ .

0 голосов
/ 13 апреля 2011

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

...