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

    lambda
    可调用对象:对于一个对象或一个表达式,如果可以对其使用调用运算符,则称它为可调用的。

    四种可调用对象:函数和函数指针,重载了函数调用运算符的类,以及lambda表达式

    lambda可能定义在函数内部,一个lambda表达式具有如下形式:
    [capture list](parameter list) -> return type { function body }
    capture lis(捕获列表)是一个lambda所在函数中定义的局部变量的列表,lambda必须使用尾置返回来指定返回类型

    可以忽略参数列表和返回类型,但必须永远包含捕获列表和函数体
    如果忽略返回类型,lambda根据函数体中的代码推断出返回类型

    向lambda传递参数
    与普通函数不同,lambda不能有默认参数(即缺省值)

    使用捕获列表
    一个lambda可以出现在一个函数中,使用其局部变量,在其中提供一个以逗号分隔的名字列表

    被捕获的变量的值是在lambda创建时拷贝,而不是调用时拷贝

    默认情况下,对于一个值被拷贝的变量,lambda不会改变其值。如果希望改变,就必须在参数列表首加上关键字mutable。

    //lambda可以看成一个未命名的类,其中的捕获列表可以看成是数据成员

  • 相关阅读:
    (原)torch中threads的addjob函数使用方法
    (原)torch中提示Unwritable object <userdata> at <?>.callback.self.XXX.threads.__gc__
    (原)luarocks更新某个模块
    EL表达式
    leetcode 151反转单词
    括号生成
    leetcode 机器人能到达的位置
    leetcode 翻转数组
    leetcode 460 LFU缓存
    leetcode 42 接雨水
  • 原文地址:https://www.cnblogs.com/pixel-Teee/p/12241637.html
Copyright © 2011-2022 走看看