Порядок обхода unordered_map
Тест сравнивает строку отчёта с эталоном. Отчёт строится обходом std::unordered_map<std::string, int>, ключи добавляются в фиксированном порядке. Локально тест зелёный, на другой машине сборки — красный: строки те же, порядок другой.
Как правильно поступить?
- Отсортировать сам контейнер вызовом `std::sort` по его итераторам перед обходом
- Задать свою хеш-функцию: при равномерном хеше элементы лягут по корзинам в порядке вставки, и обход станет стабильным
- Не полагаться на порядок: собрать ключи в вектор и отсортировать либо взять `std::map`
- Зафиксировать порядок вызовом `reserve` на нужное число корзин перед вставками
