3
#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吗?当我们试图传递一个函子时,哪一个是更标准的方式?

4

2 回答 2

10

通常,按引用传递和按值传递仅指传递变量,而不是函数。(模板函数引入了一些复杂性,但这是另一个讨论。)在这里,您将myfn作为指向函数的指针传递。如果你改用没有区别&myfn。编译器将隐式转换myfn为指向具有该名称的函数的指针。

于 2012-08-28T16:47:57.160 回答
6

如果我们将 myfn 或 &myfn 传递给 min_element 有什么区别吗?

无论如何,不myfn​​可以隐式转换为指向函数的指针。所以根本没有区别。

于 2012-08-28T16:47:39.953 回答