我想弄清楚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]);
}
这可能吗?
答案 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 );
}
);