C++ std::sort如何处理对列表?
为什么: HowC++ 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
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)