优化代码for (auto in = Iniomdl.begin(); in != Iniomdl.end(); ++in) { for (auto ic = in->lscsys.begin(); ic != in->lscsys.end(); ++ic) { if (ic->yes_or_not == 3) { ic->remove(); } } }
时间: 2024-03-09 16:48:45 浏览: 83
优化代码
可以使用 `remove_if` 函数来优化代码,示例如下:
```c++
for (auto& in : Iniomdl) {
in.lscsys.erase(
std::remove_if(in.lscsys.begin(), in.lscsys.end(), [](const auto& ic){ return ic.yes_or_not == 3; }),
in.lscsys.end()
);
}
```
这里使用了 lambda 表达式来指定移除的条件,即 `ic.yes_or_not == 3`。该 lambda 表达式返回一个 bool 类型的值,如果为 true,则表示需要移除该元素。
`remove_if` 函数会将需要移除的元素移动到容器的末尾,并返回指向第一个被移除元素的迭代器。最后再使用 `erase` 函数来删除这些元素,从而达到优化代码的目的。
阅读全文