答案 0 :(得分:1)
std::sort
的相关重载是三元的:
template< class RandomIt, class Compare >
void sort( RandomIt first, RandomIt last, Compare comp );
所以你需要通过
之类的东西来调用它std::sort(vector.begin(), vector.end(), factor? first : second);
(提供first
和second
是匹配类型,因此第三个参数编译。
如果不是,您可以将它们包裹在std::function
或其他内容中。)