lambda 的用法 举例 c++
时间: 2023-07-02 14:04:50 浏览: 90
在 C++ 中,lambda 表达式可以用于创建匿名函数,它的语法如下:
```
[capture list] (parameter list) -> return type { function body }
```
其中,capture list 指定了 lambda 表达式访问外部变量的方式,parameter list 指定了 lambda 表达式的参数列表,return type 指定了 lambda 表达式的返回类型,function body 则是 lambda 表达式的实际代码。
以下是一个简单的 lambda 表达式示例:
```c++
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> nums{1, 2, 3, 4, 5};
int threshold = 3;
auto is_greater_than_threshold = [threshold](int x) {
return x > threshold;
};
std::vector<int> result;
std::copy_if(nums.begin(), nums.end(), std::back_inserter(result), is_greater_than_threshold);
for (int num : result) {
std::cout << num << " ";
}
std::cout << std::endl;
return 0;
}
```
在这个示例中,我们使用 lambda 表达式创建了一个判断某个数是否大于阈值的匿名函数,并将其作为 `std::copy_if` 算法的谓词参数传入,将符合条件的数字复制到了另一个向量中。
阅读全文