请举一个例子说明C++ list容器使用erase函数的方法
时间: 2023-04-09 16:04:21 浏览: 128
当使用C++中的list容器时,可以使用erase函数来删除容器中的元素。erase函数有两种用法:
1. 删除单个元素
可以使用erase函数删除list容器中的单个元素,例如:
```c++
list<int> mylist = {1, 2, 3, 4, 5};
auto it = mylist.begin();
advance(it, 2); // it指向第3个元素,即3
mylist.erase(it); // 删除第3个元素
```
在上面的代码中,我们首先创建了一个包含5个整数的list容器mylist,然后使用advance函数将迭代器it指向第3个元素,最后使用erase函数删除了第3个元素。
2. 删除一段元素
除了删除单个元素外,还可以使用erase函数删除list容器中的一段元素,例如:
```c++
list<int> mylist = {1, 2, 3, 4, 5};
auto it1 = mylist.begin();
auto it2 = mylist.begin();
advance(it1, 1); // it1指向第2个元素,即2
advance(it2, 4); // it2指向第5个元素,即5
mylist.erase(it1, it2); // 删除第2个到第5个元素
```
在上面的代码中,我们首先创建了一个包含5个整数的list容器mylist,然后使用advance函数将迭代器it1指向第2个元素,将迭代器it2指向第5个元素,最后使用erase函数删除了第2个到第5个元素。
注意:在使用erase函数删除元素时,要注意迭代器的有效性,避免出现迭代器失效的情况。
阅读全文