【发布时间】:2020-05-18 22:07:09
【问题描述】:
我想知道是否有办法根据第二个元素对我的配对列表进行排序。这是一个代码:
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>
此外,是否可以同时按第一个和第二个元素对它们进行排序,以便它首先按第二个元素排序(按整数值),然后如果有两个或多个对具有相同的第二个元素(即相同的整数value),然后它会根据第一个元素按字母顺序对它们进行排序,然后我上面排序列表中的前 2 对将交换,所以:
<"aaa", 23>,<"aba", 23>,<"ab", 20>,<"aBa", 15>,<"acC", 8>
【问题讨论】:
-
这能回答你的问题吗? How does std::sort work for list of pairs?
-
使用
std::vector而不是std::list会改变答案,请考虑为std::vector提出一个全新的答案。
标签: c++ list sorting stl containers