一、介绍
本部分参考(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;
}
运行结果: