C++ 中的 Lambda 表达式是一种匿名函数,可以方便地创建并传递函数对象。这是 C++11 引入的一项重要功能,可以大大提高代码的可读性和简洁性。
以下是一个深入讲解 C++ 使用 Lambda 表达式的例子,包括基本语法、捕获列表、函数调用、以及与 STL 的结合使用等。
Lambda基本语法
首先,我们来看一个最简单的 lambda 表达式:
[](){/* do nothing */};
这个 lambda 表达式定义了一个空函数,没有参数,也没有返回值。你可以将其看作是一个没有实体的具名函数。
你还可以定义带有参数的 lambda 表达式:
[](int a, float b){return a + b;};
这个函数接收两个参数,一个是 int 类型的 a,另一个是 float 类型的 b。它的返回值是 a 和 b 的和。
你也可以定义带有默认参数的 lambda 表达式:
[](int a, float b = 0.0f){return a + b;};
这个函数和上一个函数功能基本相同,只是 b 参数的默认值是 0.0f。
Lambda的捕获列表
你还可以在 lambda 表达式中捕获外部变量的值:
int a = 10;
float b = 20.0f;
auto add = [&a, &b]() { return a + b; }; // 使用引用捕获外部变量
std::cout