#include <iostream>
#include <algorithm>
using namespace std;
bool myfn(int i, int j) { return i<j; }
int main () {
int myints[] = {3,7,2,5,6,4,9};
// using function myfn as comp:
cout << "The smallest element is " << *min_element(myints,myints+7,myfn) << endl;
cout << "The largest element is " << *max_element(myints,myints+7,myfn) << endl;
return 0;
}
考虑到上面的代码,如果我们将
myfn
或&myfn
传递给min_element
,有什么区别吗?当我们尝试通过仿函数时,哪种方法更标准? 最佳答案
通常,按引用传递和按值传递仅指传递变量,而不是函数。 (模板函数带来了一些复杂性,但这是另一个讨论。)在这里,您将myfn
传递为函数的指针。如果您使用&myfn
,则没有任何区别。编译器将隐式将myfn
转换为指向具有该名称的函数的指针。