如何使用带有附加参数的for_each

How to use for_each with additional parameters?

本文关键字:for each 参数 何使用      更新时间:2023-10-16

我想弄清楚for_each()是如何使用的。首先,我变换了这个循环

for(int i = 0; i < myvector.size(); ++i){
    myvector[i].a.b. = true;
}

auto enable [](Myvect &mv) {mv.a.b = true;};
for_each(myvector.begin(), myvector.end(), enable);

这个工作正常。


现在我想对以下循环使用for_each结构:

for(int i = 0; i < myvector.size(); ++i){
    foo(local_var, myvector[i]);
}

这可能吗?

您可以简单地将foo放入lambda函数中:

for_each( myvector.begin(), myvector.end(), 
                           [local_var](Myvect& mv) // notice reference
                           { 
                           // Assuming you want to modify mv
                              foo(local_var, mv ); 
                           }
        );