C++ std::sort如何处理对列表?

C++ std::sort如何处理对列表?,c++,algorithm,sorting,stl,std,C++,Algorithm,Sorting,Stl,Std,为什么: Howstd::sort获取如何对我的int字符串进行排序?如何使我的某一类人成为成对的第一个?有没有一种方法可以使用std::sort按second排序?因为是为std::pair定义的,它是基于std::pair::first然后是std::pair::second(词典编纂),所以您的代码是作为标准的。要根据std::pair的第二部分对其进行排序,可以尝试以下方法: std::sort(list.begin(), list.end(), [](const std::pair&l

为什么:

How
std::sort
获取如何对我的
int字符串进行排序?如何使我的某一类人成为成对的
第一个
?有没有一种方法可以使用
std::sort
second
排序?

因为是为
std::pair
定义的,它是基于
std::pair::first
然后是
std::pair::second
(词典编纂),所以您的代码是作为标准的。要根据
std::pair
的第二部分对其进行排序,可以尝试以下方法:

std::sort(list.begin(), list.end(), [](const std::pair<int, string> &x,
                                       const std::pair<int, string> &y)
{
    return x.second < y.second;
});
std::sort(list.begin()、list.end()、[](const std::pair&x、,
const std::pair&y)
{
返回x.second
有一种“明显的”产品类型排序是由组件的相应排序引起的,即:

(a,b)<(c,d)a

这是
操作符
std::pair
使用的排序,它有一个
操作符。您可以尝试为
布尔操作符提供一个专门化,或者查看此post-@MarkRansom的可接受答案,这样他就有了一个
向量
命名列表
std::sort
不适用于
std::list
,因为它需要随机访问迭代器。
1
2
2
5
6
std::sort(list.begin(), list.end(), [](const std::pair<int, string> &x,
                                       const std::pair<int, string> &y)
{
    return x.second < y.second;
});
(a, b) < (c, d)  <=>  a < c || (a == c && b < d)