Re: Сранивание просто мэпов и хешмэпов
От: Кодт Россия  
Дата: 28.02.17 13:23
Оценка: 4 (1)
Здравствуйте, Barbar1an, Вы писали:

B>если у меня есть два std::map или std::set одинакового типа и мне нужно их сравнить я ж могу сделать простую последоватлеьную итерацию по элементам? т.е. если там бинарное дерево то порядок обхода одинаковых будет всегда одинаков?


Да, map и set упорядочены.

B>а вот с хешмэпами и хешсетами так низя да? потому что хеши будут одинаковые для одинаковых ключей, но порядок в конкретном бакете будет какой угодно да?


И с multimap и multiset та же проблема — в пределах одного класса эквивалентности элементы лежат как угодно.
(С другой стороны, — если элементы эквивалентны, то можно считать их неразличимыми, и тупо сравнить количество...)

Более того, если хеш-функции не совпадают (а текущая хеш-функция — это наперёд заданная, по модулю от количества корзин; разное количество корзин — разные функции), то даже все-со-всеми в рамках одной корзины сравнивать бесполезно.

Если коллизий мало, то пару хеш-таблиц можно сравнить (на равенство) путём забега по одной и проверке вхождений в другую. Ну и, разумеется, сверке общего размера таблиц.
Перекуём баги на фичи!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.