【发布时间】:2013-10-06 21:39:48
【问题描述】:
我知道您可以将用户定义的类插入到 std::vector 中,然后重载排序机制,以便它在特定数据成员上进行比较。但是,您将如何对std::vector<MyClass> 进行排序,其中MyClass 有两个数据成员,并且您想在第二个数据成员上添加“第二级”排序?那么对数据成员a 和a 相等的地方进行排序,然后对数据成员b 进行排序?
【问题讨论】:
-
重载排序机制允许您在两个正在比较的对象上执行任意代码。您应该可以根据需要添加任意数量的“级别”。
-
就像您对单个成员进行比较一样。我建议先学习如何做到这一点(SO上有多个关于此的问题),然后只需修改您编写的仿函数以比较第二个成员(如果第一个成员相等)。