一、介紹
本部分參考(https://blog.csdn.net/lixiaogang_theanswer/article/details/80905445)
lambda 表達式是一種匿名函數,即沒有函數名的函數;該匿名函數是由數學中的λ演算而來的。通常情況下,lambda函數的語法定義爲:
[capture] (parameters) mutable ->return-type {statement}
此處mutable的含義可參考https://www.jianshu.com/p/94d9d3cc55c2
在C++11中,lambda函數是inline(內聯函數)
#include <iostream>
using namespace std;
auto sum = [](int a, int b)->int
{
return a + b;
};
int main()
{
int m1 = 10;
int ret = [&m1]()->int {m1 = 100 + m1; return 20; }();
cout << "ret=" << ret << ";m1=" << m1 << endl;
int m2 = 30;
[=]() mutable {m2 = m2 + 10; }();
cout << "m2=" << m2 << endl;
cout << "sum(5+10)=" << sum(5, 10)<< endl;
system("pause");
return 0;
}
運行結果: