如何在 lambda 中访问数组成员
How to access array members in lambdas?
我的设置中有这段代码,可以在对象数组上设置一些lambda函数,以便在它们的值发生变化时:
for(int i = 0; i < kNumFreqs; i++)
{
settings.freqs[i]->setChangeFunction([&](float newValue){
DBG("filter" << i << ": " << newValue);
presetDirty = true;
});
}
问题是在 lambda 内部,i 的值是垃圾。我该怎么做?
谢谢。
尝试按值捕获i
,如下所示:
for(int i = 0; i < kNumFreqs; i++)
{
settings.freqs[i]->setChangeFunction([i](float newValue){
DBG("filter" << i << ": " << newValue);
presetDirty = true;
});
}
(变化发生在 lambda 的[]
之间(
相关文章:
- 在 C++ 中访问数组负索引处的内存不会返回垃圾
- 使用指针访问数组中的对象数据成员
- VTK 图像数据,访问数组中的 1 个图像
- 调用函数后无法访问数组
- 如何从地图访问数组的元素?
- 访问数组中的不同元素
- 使用指针访问数组元素时出现意外结果
- 使用指针访问数组的值
- C++基于1而不是0的访问数组,方法是在编译时移位
- 如何在主函数之外访问数组?
- 如何在 llvm 的 cpp api 中使用 CreateInBoundsGEP 来访问数组的元素?
- 访问数组中所有结构的成员
- C 是否每次访问数组时都复制元素?
- C++ 为什么访问数组中的元素会返回指针?
- 如何通过指针访问数组的元素
- 指针数组交换无需直接访问数组
- 直接从指针/地址访问数组的元素
- 我有一个 Qt 对象的 2d 数组,我已经用值播种了这些对象。如何访问数组中特定对象的值并更改它们?
- 如何使用 C+ 中的指针访问数组中的特定索引
- 通过两个下标访问数组成员