优化代码list <UserCmdlData>::iterator inolist; for (inolist = Iniomdl.begin(); inolist != Iniomdl.end(); ++inolist) { if (inolist->yes_or_not==3){ inolist->remove(); } }
时间: 2024-03-09 08:48:36 浏览: 100
面向对象程序设计英文教学课件:14_Design Iterator.ppt
可以使用 `remove_if` 函数来优化代码,这个函数可以移除满足条件的元素。示例如下:
```python
Iniomdl.erase(
std::remove_if(Iniomdl.begin(), Iniomdl.end(), [](const UserCmdlData& i){ return i.yes_or_not == 3; }),
Iniomdl.end()
);
```
这里使用了 lambda 表达式来指定移除的条件,即 `i.yes_or_not == 3`。该 lambda 表达式返回一个 bool 类型的值,如果为 true,则表示需要移除该元素。
`remove_if` 函数会将需要移除的元素移动到容器的末尾,并返回指向第一个被移除元素的迭代器。最后再使用 `erase` 函数来删除这些元素,从而达到优化代码的目的。
阅读全文