C++ lambda
时间: 2023-06-02 11:06:59 浏览: 53
C++ 的 lambda 表达式是一种匿名函数的表达式,可以在程序的任何地方使用。它可以帮助程序员更快速地实现和使用简单的函数,而不需要命名该函数。lambda 表达式通常用于需要在函数中传递简单函数的情况,例如在使用 STL 算法时。
Lambda 表达式的基本语法如下:
```
[capture](parameters) -> return-type { function-body }
```
- capture 表示 lambda 表达式能够访问的外部变量。
- parameters 表示 lambda 表达式的形参列表。
- return-type 表示 lambda 表达式的返回值类型。
- function-body 表示 lambda 表达式的函数体。
示例:
```
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main()
{
vector<int> v = {1, 2, 3, 4, 5};
int sum = 0;
// 使用 lambda 表达式求和
for_each(v.begin(), v.end(), [&sum](int x) { sum += x; });
cout << "Sum = " << sum << endl;
return 0;
}
```
输出:
```
Sum = 15
```
在这个示例中,lambda 表达式的 capture 为引用(&),参数列表为 int x,返回类型为 void,函数体为 sum += x。lambda 表达式被传递给 STL 算法 for_each,用于将每个元素加到 sum 上。
阅读全文