实名制认证网站网站开发外键
基本结构
[捕获列表](参数列表) -> 返回类型 {  // 函数体  
}   
-  
捕获列表 (
[ ]):- 用于指定外部变量的捕获方式。可以: 
- 通过值捕获:
[x] - 通过引用捕获:
[&x] - 捕获所有变量通过值:
[=] - 捕获所有变量通过引用:
[&] - 自由组合,例如:
[x, &y] 
 - 通过值捕获:
 
 - 用于指定外部变量的捕获方式。可以: 
 -  
参数列表 (
( )):- 定义参数的列表,与普通函数参数定义相同。可以包含类型和参数名称,或者直接省略类型(使用 
auto)。 - 例如:
(int a, int b)或(auto x)。 
 - 定义参数的列表,与普通函数参数定义相同。可以包含类型和参数名称,或者直接省略类型(使用 
 -  
返回类型 (
->):- 可选部分。如果 lambda 表达式返回类型可以由编译器推导,则可以省略。
 - 如果需要指定返回类型,可以像普通函数一样说明。例如:
-> int。 
 -  
函数体 (
{ }):- 实际的函数实现,包含要执行的代码。
 
 
以下是几个简单的 lambda 表达式示例:
-  
无参数的 lambda 表达式:
auto hello = []() { std::cout << "Hello, World!" << std::endl; }; hello(); // 调用 -  
有参数的 lambda 表达式:
auto add = [](int a, int b) { return a + b; }; std::cout << add(3, 5) << std::endl; // 输出 8 -  
带捕获的 lambda 表达式:
int x = 10; auto lambda = [x](inty) { return x + y; // 捕获 x }; std::cout << lambda(5) << std::endl; // 输出 15 -  
通过引用捕获:
int a = 3; auto increment = [&a]() { a++; }; increment(); std::cout << a << std::endl; // 输出 4 -  
指定返回类型:
auto multiply = [](double a, double b) -> double { return a * b; }; std::cout << multiply(3.5, 2) << std::endl; // 输出 7 
