我试图弄清楚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 );
                           }
        );

关于c++ - 如何将for_each与其他参数一起使用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24576935/

10-13 08:33