vector的erase用法
时间: 2023-10-12 13:06:18 浏览: 423
c++之vector容器erase操作
5星 · 资源好评率100%
vector的erase函数用于从向量中删除指定位置的元素或指定范围的元素。它有两种常见的用法:
1. 删除单个元素:
```cpp
vector<int> vec = {1, 2, 3, 4, 5};
vec.erase(vec.begin() + index);
```
这里的`index`是要删除的元素在向量中的下标位置。通过`vec.begin() + index`可以获取到该元素的迭代器,然后传递给`erase`函数进行删除。
2. 删除指定范围内的元素:
```cpp
vector<int> vec = {1, 2, 3, 4, 5};
vec.erase(vec.begin() + start, vec.begin() + end);
```
这里的`start`和`end`分别是要删除的范围的起始位置和结束位置(不包括结束位置)。通过迭代器指定范围后,传递给`erase`函数即可删除这个范围内的元素。
需要注意的是,在调用`erase`函数后,被删除元素之后的所有元素都会向前移动,导致迭代器、引用和指针失效。因此,在使用迭代器访问元素时要特别小心,确保不会越界或访问无效的位置。
阅读全文