c++的lambda函数?
时间: 2023-11-29 13:44:45 浏览: 105
C++的lambda函数是一种匿名函数,可以在函数内部定义并使用,而不需要为其命名。它可以像普通函数一样接受参数和返回值,并且可以捕获上下文中的变量。以下是一个lambda函数的示例代码:
```c++
#include <iostream>
int main() {
int a = 1;
int b = 2;
// 定义一个lambda函数
auto sum = [](int x, int y) -> int {
return x + y;
};
std::cout << sum(a, b) << std::endl; // 输出:3
return 0;
}
```
在上面的代码中,我们定义了一个lambda函数`sum`,它接受两个整型参数并返回它们的和。我们使用`auto`关键字来推断`sum`的类型。在`main`函数中,我们定义了两个整型变量`a`和`b`,并将它们作为参数传递给`sum`函数。最后,我们输出了`sum(a, b)`的结果。
除了可以接受参数和返回值之外,lambda函数还可以捕获上下文中的变量。以下是一个使用捕获的lambda函数的示例代码:
```c++
#include <iostream>
int main() {
int a = 1;
int b = 2;
// 定义一个lambda函数
auto sum = [a, b] {
return a + b;
};
std::cout << sum() << std::endl; // 输出:3
return 0;
}
```
在上面的代码中,我们定义了一个lambda函数`sum`,它没有参数,但捕获了上下文中的变量`a`和`b`。在`main`函数中,我们定义了两个整型变量`a`和`b`,并将它们作为捕获列表传递给`sum`函数。最后,我们输出了`sum()`的结果。
阅读全文