如何在for_each期间添加元素
How to add elements during for_each
我正在尝试执行条件添加:
std::for_each(foos.begin(), foos.end(),[&](Foo p){
if (p.passesSomeTest()){
p.change();
foos.push_back(p);
}
});
基本上,我有一个元素列表,使用这些元素,如果它们符合某些条件,我想创建它们的副本,对其进行一些修改,然后将其添加到同一列表中。
我不需要我的for_each
来检查新添加的元素。
有什么方法可以用stl做到这一点吗?
使用临时列表简化
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
相关文章:
- 有没有办法向这个向量添加元素?
- 如何在提升间进程中构建具有给定计数的向量并向其添加元素
- 如何在 Arduino 字符串的开头添加元素.类似于 JS unshift();
- C++向数组添加元素并调整数组大小
- 我无法向 c++ 添加元素
- BST 不添加元素
- 调整数组大小并添加元素 C++
- 向向量添加元素
- 如何在不使用标准算法的情况下在排序向量中添加 c 元素?
- 双链接列表添加元素不起作用,不知何故它总是保持为空
- 当我向 vector<int *> 添加元素时,我遇到了一些问题
- 动态地添加元素
- 静态2D数组,添加元素
- 在一个类中向向量添加元素不适用于其他类
- 在数组中添加元素将不接受类似的元素
- STD :: MAP-使用下标操作员与插入方法添加元素
- 动态数组添加元素而不创建结构变量/对象
- 以下向 c++ 向量添加元素的方法有什么区别
- 如何在 std::map 中添加元素自己进行分配
- C++在向量中添加元素的双精度