Я хочу знать, как я могу отсортировать unordered_map в C ++ на основе его значений (не ключей, поскольку для этого можно использовать карту). Я понимаю, что одним из решений является копирование его значений в вектор, а затем сортировка этого вектора. Но есть ли какая-либо функция, чтобы сделать это?
Нет функции, но это простой двухслойный:
auto vec = std::vector<std::pair<TKey, TValue>>(begin(map), end(map)); std::sort(begin(vec), end(vec), [](auto a, auto b) { return a.second < b.second; });