Chcę wiedzieć, że jak mogę posortować UnorderDed_map w C ++ na podstawie jego wartości (nie klucze, ponieważ mapa może być używana do tego). Rozumiem, że jednym rozwiązaniem jest skopiowanie jego wartości do wektora, a następnie sortować ten wektor. Ale czy istnieje jakaś funkcja?

1
Arun Suryan 19 marzec 2020, 11:39

1 odpowiedź

Najlepsza odpowiedź

Nie ma funkcji, ale jest to prosty dwupiniarowany:

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; });
3
Konrad Rudolph 19 marzec 2020, 08:49