我知道您可以将用户定义的类插入到 a 中std::vector
,然后重载排序机制,以便它在特定数据成员上进行比较。但是,您将如何对具有两个数据成员的std::vector<MyClass>
位置进行排序,MyClass
并且您想在第二个数据成员上添加“第二级”排序?那么对数据成员进行排序a
并且在哪里a
相等,然后对数据成员进行排序b
?
问问题
459 次
1 回答
9
使用创建自定义比较器std::tuple
#include <tuple>
//..
struct comp
{
bool operator()(const MyClass& lhs, const MyClass& rhs) const
{
return std::tie(lhs.a, lhs.b) < std::tie(rhs.a, rhs.b);
}
};
它将a
首先使用,然后是b
第二个
于 2013-09-30T21:31:10.583 回答