Мне было интересно, есть ли способ сортировки моего списка пар на основе второго элемента. Вот код:
std::list<std::pair<std::string, unsigned int>> words;
words.push_back(std::make_pair("aba", 23);
words.push_back(std::make_pair("ab", 20);
words.push_back(std::make_pair("aBa", 15);
words.push_back(std::make_pair("acC", 8);
words.push_back(std::make_pair("aaa", 23);
Я хотел бы отсортировать слова моего списка по целочисленному элементу в порядке убывания, чтобы мой список был похож на:
<"aba", 23>,<"aaa", 23>,<"ab", 20>,<"aBa", 15>,<"acC", 8>
Также есть их можно отсортировать как по первому, так и по второму элементу, так что сначала они сортируются по вторым элементам (по целочисленному значению), а затем, если есть две или более пар с одинаковым вторым элементом (т.е. одинаковым целочисленным значением), тогда сортируйте те, которые основаны на первом элементе в алфавитном порядке, тогда первые 2 пары в моем отсортированном списке выше поменялись местами, поэтому:
<"aaa", 23>,<"aba", 23>,<"ab", 20>,<"aBa", 15>,<"acC", 8>