2013-03-29 141 views
3

是否可以將函數定義作爲參數傳遞,如果有的話,那麼這個語法是什麼?如果不是,那是什麼原因?我想這樣做:C++:在函數調用中聲明函數

double arr1[10], arr2[10]; 

std::equal(arr1, &(arr1[5]), arr2, (bool(*)(double a, double b){return a == -b;}); 

回答

5

您可以使用lambda表達式爲:

std::equal(arr1, arr1 + 5, arr2, [](double a, double b) { return a == -b; }); 
+1

我覺得你必須提到這是一個C++ 11功能。 – Shoe

+1

@Jueecy:我認爲OP應該提及她是否想要一個老版本的語言的解決方案:-) –

+0

這很酷,謝謝,但你說得對,我應該提到我是在一個解決方案涉及C++ 11。 :) – Alex