vector erase函数删除指定元素
时间: 2024-10-12 11:13:22 浏览: 42
vector与map的erase()函数详细解析
`vector erase` 函数是 C++ 标准库中的一个成员函数,它用于从 `std::vector` 中移除特定位置的元素。这个函数有两个版本:
1. `erase(iterator pos)`:它接受一个迭代器作为参数,表示要删除的元素的位置。该位置之前的元素会向右移动填补空缺。
```cpp
std::vector<int> v = {1, 2, 3, 4, 5};
v.erase(v.begin() + 2); // 删除索引为2的元素 (3),结果是{1, 2, 4, 5}
```
2. `erase(start, end)`:它接受两个迭代器,分别指定了要删除的范围的起始和结束位置。在这个范围内所有的元素都会被删除。
```cpp
std::vector<int> v = {1, 2, 3, 4, 5};
v.erase(v.begin(), v.begin() + 3); // 删除索引为0到2的元素 ({1, 2, 3}),结果是{4, 5}
```
注意,在使用 `erase` 后,原容器的大小会减小,并且可能会导致其他元素的地址改变。如果不再需要保留原迭代器指向的数据,建议在调用 `erase` 后更新它们。
阅读全文