c++lambda表达式
时间: 2023-07-06 21:04:57 浏览: 101
C++11 lambda表达式
5星 · 资源好评率100%
C++11引入了lambda表达式,它是一种匿名函数,可以在需要时定义并使用它。
lambda表达式的语法如下:
```
[capture list] (params list) mutable exception-> return type {
function body
}
```
- capture list:捕获外部变量列表。lambda表达式可以访问外部作用域的变量,capture list指定了哪些变量可以被访问,以及如何访问这些变量。capture list可以为空,表示不捕获任何外部变量。
- params list:参数列表。与普通函数的参数列表类似,可以为空。
- mutable指示符:默认情况下,lambda表达式不能修改捕获的变量。使用mutable关键字可以修改这个行为。
- exception指示符:指定异常规范。
- return type:返回类型。可以根据函数体自动推断返回类型。
- function body:函数体。
例如,下面的代码定义了一个lambda表达式,它将两个整数相加并返回结果:
```c++
auto add = [](int x, int y) -> int {
return x + y;
};
int result = add(1, 2); // result = 3
```
在上面的代码中,lambda表达式捕获了任何外部变量,参数列表包含两个整数x和y,返回类型为int,函数体使用+运算符将x和y相加。
阅读全文