История изменений
Исправление fsb4000, (текущая версия) :
А зачем тогда unordered_multiset? Насколько я понял доки (особо не вчитывался), при хэш-коллизии в unordered_set остаётся один элемент?
Нет. Посмотри ещё раз пример, там у всех хеш ноль, но строки все на месте.
https://gcc.godbolt.org/z/CLnpNB
Уникальность гарантируется не хешем, а оператором == или своим оператором сравнения как в примере.
multiset, это чтобы хранить разные элементы, но для которых мы определили ==.
Пример с multiset, вот у нас есть лекарства. Мы сделали им хеш как их цена, operator ==, как их название, но они могут различаться например страной производства. И мы можем получить список всех одинаковых из multiset: https://en.cppreference.com/w/cpp/container/unordered_multiset/equal_range
Точно ничего не потеряется из-за одинакового хэша в unordered_set
Исходная версия fsb4000, :
А зачем тогда unordered_multiset? Насколько я понял доки (особо не вчитывался), при хэш-коллизии в unordered_set остаётся один элемент?
Нет. Посмотри ещё раз пример, там у всех хеш ноль, но строки все на месте.
https://gcc.godbolt.org/z/CLnpNB
Уникальность гарантируется не хешем, а оператором == или своим оператором сравнения как в примере.
multiset, это чтобы хранить разные элементы, но для которых мы определили ==.
Пример с multiset, вот у нас есть лекарства. Мы сделали им хеш как их цена, operator ==, как их название, но они могут различаться например страной производства. И мы можем получить список всех одинаковых из multiset: https://en.cppreference.com/w/cpp/container/unordered_multiset/equal_range
Точно ничего не потеряется из-за одинакового хэша.