【发布时间】:2018-07-27 07:22:16
【问题描述】:
我有一个自定义比较功能:
bool compare(int a, int b){
if(a>2*b) return true;
return false;
}
现在我想像这样使用这个函数:
vector<int> numbers;//say it contains random numbers
sort(numbers.begin(), numbers.end(), compare(a, b));//a and b are the numbers that sort function currently compares to each other
很明显,这段代码是行不通的,因为程序不知道 a 和 b 是什么。我的问题是,如何传递所需的数字来比较函数?
【问题讨论】:
-
你没有。
std::sort这样做。 -
只需
sort(numbers.begin(), numbers.end(), compare)工作。 -
顺便说一句,如果这是你真正的函数,你就有麻烦了——
compare()函数需要实现一个总排序,而这个不需要。
标签: c++ function sorting parameters parameter-passing