C++ lambda 匿名函数
看了明仕强老师的课程,C++匿名函数也可以很简单
下面请看示例代码:
/*
lambda表达式学习,测试主函数
*/
#include <iostream>
using namespace std;
int main()
{
printf("Lambda test Demo:\n");
//值捕获,值捕获的时候不能修改变量值的
int value = 100;
auto f = [value](int a ,int b)->int{
return a+b+value;
};
cout << f(1,2)<<endl;
//引用捕获,可以改变变量值
auto f2 = [&value](int a,int b)->int{
value ++;
return a+b;
};
cout<<f2(1,3)<<endl;
cout<<"value:"<<value<<endl;
//隐式捕获
// = 值捕获
// & 引用捕获
int age = 123;
auto f3 = [&](int a ,int b)->int{
value++;//如果把&更换为= 则这里修改变量编译的时候会出错
age++;//如果把&更换为= 则这里修改变量编译的时候会出错
return a+b;
};
return 0;
}