Неожиданное столкновение с std :: hash

Я знаю, что хеширование бесконечного числа строк в 32b int должно вызывать коллизии, но я ожидаю от функции хеширования хорошего распределения.

Разве не странно, что эти 2 строки имеют одинаковый хеш?

size_t hash0 = std::hash<std::string>()("generated_id_0");
size_t hash1 = std::hash<std::string>()("generated_id_1");
//hash0 == hash1

Я знаю, что могу использоватьboost::hash<std::string> или другие, но я хочу знать, что не так сstd::hash, Я использую это неправильно? Разве я не должен как-то "затравить" это?

Ответы на вопрос(5)

Ваш ответ на вопрос