我对 C++ 和 STL 很陌生。这里有一些我不明白的地方:
class Foo
{
public:
void operator()(int& bar) { std::cout << bar << std::endl; }
};
int main(int ac, char* av[])
{
std::vector<int> v;
v.push_back(1);
v.push_back(2);
v.push_back(3);
std::for_each(v.begin(), v.end(), Foo); // Invalid argument Foo
Foo foo;
std::for_each(v.begin(), v.end(), foo); // Valid argument foo
return 0;
}
为什么第一次尝试会给出 Invalid Argument 错误?非常感谢!