手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

c++教程:匿名函数

时间:2024-10-12 02:29:09

1、匿名函数的基本语法为:[ 捕捉的值 ]( 参数 )->返回值 { 代码 }例如#include <iostream>using namespace std;int main(){ auto f = [](int a, int b)->int { return a+b; }; cout << f(1,2); return 1;}

c++教程:匿名函数

2、什么是捕获的值那?我们逐条来介绍:[ ] 试图在Lambda内使用任何外部变量都是错误的.例如: int c = 1; auto f = [](int a, int b)->int { a = c; return a+b; }; cout << f(1,2);这个例子是编译不过的。

c++教程:匿名函数

3、[&] 用到的任何外部变量都隐式按引用捕获#include <iostream>using namespace std;int main(){ int c = 1; auto f = [&](int a, int b)->int { a = c; c = 2; return a+b; }; cout << f(1,2) <<"," << c << endl; return 1;}这个例子编译过了,但是c的值被修改了。

c++教程:匿名函数

4、[=] 用到的任何外部变量都隐式按值捕获例如:#include <iostream>using namespace std;int main(){ int c = 1; auto f = [=](int a, int b)->int { a = c; c = 2; return a+b; }; cout << f(1,2) <<"," << c << endl; return 1;}给赋值会报错

c++教程:匿名函数

5、[=, &c] c按引用捕获. 其它变量按值捕获#include <iostream>using namespace std;int main(){ int c = 1; auto f = [=,&c](int a, int b)->int { a = c; c = 2; return a+b; }; cout << f(1,2) <<"," << c << endl; return 1;}

c++教程:匿名函数
© 手抄报圈