Пример для этой функции http://www.cplusplus.com/reference/functional/mem_fun/ говорит, что std :: string :: length может быть передан как последний параметр std;: transform. Из-за руководства, std :: string :: length не является статическим (исправьте меня, если я ошибаюсь)C++: использование mem fun для собственной структуры
Я предположил, что могу создать собственную структуру/класс и передать его член как последний параметр std :: transform , например:
struct ss
{
int ssFun(int n)
{
return 2*n;
}
};
Так что я мог бы сделать следующее:
int tab[] = {1,2,3,4,5};
std::vector<int> inVect(tab, tab+5);
std::vector<int> outVect;
ss myStruct;
outVect.resize(5);
std::mem_fun(inVect.begin(), inVect.end(), outVect.begin(), mem_fun(&ss::ssFun));
Ни это:
std::mem_fun(inVect.begin(), inVect.end(), outVect.begin(), mem_fun(myStruct.ssFun));
Unfortuna Это не работает. Зачем?
Вы имели в виду 'std :: transform' вместо' std :: mem_fun'? – Cornstalks