如何循环删除迭代器里的数据
时间: 2024-05-06 16:15:58 浏览: 63
65丨迭代器模式(上):相比直接遍历集合数据,使用迭代器有哪些优势?1
如果你想在循环中删除迭代器里的数据,可以使用 `erase()` 函数。但是要注意,删除元素会使迭代器失效,因此需要使用适当的方法来维护迭代器。
以下是一个使用 `erase()` 函数循环删除迭代器里的数据的示例代码:
```cpp
std::vector<int> vec = {1, 2, 3, 4, 5, 6};
for (auto it = vec.begin(); it != vec.end(); ) {
if (*it % 2 == 0) {
it = vec.erase(it); // 删除偶数元素,并让迭代器指向下一个元素
} else {
++it; // 指向下一个元素
}
}
```
在这个例子中,我们遍历了一个整数类型的 vector,如果元素是偶数,我们就使用 `erase()` 函数删除它,并让迭代器指向下一个元素;如果是奇数,我们就让迭代器指向下一个元素。这样,我们就可以在循环中删除迭代器里的数据了。
阅读全文