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

图片说明

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

c++

4个回答

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

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

qq_35809640
wave_chtj & 引用 :比如说,一个人有多少外号,但都是指这个人,引用也是这样。如果b的值改动了,也就代表了a的值改动了
大约 2 个月之前 回复
u012939880
HockerF 就是匿名函数
大约 2 个月之前 回复

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

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

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问