Lambda 函数与表达式
作者:
懒得理你
,
2024-03-20 22:53:10
,
所有人可见
,
阅读 12
Lambda 表达式具体形式如下:
[capture](parameters)->return-type{body}
例如
[](int x, int y){ return x < y ; }
如果没有返回值可以进一步简化:
[capture](parameters){body}
例如
[](int x, int y) { int z = x + y; cout<<z<<endl; }
实现返回x+y
auto f = [](int x,int y)->int{return x+y;};
int x = f(1,2);
[]的作用
[] // 沒有定义任何变量。使用未定义变量会引发错误。
[x, &y] // x以传值方式传入(默认),y以引用方式传入。
[&] // 任何被使用到的外部变量都隐式地以引用方式加以引用。
[=] // 任何被使用到的外部变量都隐式地以传值方式加以引用。
[&, x] // x显式地以传值方式加以引用。其余变量以引用方式加以引用。
[=, &z] // z显式地以引用方式加以引用。其余变量以传值方式加以引用。
笔记整理自 https://www.runoob.com/cplusplus/cpp-functions.html
进一步简化的不是没有返回值吧
感谢指正