#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转换为指向具有该名称的函数的指针。

10-07 18:52