我正在尝试进行条件添加:
std::for_each(foos.begin(), foos.end(),[&](Foo p){
if (p.passesSomeTest()){
p.change();
foos.push_back(p);
}
});
基本上,我有一个元素列表,并使用这些元素,如果它们符合某些条件,我想创建它们的副本,稍微修改它,然后将它添加到同一个列表中。
我不需要for_each
来检查新添加的元素。
有没有办法使用stl?
来做到这一点答案 0 :(得分:1)
使用临时列表使其更容易
std::for_each(foos.begin(), foos.end(),[&](Foo p){
if (p.passesSomeTest()){
p.change();
foos2.push_back(p); // insert to temporary foos2 list
}
});
foos.insert(foos.end(), foos2.begin(), foos2.end()); // insert temporary list to foos