相关疑难解决方法(0)

如何根据对的第二个元素对对向量进行排序?

如果我有一对矢量:

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)

c++ stl stdvector

125
推荐指数
5
解决办法
12万
查看次数

标准库排序和用户定义类型

如果我想通过它所拥有的两种变量之一对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排序吗?谢谢.

c++

4
推荐指数
1
解决办法
3821
查看次数

标签 统计

c++ ×2

stdvector ×1

stl ×1