STL中mem_fun和mem_fun_ref的用法

引自STL中mem_fun和mem_fun_ref的用法

#include <iostream>
using namespace std;
#include <vector>
#include <algorithm> //for_each()
class classTest
{
public:
    int Dosomething()
    {
        cout<< "output from method Dosomething !"<<'\n' ;
        return 0;
    }
};


int DoSome(classTest *cl)
{
    return cl -> Dosomething();
}


int main()
{
    vector <classTest*> vT;
    
    for(int i=0;i<13;++i)
    {
        classTest * t = new classTest;
        vT.push_back(t);
    }

    //對容器中的元素進行dosomething的操作
    for(int i=0;i<vT.size();++i)
        vT.at(i)->Dosomething();

    //使用迭代器訪問所有的元素
    for(vector<classTest*>::iterator it = vT.begin();it != vT.end(); ++it)
    {
        (*it) -> Dosomething();
    }
    
    //若不自己寫循環(huán),用for_each()
    //先定義一個函數(shù)Dosome()

    for_each(vT.begin(), vT.end(), &DoSome);

    cout<<'\n';
    //若不想調(diào)用DoSome()函數(shù)呢
    for_each(vT.begin(), vT.end(), std::mem_fun( &classTest::Dosomething) );
    
    return 0;
}

mem_fun_ref的作用和用法跟mem_fun一樣,唯一的不同就是:當容器中存放的是對象實體的時候用mem_fun_ref,當容器中存放的是對象的指針的時候用mem_fun。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容