C++ — 把lambda 表達式裝進vector

想把lambda表達式裝進vector, 在某度上沒找到答案!終究還是在萬能的stackoverflow 上找到了答案,
http://stackoverflow.com/questions/7477310/why-cant-i-create-a-vector-of-lambda-in-c11
因此寫一下補個缺。

vector<X> 聲明變量的時候,需要在X的位置給出類型,用vector <<std::function<int(int)>>啊,用vector<decltype( [](){})> 啊什麼的都不行,其實很簡單,只需要聲明的時候以函數指針的形式vector 就可以了。截圖爲證:

這裏寫圖片描述

天藍色框裏是一個函數指針類型,int(*)(int demand,int &capacity) 聲明的一個返回值爲int類型,(*) 表示是指針,然後函數形式參數爲一個int類型和一個int& 類型。 紅色框中就是要存入的lambda 表達式,此lambda表達式與上述聲明類型上吻合。

錯誤之處,不吝賜教。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章