Ну как ты будешь например инты в хэштаблицу складывать? Тебе придется либо выделять память под INT_MAX элементов, либо сталкиваться с тем, что у тебя в одной ячейке хэш таблицы лежат несколько интов
То есть, unordered_map делает хэш по моей функции, ищет в списке такой-то хэш. Потом сравнивает элементы (operator==), по которым был сделан этот хэш и если они не совпадают, то …?
Вы просто думаете, что коллизии разрешаются в случае когда у нас одинаковое значение у хеша элементов, но это не так Коллизии решаются тогда, когда у нас место в массиве одно и тоже для двух элементов А то, что хэш одинаковый — это частный случай
Так ведь самый надёжный способ – использовать несколько алгоритмов, например crc32, md5 и sha1. Вы почти никогда не сможете получить одинаковый результат от трёх хэш-алгоритмов