zoukankan      html  css  js  c++  java
  • lambda表达式

    学习qt的时候遇到了lambda表达式(之前偷懒没去看),补一下:

    lambda表达式出现的意义:实际上就是匿名函数(没有函数名的函数,无法在表达式之外调用),在写代码的时候不可能面面俱到把一些简单的函数从声明到实现完整地写出来,费时费力不讨好,因此需要匿名函数来干这事儿。

    格式:

    [] () {}();
    第一个方括号表明是匿名函数(类似于一种格式吧,固定的)
    第二个圆括号既是参数列表
    第三个中括号放函数体
    第四个圆括号放实参
    

      基本格式就是这样,除此之外,第一个方括号还有其他功能。

    • [ = ] 捕获(scope)先前的变量,按照传值的方式传入lambda函数体中
    • [ & ]按照传引用的方式
    • [ = , &x ] x按照传引用的方式,其他变量按照传值的方式。

    ps:如果用传值的方式传入周围变量,但是在函数体内又改变了这个变量,则需要在第二个圆括号后加入

    (para.)->mutable
    

     另外,返回类型是lambda表达式自己确定的,如果需要强制转换,同样在第二个圆括号后面加上

    -><return_type>    //mutable写在这之前
    

      

     这里加个传送门,写的不错的一篇相关博文:https://www.devbean.net/2012/05/cpp11-lambda/

    原来人类的悲欢并不相通, 我只觉得他们吵闹。
  • 相关阅读:
    n皇后问题
    POJ2155 Matrix二维线段树经典题
    hiho一下 第六十六周
    hdu1754 I hate it线段树模板 区间最值查询
    hdu5481 Desiderium
    自增运算符
    hdu-1823 Luck and Love
    Oracle 函数大全
    对前台传过来的实体是否为空 进行为空校验的N种方法
    IOC和DI的区别详解
  • 原文地址:https://www.cnblogs.com/zhlabcd/p/10838790.html
Copyright © 2011-2022 走看看