Как отсортировать vector по значениям в map

210
28 марта 2018, 05:47

У меня есть вектор

std::vector <std::string> v; // ["a", "b", "c"]

и отображение, в котором ключи - элементы вектора, а значение - просто целое число

std::map <std::string, int> m; // {"a"=1, "b"=2, "c"=1}

Как мне отсортировать элементы вектора по числовым значениям в map?

Answer 1
sort(v.begin(),v.end(),
     [&m](const string& a, const string& b){return m[a] < m[b]; });

Примерно так... Ну, или если m - глобальная, то без &m в квадратных скобках.

READ ALSO
Как объявить массив лямбд

Как объявить массив лямбд

Заинтересовал такой теоретический вопрос - а как объявить массив лямбд? И можно ли это сделать в принципе? Например, объявляем массив, потом...

179
Сборка драйвера OCI для Qt

Сборка драйвера OCI для Qt

Возникла необходимость подключить Oracle БД к проектуИзучил документацию и форумы - начал собирать дрова через mingw

165
Зачем использовать &ldquo;|=&rdquo;, &ldquo;&amp;=&rdquo; и т.п. в C++ вместо &ldquo;=&rdquo;?

Зачем использовать “|=”, “&=” и т.п. в C++ вместо “=”?

Програмлю Arduino и читаю в интернете про PORTГоворят, что какая-то там стабильность будет, если писать вместо = - |=, или &=

123
Работа с файлами. Выделение предложения

Работа с файлами. Выделение предложения

Всем здравствуйтеС помощью текстового редактора Блокнот создать файл

164