C++ 函数lambda表达式的写法规范是什么?

c++++ 函数 lambda 表达式的写法规范语法为:[capture](parameters) -> return_type { // 函数体},其中 capture 为捕获外部变量,parameters 为函数参数,return_type 为函数返回值类型。其类型根据捕获列表和参数列表分为:捕获所有外部变量,无参数:auto 类型;捕获特定外部变量,无参数:auto 类型(可缩小);无捕获,有参数:function 类型。lambda 表达式用于创建临时函数对象,可以将其赋值给变量或函数指针,或直接作为参数传递。

C++ 函数lambda表达式的写法规范是什么?

C++ 函数 Lambda 表达式的写法规范

语法:

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

其中:

立即学习“C++免费学习笔记(深入)”;

capture:捕获外部变量,可选,默认为 [&](捕获所有外部变量)parameters:函数参数,可选return_type:函数返回值类型,可选

Lambda 表达式类型:

Lambda 表达式属于匿名函数类型。其类型取决于捕获列表和参数列表:

捕获所有外部变量,无参数:auto 类型捕获特定外部变量,无参数:auto 类型(可缩小)无捕获,有参数:function 类型

使用规范:

Lambda 表达式用于创建临时函数对象。可将其赋值给变量或函数指针,或直接作为参数传递。Lambda 表达式中可访问捕获的外部变量,但不能修改它们(除非通过引用捕获)。Lambda 表达式中的 this 指针指向创建它们的上下文。

实战案例:

// 捕获所有外部变量,无参数auto lambda1 = []() {  // 可以访问外部变量  std::cout << "Lambda 1: " << x << std::endl;};// 捕获特定外部变量,无参数int x = 10;auto lambda2 = [x]() {  // 只可以访问捕获的外部变量 x  std::cout << "Lambda 2: " << x << std::endl;};// 无捕获,有参数auto lambda3 = [](int y) {  // 没有捕获外部变量,y 为函数参数  std::cout << "Lambda 3: " << y << std::endl;};int main() {  lambda1();  lambda2();  lambda3(20);  return 0;}

输出:

Lambda 1: 10Lambda 2: 10Lambda 3: 20

以上就是C++ 函数lambda表达式的写法规范是什么?的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1446778.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月17日 23:55:40
下一篇 2025年12月17日 23:55:52

相关推荐

发表回复

登录后才能评论
关注微信