我正在尝试了解 find_if 函数的工作原理,并且我正在遵循此参考中的示例:
http://www.cplusplus.com/reference/algorithm/find_if/
当我遵循上述参考中给出的示例时,这意味着当我使用 main() 时,一切正常。但是当我尝试将该示例包含在一个类中时(如下所示),我在编译时收到此错误:
error: argument of type ‘bool (A::)(int)’ does not match ‘bool (A::*)(int)’
在我的课堂上:
bool A::IsOdd (int i) {
return ((i%2)==1);
}
void A::function(){
std::vector<int> myvector;
myvector.push_back(10);
myvector.push_back(25);
myvector.push_back(40);
myvector.push_back(55);
std::vector<int>::iterator it = std::find_if (myvector.begin(), myvector.end(), IsOdd);
std::cout << "The first odd value is " << *it << '\n';
}
谁能帮我理解为什么会这样?