我的代码:
#include <algorithm>
#include <iostream>
#include <vector>
using namespace std;
class myClass {
public:
myClass() {
init();
}
void init() {
_myVector.push_back("Hello");
_myVector.push_back("World");
_myVector.push_back("Bye!");
for_each (_myVector.begin(), _myVector.end(), &myClass::print);
}
void print(string &myStr) {
cout << myStr << "." << endl;
}
private:
vector<string> _myVector;
};
int main() {
myClass myObj;
return 0;
}
如果_myVector包含myClass对象或指针,我可以使用std :: mem_fun_ref或std :: mem_fun。有没有办法做到这一点?是的,我不希望myClass :: print是静态的。
答案 0 :(得分:0)
for_each (_myVector.begin(), _myVector.end(), &myClass::print);
替换为
for_each (_myVector.begin(), _myVector.end(), bind1st(mem_fun(&myClass::print), this));