c++list earse
时间: 2023-10-08 08:11:02 浏览: 54
C++中的`list`是一个双向链表容器,提供了删除操作`erase`用于删除容器中指定的元素。`erase`方法有以下几种用法:
1. `iterator erase (iterator position)`:删除指定位置上的元素,返回指向被删除元素之后元素的迭代器。
2. `iterator erase (iterator first, iterator last)`:删除指定区间内的元素,返回指向被删除元素之后元素的迭代器。
注意:在删除元素后,原来指向被删除元素的迭代器都会失效,需要重新获取迭代器。
以下是一个使用`erase`方法删除元素的例子:
```c++
#include <iostream>
#include <list>
using namespace std;
int main()
{
list<int> lst;
for(int i=1;i<=5;i++)
lst.push_back(i);
list<int>::iterator it = lst.begin();
advance(it,2); // 指向第3个元素
lst.erase(it); // 删除第3个元素
for(auto x:lst)
cout<<x<<" "; // 输出:1 2 4 5
return 0;
}
```
以上代码中,先在`list`中插入了1~5五个整数,然后使用`advance`方法将迭代器`it`指向第3个元素,最后使用`erase`方法删除第3个元素。输出结果为1 2 4 5,即第3个元素已经被删除。