2011-04-05 68 views
0

我的代碼:呼叫STD對象的成員函數::算法(注:這是一個不同的對象,而不是容器)

#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
for_each (_myVector.begin(), _myVector.end(), &myClass::print); 

for_each (_myVector.begin(), _myVector.end(), bind1st(mem_fun(&myClass::print), this)); 
+0

但使用上述方法,myClass的::打印具有由值取字符串來代替。任何方式通過引用,仍然使用類似的方法? – 2011-04-06 05:38:42

+0

語法只是一件簡單的事情,多麼有趣又複雜! – singe3 2014-11-13 15:04:13

相關問題