c++ erase迭代器指向的多个元素怎么写
时间: 2024-03-21 10:40:47 浏览: 106
浅谈c++ stl迭代器失效的问题
使用 `erase` 函数时,还可以传入一对迭代器,表示要删除的元素范围。具体写法如下:
```c++
container.erase(first, last);
```
其中,`container` 是容器类的对象,`first` 和 `last` 是迭代器,表示要删除的元素范围为 `[first, last)`,即包含 `first`,但不包含 `last`。
例如,如果要删除向量 `vec` 中从第三个元素开始的三个元素,可以这样写:
```c++
std::vector<int> vec = {1, 2, 3, 4, 5};
auto first = vec.begin() + 2; // 获取指向第三个元素的迭代器
auto last = first + 3; // 获取指向第六个元素的迭代器
vec.erase(first, last); // 删除第三个到第五个元素
```
注意,这里使用 `begin()` 函数获取迭代器,然后通过加上偏移量 2 获取指向第三个元素的迭代器,再通过加上偏移量 3 获取指向第六个元素的迭代器。
阅读全文