首页 C++系列9:lambda表达式
文章
取消

C++系列9:lambda表达式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
方便定义匿名函数

语法

[capture list] (params list) mutable exception -> return type { function body }
[capture list] (params list) -> return type {function body}
[capture list] (params list) {function body} //常用
[capture list]               {function body}

capture list:捕获外部变量列表, 
[&, a, b]ab按值进行传递外,其他参数都按引用进行传递。 
[a, &b] a按值进行传递,b按引用进行传递。 
[=&a, &b] ab按引用进行传递外,其他参数都按值进行传递。

params list:形参

mutable指示符:用来说明是否可以修改捕获的变量

exception:异常设定

return type:返回类型

function body:函数体

示例:

int a = 123;
auto f = [a]() mutable { cout << ++a; }; 
cout << a << endl; // 输出:123
f(); // 输出:124

欢迎评论交流

本文由作者按照 CC BY 4.0 进行授权