如何使用带有其他参数的for_each?

时间:2014-07-04 14:57:22

标签: c++ c++11 foreach

我想弄清楚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]);
}

这可能吗?

1 个答案:

答案 0 :(得分:1)

你可以简单地将foo放在lambda函数中:

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