我必须将一个参数的成员fn的地址传递给std :: for_each。我该怎么做呢?C++ STL for_each应该带指针指向一个参数的成员函数
class A{
void load()
{
vector<int> vt(10,20);
std::for_each(vt.begin(), vt.end(), &A::print);
//It didnt work when i tried mem_fun1(&A::print)
}
void print(int a)
{
cout<<a;
}
};
感谢
问题是,mem_fun将其应用在一个实例,但VT包含'int's尖的由AraK提供。 – 2009-11-05 08:25:50
@Matthieu:不,mem_fun将方法转换为二进制函子。 bind1st接受一个二元函子,并将其变成一个一元函子。在这种情况下,'mem_fun'参数是'A *'和'int';作为第一个参数绑定'this'会留下一个一元函数,并且按照预期的那样采用'int'。 – MSalters 2009-11-05 09:00:31