vector 迭代器erase
时间: 2023-12-15 07:06:18 浏览: 95
vector的迭代器
vector是C++ STL中的一个容器,它提供了一种动态数组的实现方式。vector迭代器erase()函数用于删除vector中的元素,它有两种重载方式:
1. erase(pos):删除pos位置上的元素,返回指向被删除元素之后的元素的迭代器。
2. erase(first, last):删除[first, last)区间内的元素,返回指向被删除元素之后的元素的迭代器。
需要注意的是,使用erase()函数删除元素后,被删除元素之后的所有元素都会向前移动一个位置,因此迭代器也会失效。为了避免这种情况,可以使用第二种重载方式,即传入[first, last)区间,只删除该区间内的元素。
下面是一个使用erase()函数删除vector中偶数元素的例子:
```c++
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<int> v = {1, 2, 3, 4, 5, 6};
vector<int>::iterator it = v.begin();
while (it != v.end()) {
if (*it % 2 == 0) {
it = v.erase(it);
} else {
++it;
}
}
for (auto e : v) {
cout << e << " ";
}
cout << endl;
return 0;
}
```
输出结果为:
```
1 3 5
```
阅读全文