[capture list] (parameters) -> return_type {  
   // 函数体  
};

#include <iostream>

include <vector>

include <algorithm>

struct Node {

int v;
// 其他属性...

};

int main() {

std::vector&lt;Node&gt; nodes = {{3}, {1}, {4}, {1}, {5}};

// 使用 lambda 表达式对 nodes 中的节点按照 v 属性进行降序排序
std::sort(nodes.begin(), nodes.end(), [](const Node&amp; a, const Node&amp; b) {
    return a.v &gt; b.v;
});

// 输出排序后的结果
for (const auto&amp; node : nodes) {
    std::cout &lt;&lt; node.v &lt;&lt; " ";
}
std::cout &lt;&lt; std::endl;

return 0;

}

#include <iostream>

int main() {

// 定义一个接受两个整数参数并返回它们之和的 lambda 表达式
auto add = [](int a, int b) -&gt; int {
    return a + b;
};

// 使用 lambda 表达式进行加法运算
int result = add(5, 3);
std::cout &lt;&lt; "5 + 3 = " &lt;&lt; result &lt;&lt; std::endl;

return 0;

}

include <iostream>

// 值捕获示例
int main() {

int num = 10;
// lambda表达式值捕获num
auto lambda = [num](int x) {
    return num + x;
};
int result = lambda(5);
std::cout &lt;&lt; "值捕获结果: " &lt;&lt; result &lt;&lt; std::endl;
return 0;

}

#include <iostream>
// 引用捕获示例
int main() {

int num = 10;
// lambda表达式引用捕获num
auto lambda = [&amp;num](int x) {
    num++;
    return num + x;
};
int result = lambda(5);
std::cout &lt;&lt; "引用捕获结果: " &lt;&lt; result &lt;&lt; std::endl;
std::cout &lt;&lt; "外部num的值变为: " &lt;&lt; num &lt;&lt; std::endl;
return 0;

}

#include <iostream>
// 隐式值捕获示例
int main() {

int a = 2;
int b = 3;
// 隐式值捕获a和b
auto lambda = [=](int x) {
    return a + b + x;
};
int result = lambda(1);
std::cout &lt;&lt; "隐式值捕获结果: " &lt;&lt; result &lt;&lt; std::endl;
return 0;

}

#include <iostream>
// 隐式引用捕获示例
int main() {

int a = 2;
int b = 3;
// 隐式引用捕获a和b
auto lambda = [&amp;](int x) {
    a++;
    b++;
    return a + b + x;
};
int result = lambda(1);
std::cout &lt;&lt; "隐式引用捕获结果: " &lt;&lt; result &lt;&lt; std::endl;
std::cout &lt;&lt; "外部a的值变为: " &lt;&lt; a &lt;&lt; std::endl;
std::cout &lt;&lt; "外部b的值变为: " &lt;&lt; b &lt;&lt; std::endl;
return 0;

}

   #include <iostream>
int main() {

   int a = 10;
   int b = 20;
   // 对a和b进行值捕获
   auto lambda = [a, b](int x) {
       return a + b + x;
   };
   int result = lambda(5);
   std::cout &lt;&lt; "结果: " &lt;&lt; result &lt;&lt; std::endl;
   return 0;

}

发表评论