迭代器删除指定元素
时间: 2023-08-12 09:19:43 浏览: 118
vector list map 遍历删除制定元素 防止迭代器失效的实例
如果你想在迭代器中删除指定元素,可以使用迭代器的 erase() 函数。具体步骤如下:
1. 定义一个迭代器并指向要删除的元素。
2. 调用 erase() 函数,将要删除的元素从容器中移除。
3. 如果删除后需要继续遍历容器中的元素,需要更新迭代器,保持在正确的位置。
下面是一个示例代码:
```
vector<int> vec {1, 2, 3, 4, 5};
auto it = vec.begin();
while (it != vec.end()) {
if (*it == 3) {
it = vec.erase(it); // 删除元素 3
} else {
++it;
}
}
```
在上面的代码中,我们定义了一个迭代器 it 并初始化为容器的开始位置。然后,在 while 循环中遍历容器中的元素。如果当前元素等于 3,我们调用 erase() 函数将其从容器中移除,并更新迭代器 it 的位置。如果当前元素不等于 3,则继续向后遍历。最终,容器中的元素将会变为 {1, 2, 4, 5}。
阅读全文