cpp list库删除特定节点
时间: 2023-08-22 11:09:38 浏览: 51
在C++ STL的list容器中,您可以使用`std::list::erase()`函数删除list容器中的一个或多个元素。如果您要删除list容器中的特定节点,可以使用`std::list::erase()`函数和一个指向该节点的迭代器。以下是一些示例代码:
```cpp
#include <iostream>
#include <list>
int main() {
std::list<int> mylist = { 1, 2, 3, 4, 5 };
auto it = std::find(mylist.begin(), mylist.end(), 3);
if (it != mylist.end()) {
mylist.erase(it);
std::cout << "The list after removing the node with value 3:" << std::endl;
for (auto& x : mylist) {
std::cout << x << " ";
}
std::cout << std::endl;
}
else {
std::cout << "The node with value 3 is not found in the list." << std::endl;
}
return 0;
}
```
在上面的代码中,我们使用`std::find()`函数查找值为3的节点,并使用`std::list::erase()`函数删除该节点。最后,我们遍历整个list容器,并将其输出到控制台。
需要注意的是,`std::list::erase()`函数将在list容器中删除一个或多个元素,并返回一个指向下一个元素的迭代器。在上面的示例代码中,我们没有使用函数返回的迭代器,因为我们只删除了一个元素。如果您删除多个元素,则可以使用函数返回的迭代器指向下一个元素,并在后续操作中使用它们。