当前位置: 首页 > news >正文

C++ lambda函数个人理解

及方便自己在函数内部定义函数

int main() {int i = 1;auto c = [](int a, int c) {return a+b;};int d = a(2, i);cout<<c;return 0;
}

格式:
auto functionname = [capture](parameters) -> return_type { /* … */ };

(1)[capture] :[]内为外部变量的传递方式,值、引用等,如下

[]        //表示的是在lambda定义之前的域,对外部参数的调用;
[=]       //表示外部参数直接传值
[&]       //表示外部参数传引用,可修改值。当默认捕获符是 & 时,后继的简单捕获符必须不以 & 开始。而当默认捕获符是 = 时,后继的简单捕获符必须以 & 开始。
[x, &y]   //x is captured by value, y is captured by reference
[&, x]    //x is explicitly captured by value. Other variables will be captured by reference
[=, &z]   //z is explicitly captured by reference. Other variables will be captured by value

(2)(parameters) :()内为形参,和普通函数的形参一样。
(3)-> return_type:->后面为lambda函数的返回类型,如 -> int、-> string等。一般情况下,编译器推出lambda函数的返回值,所以这部分可以省略不写。
(4){ /* … */ }:{}内为函数主体,和普通函数一样。

相关文章:

  • 【话题】2024年AI辅助研发趋势,有那些应用领域
  • 【STL】string各种函数的应用
  • TinyEMU之RISCV-PK编译
  • SpringCloud-Alibaba-Nacos教程
  • vs2022 错误(活动) E1696 无法打开 源 文件 “bits/stdc++.h“解决办法
  • Github上哪些好用的工具
  • 2022 年河南省中等职业教育技能大赛
  • 网络编程:网络编程基础
  • 未来城市:数字孪生技术助力智慧城市构建
  • 高效Go编程: encoding/csv标准库深度解析
  • 深入探索HAProxy:高性能负载均衡器的奥秘
  • HBase安装,配置,启动,检查
  • django-comment-migrate 模型注释的使用
  • Autosar Crypto Driver学习笔记(一)
  • Git的基础使用
  • 【个人向】《HTTP图解》阅后小结
  • ABAP的include关键字,Java的import, C的include和C4C ABSL 的import比较
  • echarts花样作死的坑
  • Golang-长连接-状态推送
  • iOS小技巧之UIImagePickerController实现头像选择
  • JavaScript 是如何工作的:WebRTC 和对等网络的机制!
  • js操作时间(持续更新)
  • mac修复ab及siege安装
  • Python语法速览与机器学习开发环境搭建
  • Redis字符串类型内部编码剖析
  • spring-boot List转Page
  • storm drpc实例
  • 第三十一到第三十三天:我是精明的小卖家(一)
  • 高程读书笔记 第六章 面向对象程序设计
  • 观察者模式实现非直接耦合
  • 湖南卫视:中国白领因网络偷菜成当代最寂寞的人?
  • 力扣(LeetCode)22
  • 深度学习中的信息论知识详解
  • 使用 Xcode 的 Target 区分开发和生产环境
  • 算法-图和图算法
  • 一、python与pycharm的安装
  • 用jquery写贪吃蛇
  • 阿里云服务器购买完整流程
  • 阿里云服务器如何修改远程端口?
  • 国内唯一,阿里云入选全球区块链云服务报告,领先AWS、Google ...
  • ​queue --- 一个同步的队列类​
  • # Python csv、xlsx、json、二进制(MP3) 文件读写基本使用
  • # 手柄编程_北通阿修罗3动手评:一款兼具功能、操控性的电竞手柄
  • (07)Hive——窗口函数详解
  • (1) caustics\
  • (javascript)再说document.body.scrollTop的使用问题
  • (LeetCode 49)Anagrams
  • (十六)串口UART
  • (原創) 未来三学期想要修的课 (日記)
  • (转载)微软数据挖掘算法:Microsoft 时序算法(5)
  • ***微信公众号支付+微信H5支付+微信扫码支付+小程序支付+APP微信支付解决方案总结...
  • .bat批处理(五):遍历指定目录下资源文件并更新
  • .NET Windows:删除文件夹后立即判断,有可能依然存在
  • .NET企业级应用架构设计系列之技术选型
  • .NET微信公众号开发-2.0创建自定义菜单