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

lambda表达式案例分析

#include<iostream>
using namespace std;

int main()
{
	int a = 10;
	int b = 5;
	auto add = [=](){
		int b = 10;
		return a + b;
	};

	int num = add();
	cout << num << endl;
	return 0;
}

针对上述代码,运行会出问题吗,会运行什么结果?

概念:lambda表达式实际上是一个匿名类的成员函数,该类由编译器为lambda创建,该函数被隐式地定义为内联。因此,调用lambda表达式相当于直接调用它的operator()函数,这个函数可以被编译器内联优化。

仿函数:又叫做函数对象,因为实现仿函数的方式就是重载一个类的operator(),只是用起来跟函数一样,其本质仍然是一个对象。

隐式捕获:

[=]表示以值捕获的方式捕获所有外部变量,成员函数包括this指针;

[&]表示以引用捕获的方式捕获所有外部变量,成员函数包括this指针。

http://www.dtcms.com/a/66464.html

相关文章:

  • Vector底层结构和源码分析(JDK1.8)
  • 【不动产登记全解析】范围、内容与不予登记的情形
  • 思维链医疗编程方法论框架(Discuss V1版)
  • MySQL 8 设置允许远程连接(Windows环境)
  • Oracle 查询数据库对象的DDL语句
  • 解锁 AI 开发的无限可能:邀请您加入 coze-sharp 开源项目
  • antd的Form表单校验的方式有几种
  • 网络空间安全(29)漏洞扫描
  • undefined和null的区别 (新手小白级教程)
  • 第5关:猴子爬山
  • 航空动力系统适航标准要点手册
  • OpenRewrite配方之import语句的顺序——org.openrewrite.java.OrderImports
  • transformer bert 多头自注意力
  • element-plus中Autocomplete自动补全输入框组件的使用
  • 【Spring】详细剖析Spring程序
  • 多线程实现批量保存数据
  • PE,ELF,COFF
  • 基于物联网设计的疫苗冷链物流监测系统
  • 【前端知识】前端构建工具webpack的平替vite
  • 【软件测试】--面试
  • 如何用终端运行一个SpringBoot项目
  • SD ComfyUI工作流 一键Q版盲盒手办形象_多关键词切换
  • 星越L_副驾驶屏使用讲解
  • 每日一题之储存晶体
  • 基于GoogleNet深度学习网络和GEI步态能量提取的步态识别算法matlab仿真,数据库采用CASIA库
  • Linux驱动开发实战(四):设备树点RGB灯
  • Cursor 终极使用指南:从零开始走向AI编程
  • 【算法题解答·六】栈队列堆
  • 剑指 Offer II 073. 狒狒吃香蕉
  • 2025-03-13 禅修-错误的做法