shenliu0558
iverson_fa
采纳率100%
2020-01-03 17:38

大佬求解,C++代码中的[&]()是什么意思?

5
已采纳

图片说明

auto f_norm = &{}
代码贴不全,只能贴图片了

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

4条回答

  • lty2017 lty2017 1年前

    这是c++的lambada表达式,匿名函数的写法,用来捕获匿名函数外的变量。
    捕获匿名函数外的变量以引用形式借用说明
    里面的x,y,z代表变量名,不写变量名就是按[&]{}里使用到的外部变量以引用方式在匿名函数中使用。

    点赞 评论 复制链接分享
  • King_weng king_weng 1年前

    & { };是一个lambda表达式(匿名函数),其中的&是表示,以引用的形式捕获外部的变量,以在lambda中使用该变量,&表示的是一个参数的引用,实际上就是这个参数的别名,
    即你如果以引用的形式捕获这个变量则该变量的地址与外部传进来的地址是一样的(同一个变量);而如果是以值的形式(普通传参)传进来,实际上是将该变量
    复制了一个再传进来,如果你去获取它们的地址会发现是不同的。

    点赞 评论 复制链接分享
  • qq_35809640 wave_chtj 1年前

    & 引用 :比如说,一个人有多少外号,但都是指这个人,引用也是这样。如果b的值改动了,也就代表了a的值改动了

    点赞 评论 复制链接分享
  • u012939880 HockerF 1年前

    [&] 以引用形式捕获所有外部变量;
    https://zhidao.baidu.com/question/1888069978712076508

    点赞 评论 复制链接分享