您的代码中有一处错误。std::sort
函数的第三个参数应该是一个可调用对象(函数或函数对象),而不是条件表达式。
如果您想使用条件表达式来进行比较排序,可以使用 lambda 表达式或者自定义的比较函数对象。下面是使用 lambda 表达式的示例:
std::sort(allmax_cp.begin(), allmax_cp.end(), [](const auto& a, const auto& b) {
return a > b ? a : b;
});
或者使用自定义的比较函数对象:
struct MaxComparator {
template <typename T>
bool operator()(const T& a, const T& b) const {
return a > b ? a : b;
}
};
std::sort(allmax_cp.begin(), allmax_cp.end(), MaxComparator());
请根据您的需求选择其中一种方式,并将其应用到您的代码中。
内容由零声教学AI助手提供,问题来源于学员提问