我必須將一個參數的成員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