for_each()的函数传递问题
关于for_each)()的函数传递有些疑问,先看以下代码:
代码1:
class test
{
public:
void fun1();
void fun2(int m);
private:
vector <int> v;
};
void test::fun1()
{
//我想对v中的每个数据调用fun2函数, 这里的第三个参数该怎么写?
//如果fun2为非成员函数,第三个参数可以直接写fun2.像这种情况该
//怎么写呢?
for_each(v.begin(), v.end(), ???);
}
void test::fun2(int m)
{
//do somthing
}
代码2:
class test; //test为上面的test类
class test2
{
public:
void fun3();
private:
vector <int> v2;
};
void test2::fun3()
{
test t;
//我想对v2中的每个数据调用t.fun2函数, 这里的第三个参数该怎么写?
for_each(v2.begin(),v2.end(), ???);
}
请问该如何传递第三个参数呢??
[解决办法]
std::bind1st(std::mem_fun(&test::fun2), this)