C ++ равенство в std :: tr1 :: unordered_map - PullRequest
2 голосов
/ 20 апреля 2011

Есть ли причина, по которой std :: tr1 :: unordered_map исключил оператор равенства (==), который существует для std :: map?

Какой хороший способ реализовать это?Я думаю о создании двух наборов unordered_map :: value_type, инициализации их из двух hash_maps и последующей проверке на равенство двух наборов

1 Ответ

6 голосов
/ 20 апреля 2011

Это было решение комитета, что imho была ошибкой. Это было исправлено для std :: unordered_map (в C ++ 11 ).

Использование std::equal не является хорошим способом найти равенство неупорядоченных контейнеров. В конце концов, они могут быть не в том же порядке.

N3068 - это документ, который ввел сравнения равенства для неупорядоченных контейнеров. Объясняется мотивация и методика определения равенства.

...