vector的erase怎么用
时间: 2024-08-16 10:05:58 浏览: 45
`std::vector` 是 C++ 标准库中的动态数组,它提供了一个 `erase` 成员函数用于删除指定元素。`erase` 函数有几种形式:
1. **移除第一个匹配项**:
```cpp
iterator erase(iterator position);
```
这会从 `position` 开始的位置删除并返回该位置之后的第一个元素的迭代器。
2. **移除范围内的所有元素**:
```cpp
iterator erase(iter begin, iterator end);
```
删除 `[begin, end)` 区间的所有元素,并返回 `end`。
3. **移除单个元素(等价于第1种情况)**:
```cpp
size_type erase(const key_type& value);
```
删除第一个找到的值等于 `value` 的元素,返回删除的数量。
4. **移除单个元素(范围查找)**:
```cpp
size_type erase(iterator position);
```
如果提供的迭代器指向一个存在的元素,删除该元素并返回1;如果迭代器所指位置不存在,则不做任何操作并返回0。
使用示例:
```cpp
std::vector<int> v = {1, 2, 3, 4, 5};
auto it = v.begin(); // 获取初始迭代器
// 移除第一个3
it = v.erase(it); // 现在it指向4,然后移动一位到5
if (it != v.end()) {
std::cout << "Removed element: " << *it; // 输出5
}
// 或者移除区间 [2, 4)
v.erase(v.begin() + 1, v.begin() + 3);
阅读全文