Как правильно отмечают комментарии, на unordered_map
нет даже удаленно переносимого способа сортировки соответствия.Таким образом, сортировка не определена.
Однако в стране неопределенных, иногда по разным причинам мы можем быть спокойны с тем, что делает наша реализация , даже если не указано и не переносимо.Итак, кто-то может взглянуть на вашу реализацию карты и использовать ее детерминизм в векторе?
Проблема с unordered_map
в том, что это хеш.Каждый элемент, вставленный в него, будет хеширован, а хеш (сопоставленный с пространством ключа) будет использоваться как индекс во внутреннем массиве.Это выглядит многообещающе, и было бы многообещающе, если бы не столкновение.В случае столкновения клавиш элементы помещаются в список столкновений, и этот список вообще не сортируется.Таким образом, порядок итерации по столкновению будет определяться порядком вставок (обратный или прямой).Из-за этого, при отсутствии информации о порядке вставок, было бы невозможно имитировать порядок unordered_map
, даже для конкретной реализации.