C++ list erase
时间: 2023-07-11 10:07:36 浏览: 100
在 C++ 的 std::list 中,erase 函数用于删除容器中的一个或多个元素。它有两种重载形式:
```c++
iterator erase (const_iterator position);
iterator erase (const_iterator first, const_iterator last);
```
第一种形式删除迭代器 `position` 所指向的元素,并将其从列表中移除。返回指向删除元素后面的元素的迭代器,如果没有这样的元素,则返回 `end()`。
第二种形式删除从迭代器 `first` 所指向的元素到迭代器 `last` 所指向的元素之间的所有元素(不包括 `last` 所指向的元素),并将它们从列表中移除。返回指向 `last` 所指向的元素后面的元素的迭代器,如果没有这样的元素,则返回 `end()`。
以下是一个简单的示例代码,用于演示如何使用 `erase` 函数:
```c++
#include <iostream>
#include <list>
int main() {
std::list<int> mylist = {1, 2, 3, 4, 5};
// 删除元素 3
auto it = mylist.begin();
std::advance(it, 2); // advance 函数用于移动迭代器
mylist.erase(it);
// 删除元素 4 和 5
it = mylist.begin();
std::advance(it, 2);
mylist.erase(it, mylist.end());
// 输出剩余元素
for (auto& x : mylist) {
std::cout << x << " ";
}
return 0;
}
```
输出结果为:
```
1 2
```
阅读全文