vector的erase方法的用法
时间: 2023-09-13 16:04:45 浏览: 60
### 回答1:
vector的erase方法用于删除vector中的元素。它有两种用法:
1. 通过下标删除元素:
```
vector<int> myVector;
myVector.erase(myVector.begin() + 2); // 删除第3个元素
```
2. 通过迭代器删除元素:
```
vector<int> myVector;
vector<int>::iterator it = myVector.begin() + 2;
myVector.erase(it); // 删除迭代器所指向的元素
```
注意:erase方法会改变vector的大小,并且会使原来的元素下标发生改变
如果需要删除一段元素,可以使用这种用法
```
myVector.erase(myVector.begin() + 2, myVector.begin() + 5); // 删除第3个元素到第5个元素
```
### 回答2:
vector是C++标准模板库(STL)中的一个容器,可以方便地存储和操作一组元素。erase是vector的一个成员函数,用于从容器中删除指定位置的一个或多个元素。
erase方法有两种用法:
1. 删除单个元素:可以使用迭代器指定要删除的位置,并调用erase方法。例如,要删除vector v中的第三个元素,可以使用v.erase(v.begin()+2)。
2. 删除一定范围的元素:可以使用迭代器指定要删除的起始位置和结束位置,并调用erase方法。例如,要删除vector v中的第二个到第五个元素,可以使用v.erase(v.begin()+1, v.begin()+5)。
需要注意的是,erase方法会使得容器的大小减小,被删除元素之后的元素会前移。另外,调用erase方法之后,该位置后面的所有元素都会向前移动,因此需要谨慎使用迭代器。
此外,erase方法还可以返回指向被删除元素之后的第一个元素的迭代器,以便进一步操作。
总结起来,vector的erase方法用于删除容器中的元素,可以删除单个元素或一定范围的元素,操作方便灵活。使用时需要注意迭代器的使用和元素的前移。
### 回答3:
vector的erase方法是用于删除vector中的元素的。它可以根据指定位置或某个范围来删除元素。
该方法有两种用法:
1. erase(iterator position):通过指定要删除的元素位置的迭代器来删除元素。它将删除指定位置上的元素,并将后面的元素向前移动以填补空白位置。删除后,vector的大小会减小1。
例如,如果有一个存储整数的vector v,想要删除第三个元素,可以使用v.erase(v.begin() + 2)。
2. erase(iterator first, iterator last):通过指定要删除的起始位置和结束位置的迭代器来删除元素。它将删除从第一个迭代器位置到最后一个迭代器位置之间的元素(不包括最后一个迭代器位置),并将后面的元素向前移动以填补空白位置。删除后,vector的大小会相应地减小。
例如,如果有一个存储整数的vector v,想要删除第二个到第四个元素,可以使用v.erase(v.begin() + 1, v.begin() + 4)。
需要注意的是,使用erase方法删除元素后,被删除元素之后的所有元素的索引都会减小,所以在遍历vector时要特别小心,以免发生越界错误。
此外,erase方法删除元素后还会返回指向删除元素之后一个位置的迭代器,可以利用此返回值进行链式操作。