Разработаны два способа доступа для unordered_map (ака хэш-таблица) в C++.
Первый способ по номеру ключа, но необходим предварительный вызов .toSortedSet(), второй способ - выборка всех пар ключ:значение по определённому условию.
Возможные проблемы:
-
Нет проверки, был ли вызван .toSortedSet() повторно, после изменения ключей (и в целом данных HashMap).
-
В качестве разделителя для условия могут выступать не просто любые символы, но и qwertyuiopasdfghjklzxcvbnm (хоть весь набор клавиатуры).
Код был протестирован на тестах UnitTest.cpp, результат работы тестов: https://i.imgur.com/hnqLaLO.png
Сам класс-расширение хранится в SpecialHashMap/SpecialHashMap.h, использует класс SpecialHashMap/Pair.h.
Так как в качестве ключа всегда подаётся std::string, указываеть в параметрах нужно лишь тип значения, например:
SpecialHashMap<double> map;