• Lambda函数


    什么是Lambda函数

    Lambda函数也叫Lambda表达式,是匿名函数,就是没有名字的函数,和传统的函数不一样。Lambda表达式是C++11中引入的新概念,用于定义并创建匿名的函数对象。首先看下Lambda表达式的基本结构。

    [捕捉列表] (参数) mutable ->返回值类型 {函数体}

    1、 [ ],标识一个,Lambda匿名函数的开始,这个必须有,不能省略,函数对象参数是传递给编译器自动生成的函数对象类的构造函数的。函数对象参数只能使用到Lambda定义为止Lambda所在的作用域范围内可见的局部变量,包括Lambda所在类的this。函数对象参数有以下形式

    a)       空,没有使用任何的函数对象参数

    b)       =,函数体内使用Lambda所在范围内的可见局部变量包括所在类的this的传值方式,相当于编译器给Lambda所在地的所有局部变量复制一份给Lambda函数

    c)        &,函数体内使用Lambda所在范围内的可见局部变量包括所在类的this的引用方式,相当于编译器给Lambda所在地的所有局部变量引用一份给Lambda函数

    d)       this,函数体内可以使用Lambda所在内的成员变量

    e)       a,不是字母,而是指具体一个变量a,那么Lambda内拷贝一个a使用

    f)         &a,Lambda内引用a

    g)       a,&b,拷贝a,引用b

    h)       =,&a,&b,除ab引用,其余拷贝

    i)         &,a,b。除ab拷贝,其余引用

    2、 函数参数,这个跟常规函数一样。

    3、 mutatble,修改关键字,再对应位置mutatble关键字,才能修改函数对象参数。否则报错。可以有,也可以没有,但有才能修改。lambda默认是const,也就是不能修改本地变量。

    4、 ->return-type返回值的方式,既然是函数就可能有返回值,那么->就是有返回值的函数标志。

    5、 函数体,跟常规函数一样。


    __EOF__

  • 本文作者: Athenavi
  • 本文链接: https://www.cnblogs.com/Athenavi/p/16814933.html
  • 关于博主: 评论和私信会在第一时间回复。或者直接私信我。
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
  • 声援博主: 如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。
  • 相关阅读:
    django —— 搭建项目及简单测试
    java计算机毕业设计衣依服装销售平台源码+系统+数据库+lw文档
    GEE|时间序列分析(五)
    SpringMVC(4)——数据封装与异常处理
    小程序开发直传腾讯云操作步骤
    drools规则引擎04
    SMT:引领新时代公链赛道的龙头之选!
    python Jupyter程序之Matplotlib数据可视化
    19-springcloud(上)
    Vue系列(一)之 Vue入门,Vue的生命周期以及前后端分离介绍
  • 原文地址:https://www.cnblogs.com/Athenavi/p/16814933.html