c++ lambda实例
时间: 2023-06-24 09:04:48 浏览: 45
Lambda表达式是C++11引入的一个新特性,它可以让我们更方便地定义匿名函数。下面是一个简的Lambda实例:
```
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> nums = {2, 4, 6, 8, 10};
// 使用Lambda表达式查找大于5的数
auto result = std::find_if(nums.begin(), nums.end(), [](int num) {
return num > 5;
});
if (result != nums.end()) {
std::cout << "Found " << *result << std::endl;
} else {
std::cout << "Not found" << std::endl;
}
return 0;
}
```
这段代码定义了一个vector,然后使用Lambda表达式查找其中大于5的数。Lambda表达式的语法如下:
```
[capture list] (parameters) -> return type { function body }
```
其中,capture list 可以捕获Lambda函数外部的变量,parameters 是函数参数列表,return type 是返回类型(可以省略),function body 是函数体。在上面的例子中,我们没有捕获任何外部变量,所以capture list为空。函数参数为一个int类型的变量num,返回类型为bool类型,表示num是否大于5。Lambda表达式返回值的类型由编译器自动推导。