lambda表达式基础

在C++中,Lambda表达式是一种用于定义匿名函数的特性,它允许你在需要函数的地方直接定义函数,而无需显式声明一个命名函数。Lambda表达式的一般形式为:

cpp
[capture list] (parameter list) -> return type {
    // 函数体
}

capture list 指定了Lambda表达式内部可访问的外部变量。[=] 表示捕获外部作用域中的所有变量,按值传递方式;[&] 表示捕获外部作用域中的所有变量,按引用传递方式;也可以指定具体的变量进行捕获。
parameter list 是Lambda函数的参数列表,类似于普通函数的参数列表。
return type 是Lambda函数的返回类型,可以省略,编译器会根据函数体自动推导返回类型。
{} 内是Lambda函数的函数体,包含了函数的具体逻辑。

下面是一个简单的Lambda表达式的示例:

#include 

int main() {
    int a = 10;
    int b = 20;

    // Lambda表达式定义
    auto sum = [a, b]() {
        return a + b;
    };

    // 调用Lambda函数并输出结果
    std::cout << "Sum: " << sum() << std::endl;

    return 0;
}

在这个示例中,我们定义了一个Lambda表达式 sum,它捕获了外部作用域中的变量 a 和 b,并返回它们的和。Lambda表达式定义后,我们调用它并输出了结果。Lambda表达式的灵活性和简洁性使得它成为C++中一个非常有用的特性,特别是在需要传递函数作为参数或在需要定义小型函数时。

你可能感兴趣的:(C++,c++)