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関数へのポインターとして渡しています。代わりに使用しても違いはありません&myfnmyfnコンパイラーは、その名前の関数へのポインターに暗黙的に変換します。

于 2012-08-28T16:47:57.160 に答える
6

myfnまたは&myfnをmin_elementに渡す場合、違いはありますか?

とにかく、No。は暗黙的に関数へのポインタにmyfn変換されます。したがって、まったく違いはありません。

于 2012-08-28T16:47:39.953 に答える