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++教程:匿名函数
  • 怎么做香酥鸡蛋灌饼 ?
  • 魔域曙光1.0攻略
  • 天天象棋(腾讯中国象棋)残局闯关第28关
  • LabVIEW-数组-一维数组插值
  • 葬仙纪正式版隐藏密码隐藏专属怎么得
  • 热门搜索
    怎么查手机话费 轻微食物中毒怎么办 苹果怎么越狱教程 结婚戒指怎么戴 怎么快速感冒 微信主题怎么换 腹肌怎么练最快 严重便秘怎么办 怎么做月饼 屏幕保护程序怎么设置