Неожиданное столкновение с 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
, Я использую это неправильно? Разве я не должен как-то "затравить" это?