#include <iostream>
#include <vector>
#include <algorithm>
int main() {
// 定义一个简单的 lambda 表达式,它接受两个整数并返回它们的和
auto add = [](int a, int b) -> int {
return a + b;
};
std::cout << "3 + 4 = " << add(3, 4) << std::endl;
// 使用 lambda 表达式作为 std::for_each 的参数,对 vector 中的每个元素进行操作
std::vector<int> numbers = {1, 2, 3, 4, 5};
std::for_each(numbers.begin(), numbers.end(), [](int n) {
std::cout << n * n << " ";
});
std::cout << std::endl;
// 使用带有捕获列表的 lambda 表达式
int factor = 10;
auto multiplyByFactor = [factor](int a) -> int {
return a * factor;
};
std::cout << "5 * " << factor << " = " << multiplyByFactor(5) << std::endl;
return 0;
}
简单的 lambda 表达式:
auto add = [](int a, int b) -> int {
return a + b;
};
这是一个简单的 lambda 表达式,它接受两个整数参数 a
和 b
,并返回它们的和。[]
是捕获列表,这里为空表示不捕获任何外部变量。
使用 lambda 表达式作为回调函数:
std::for_each(numbers.begin(), numbers.end(), [](int n) {
std::cout << n * n << " ";
});
这里我们使用 lambda 表达式作为 std::for_each
的回调函数,对 numbers
向量中的每个元素进行平方运算,并输出结果。
带有捕获列表的 lambda 表达式:
int factor = 10;
auto multiplyByFactor = [factor](int a) -> int {
return a * factor;
};
这个 lambda 表达式捕获了外部变量 factor
,并在 lambda 内部使用它来乘以传入的参数 a
。捕获列表 [factor]
表示将 factor
按值捕获到 lambda 中。
通过这些例子,你可以看到 lambda 表达式的灵活性和强大功能,特别是在需要简短、匿名函数的地方。
上一篇:c++如何保留小数点后两位
下一篇:c++绝对值函数
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站