如果我有一对矢量:
std::vector<std::pair<int, int> > vec;
Run Code Online (Sandbox Code Playgroud)
是否有简单的方法根据对的第二个元素按递增顺序对列表进行排序?
我知道我可以编写一个可以完成工作的小函数对象,但是有没有办法使用STL的现有部分并std::less
直接进行工作?
编辑:我明白我可以编写一个单独的函数或类来传递给第三个参数进行排序.问题是我是否可以用标准的东西来构建它.我真的看起来像:
std::sort(vec.begin(), vec.end(), std::something_magic<int, int, std::less>());
Run Code Online (Sandbox Code Playgroud) 如果我想通过它所拥有的两种变量之一对UDT的向量进行排序,标准库排序是否可以执行此操作,或者我是否需要编写自己的排序函数.
例如,如果你有
struct MyType{
int a;
int b;
};
vector<MyType> moo;
// do stuff that pushes data back into moo
sort(moo.begin(), moo.end()) // but sort it by lowest to highest for a, not b
Run Code Online (Sandbox Code Playgroud)
那么这可能使用stdlib排序吗?谢谢.