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

昌平手机网站建设北京传媒公司排行榜

昌平手机网站建设,北京传媒公司排行榜,南昌所有建设工程网站,乐山网站开发文章目录 0.lambda表达式的概念1.lambda表达式的形式:[](){}2.提出原因3.demo4.lambda表达式的接收5.捕获类中的数据成员6.lambda表达式本质是仿函数 0.lambda表达式的概念 Lambda 表达式是 C11 引入的一项特性,它允许你定义匿名的内联函数,…

文章目录

    • 0.lambda表达式的概念
    • 1.lambda表达式的形式:`[](){}`
    • 2.提出原因
    • 3.demo
    • 4.lambda表达式的接收
    • 5.捕获类中的数据成员
    • 6.lambda表达式本质是仿函数

0.lambda表达式的概念

Lambda 表达式是 C++11 引入的一项特性,它允许你定义匿名的内联函数,通常用于需要短小功能的地方,尤其是用于算法、回调函数或者并行计算等场景。Lambda 表达式的语法和函数类似,但它可以直接嵌入到代码中,而不需要单独定义一个函数。


1.lambda表达式的形式:[](){}

①[ ]:捕获列表,捕获外部变量。只读属性,非要修改需要加&。
多个特定变量用,分割
全局变量不需要捕获,直接使用
[=]按值捕获所有变量
[&]按引用捕获所有变量
[&,x]混合捕获,按引用捕获所有变量,特定变量x按值捕获
[this]:捕获当前类的this指针
②( ):函数的参数列表。没有参数的lambda表达式,可以省略 ( )
③{ }:函数的函数体

[capture](params) opt -> returnType
{body;
}

2.提出原因

为了避免func和for_each不在同一个文件,C++为了避免这种跨文件查询的麻烦,提出了lanmda表达式。lambda表达式可以看作是仿函数。

//1.引入lambda表达式的好处:原本的函数指针,现在声明和实现可以写在一起
//2.lambda表达式的形式: [](){}#include <iostream> 
#include <vector>
#include <algorithm>
using std::cout;
using std::endl;
using std::vector;void func(int value){cout << value << " ";
}void test(){vector<int> vec = {1,3,5,7,9};for_each(vec.begin(), vec.end(), func);cout << endl;
}//为了避免func在不同的文件中,考虑用lambda表达式,就可以把声明和实现写在一起了
void test2(){vector<int> vec = {2,4,6,8,10};//将func用lambda表达式实现for_each(vec.begin(), vec.end(), [](int value){ cout << value << " "; });cout << endl;
}int main()
{test();   test2();   return 0;
}

3.demo

//lambda.cpp

(1)捕获:按值捕获、按引用捕获

(2)lambda表达式中捕获的是const版本的变量,若要修改:
①按引用捕获,可在lambda表达式内修改原变量的值
②加mutable关键字,可在lambda表达式内修改副本

(3)函数的返回类型
在这里插入图片描述
在这里插入图片描述


4.lambda表达式的接收

使用变量接收lambda表达式,以期可以在别处调用lambda表达式
在这里插入图片描述


5.捕获类中的数据成员

在这里插入图片描述


6.lambda表达式本质是仿函数

在这里插入图片描述

还原网址:把代码还原成编译器的角度
在这里插入图片描述
在这里插入图片描述

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

相关文章:

  • 专注集团网站建设做网站网址
  • Flink Checkpoint 通用调优方案三种画像 + 配置模板 + 容量估算 + 巡检脚本 + 告警阈值
  • 做一个企业的网站怎么做网站开发合同怎么写
  • 大望路网站建设影楼微网站建设
  • 【滑动窗口专题】第二讲:无重复字符的最长子串
  • 如何简单的并且又能大幅度降低任务队列的锁粒度、提高吞吐量?
  • GPTL(General Purpose Timing Library)使用教程
  • 网站制作先做数据库还是前台重庆新闻论坛新闻评论
  • 【终端使用MySQL】MySQL 数据库核心操作全解析:从入门到性能优化
  • Oracle 数据库在海光平台上运行表现如何?附兼容性验证、性能优化与迁移实践
  • 网站后台账号密码忘记了怎么办宿迁558网络专业做网站
  • go学习1---》结构体和一些其他的东西
  • 兰州网站设计公司厦门网站建设中心
  • git 暂存恢复和文件误删恢复
  • TLS1.3后量子混合密钥协商技术解析及演进展望
  • flutter google play 应用不支持 16 KB
  • 无人机多处理协同作业控制姿态原理与实现
  • flutter mapbox_maps_flutter 应用不支持 16 KB
  • 佛山网站建设的首选求网站
  • 从 0 到 1 精通 MongoDB:实战场景 + 底层原理全解析
  • 建设门户网站的基本意义有哪些wordpress配置页面
  • 技术速递|使用 GitHub Copilot Agent 模式现代化 Java 项目的分步指南
  • 从Apache Doris 学习 HyperLogLog
  • RWA赋能艺术金融:艺术品代币化可行性的探索与展望
  • 成都市网站建html网站首页
  • 网站建设有关书籍创立网站做电商
  • Ansible学习----了解ansible
  • 什么是输入寄存器 什么是输出寄存器 什么是写输入寄存器 什么是读保持寄存器
  • 合网站建设郑州做网站优化地址
  • 现代软件工程课程 个人博客作业