C++ 如何访问lambdas中的数组成员?

C++ 如何访问lambdas中的数组成员?,c++,lambda,C++,Lambda,我的设置中有一段代码,用于在对象数组上设置一些lambda函数,以便在其值发生变化时: for(int i = 0; i < kNumFreqs; i++) { settings.freqs[i]->setChangeFunction([&](float newValue){ DBG("filter" << i << ": " << newValue); presetDirty = true;

我的设置中有一段代码,用于在对象数组上设置一些lambda函数,以便在其值发生变化时:

for(int i = 0; i < kNumFreqs; i++)
{
    settings.freqs[i]->setChangeFunction([&](float newValue){
        DBG("filter" << i << ": " << newValue);
        presetDirty = true;
    });
}
for(int i=0;isetChangeFunction([&](float newValue){

DBG(“filter”尝试按如下值捕获
i

for(int i = 0; i < kNumFreqs; i++)
{
    settings.freqs[i]->setChangeFunction([i](float newValue){
        DBG("filter" << i << ": " << newValue);
        presetDirty = true;
    });
}
for(int i=0;isetChangeFunction([i](float newValue){

DBG(“过滤器”起作用了,虽然我也需要“this”,所以它变成了[I,this]。谢谢。作为一个一般性建议,总是显式地编写您想要捕获的内容被认为是一种良好的做法。