vector erase用法
时间: 2023-08-24 19:06:48 浏览: 175
vector::erase() 是 C++ 中 std::vector 的成员函数,用于从 vector 中删除一个或多个元素。它有几种不同的用法:
1. 删除单个元素:
```cpp
iterator erase(iterator position);
```
这个函数接受一个迭代器参数 position,表示要删除的元素的位置。它返回一个指向被删除元素之后位置的迭代器。
例如:
```cpp
std::vector<int> nums = {1, 2, 3, 4, 5};
nums.erase(nums.begin() + 2); // 删除第三个元素
// 现在 nums = {1, 2, 4, 5}
```
2. 删除一个范围内的元素:
```cpp
iterator erase(iterator first, iterator last);
```
这个函数接受两个迭代器参数,表示要删除的范围 [first, last)。它返回一个指向被删除元素之后位置的迭代器。
例如:
```cpp
std::vector<int> nums = {1, 2, 3, 4, 5};
nums.erase(nums.begin() + 1, nums.begin() + 4); // 删除第二到第四个元素
// 现在 nums = {1, 5}
```
需要注意的是,erase() 函数会使得迭代器失效,因此在使用 erase() 后要小心处理迭代器的使用。
阅读全文