有別於 functor ,lambda 提供了更簡潔的寫法
lambda 形式
[ capture list ] ( parameter list ) -> return type { function body }
capture list 放置 lambda 外的可視變數
parameter list 放置參數
例子
#include <iostream>
using namespace std;
int main()
{
int a = 5;
auto f = [a] (int b) -> int { return a + b; };
cout << f(3) << endl; // 輸出 8
return 0;
}
另外,type 可以用來轉型
auto f = [ ] () -> int { return 3.14; }; // f() 會輸出 3
也可以省略
auto f = [ ] () { return 3.14; }; // 輸出 3.14
如果沒有 -> type 且沒有參數, 則 () 也可省略
auto f = [ ] { return 3.14; };
note:
g++ --std=c++11 file.cpp -o file
文章標籤
全站熱搜
