Здравствуйте, Barbar1an, Вы писали:
B>если у меня есть два std::map или std::set одинакового типа и мне нужно их сравнить я ж могу сделать простую последоватлеьную итерацию по элементам? т.е. если там бинарное дерево то порядок обхода одинаковых будет всегда одинаков?
Да, map и set упорядочены.
B>а вот с хешмэпами и хешсетами так низя да? потому что хеши будут одинаковые для одинаковых ключей, но порядок в конкретном бакете будет какой угодно да?
И с multimap и multiset та же проблема — в пределах одного класса эквивалентности элементы лежат как угодно.
(С другой стороны, — если элементы эквивалентны, то можно считать их неразличимыми, и тупо сравнить количество...)
Более того, если хеш-функции не совпадают (а текущая хеш-функция — это наперёд заданная, по модулю от количества корзин; разное количество корзин — разные функции), то даже все-со-всеми в рамках одной корзины сравнивать бесполезно.
Если коллизий мало, то пару хеш-таблиц можно сравнить (на равенство) путём забега по одной и проверке вхождений в другую. Ну и, разумеется, сверке общего размера таблиц.