据我所知,您可以将用户定义的类插入到std::vector
中,然后重载排序机制,以便对特定数据成员进行比较。但是,如何排序std::vector<MyClass>
MyClass
哪里有a
有两个数据成员,并且您想在第二个数据成员上添加“第二级”排序?那么对数据成员a
和b
相等的位置进行排序,然后对数据成员{{1}}进行排序?
答案 0 :(得分:9)
#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
秒