您可以将仿函数传递给std::sort 或为您的数据提供operator <:
struct MyClass
{
std::size_t arrivalTime;
std::size_t finishTime;
};
std::vector<MyClass> myClasses = //..
std::sort(myClasses .begin(), myClasses.end(),
[](const MyClass& lhs, const MyClass& rhs) {
return std::tie(lhs.finishTime, lhs.arrivalTime)
< std::tie(rhs.finishTime, rhs.arrivalTime);
});
或者干脆
bool operator< (const MyClass& lhs, const MyClass& rhs)
{
return std::tie(lhs.finishTime, lhs.arrivalTime)
< std::tie(rhs.finishTime, rhs.arrivalTime);
}
及以后:
std::sort(myClasses .begin(), myClasses.end());