首页 > 试题广场 >

简述一下C++11 中 Lambda 新特性

[问答题]

简述一下C++11 中 Lambda 新特性

推荐

得分点

作用、语法形式

参考答案

标准回答

  1. C++ 11 中的 Lambda 表达式用于定义并创建匿名的函数对象,用来简化编程工作。

  2. Lambda 的语法形式:

    [捕获列表] (参数列表) -> 返回值类型 { 函数体 };
    • [捕获列表]:这部分是捕获区,用于捕获外部变量,标识一个 Lambda 表达式的开始,不能省略

      • 捕获列表为空:不捕获外部变量
      • =:表示值传入
      • &:表示引用传入

      示例:

      [a]:将 a 按值进行传递
      [&a]:将 a 按引用进行传递。
      [a,&b]:将 a 按值传递,b 按引用进行传递。
      [=,&a,&b]:除 a 和 b 按引用进行传递外,其它参数都按值进行传递。
      [&,a,b]:除 a 和 b 按值进行传递外,其它参数都按引用进行传递。
    • (参数列表):同函数参数列表

    • -> 返回值类型:这部分如果返回值为 void,可以省略

    • { 函数体 }:同函数的函数体

编辑于 2021-09-15 11:30:44 回复(0)
链接:https://www.nowcoder.com/questionTerminal/9422145aa5e249e19defe4628caa3be4
来源:牛客网
  • C++ 11 中的 Lambda 表达式用于定义并创建匿名的函数对象,用来简化编程工作。

  • Lambda 的语法形式:

    1
    [捕获列表] (参数列表) -> 返回值类型 { 函数体 };
    • [捕获列表]:这部分是捕获区,用于捕获外部变量,标识一个 Lambda 表达式的开始,不能省略

      • 捕获列表为空:不捕获外部变量
      • =:表示值传入
      • &:表示引用传入

      示例:

      1
      2
      3
      4
      5
      [a]:将 a 按值进行传递
      [&a]:将 a 按引用进行传递。
      [a,&b]:将 a 按值传递,b 按引用进行传递。
      [=,&a,&b]:除 a 和 b 按引用进行传递外,其它参数都按值进行传递。
      [&,a,b]:除 a 和 b 按值进行传递外,其它参数都按引用进行传递。
    • (参数列表):同函数参数列表

    • -> 返回值类型:这部分如果返回值为 void,可以省略

    • { 函数体 }:同函数的函数体

  • 发表于 2022-02-09 09:50:55 回复(0)