我在考虑这个循环:
struct tmp {
int min;
int max;
tmp(int a, int b) :min(a), max(b){};
};
std::vector <tmp> data;
for (auto tmp_a : data){
if(tmp_a.min == 0){
//how to delete tmp_a item from data from there?
}
}
Run Code Online (Sandbox Code Playgroud)
当然我可以迭代这个循环,但我不认为这是最快的方法.(当然我可能是错的 - 然后纠正我)
问题: 如何删除范围循环中的项目?(使用最快的方法)
小智 8
放弃循环并使用擦除 - 删除习语.
data.erase(std::remove_if(data.begin(), data.end(), [] (tmp t) {
return t.min == 0;
}), data.end());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
509 次 |
| 最近记录: |