匿名函数,也称为lambda表达式,是一种在编程语言中使用函数的方式。它允许在需要函数的地方定义一个简短的函数,而无需显式地命名它。在C++中,lambda表达式允许您在需要时创建一个即时的、临时的函数对象。
lambda表达式的一般形式如下:
[capture](parameters) -> return_type {
// 函数体
}
其中:
- capture:捕获列表,用于指定lambda表达式中可访问的外部变量。
- parameters:参数列表,与普通函数的参数类似。
- return_type:返回类型,指定lambda表达式的返回类型。
- 函数体:实际的函数逻辑。
匿名函数可以非常灵活地捕获外部变量,并将其包含在函数内部。它们通常用于需要传递函数作为参数的场景,比如标准库算法、回调函数等。
在C++中,lambda表达式的使用使得代码更为简洁和易读,尤其是在需要编写短小、一次性的函数时非常有用。
Lambda表达式也是现代C++中的重要特性之一,它使得代码更具可读性和可维护性。
下面是一个使用lambda表达式的例子:
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
vector<int> numbers = {1, 2, 3, 4, 5};
// 使用for_each算法和lambda表达式对容器中的每个元素进行操作
for_each(numbers.begin(), numbers.end(), [](int& num) {
num *= 2;
});
// 输出结果
for (int num : numbers) {
cout << num << " ";
}
cout << endl;
return 0;
}
在这个示例中,lambda表达式 [](int& num) { num *= 2; }
接受一个整数引用作为参数,并将其乘以2。for_each
算法遍历容器中的每个元素,并将其传递给lambda表达式进行处理
# Cool