C++实现清理List链表中存放的指针
时间: 2024-03-27 15:41:01 浏览: 27
以下是C++实现清理List链表中存放的指针的示例代码:
```c++
#include <iostream>
#include <list>
using namespace std;
class Node {
public:
Node(int val) : val(val), next(nullptr) {}
~Node() {
delete next; // 清理 next 指针
next = nullptr;
}
int val;
Node* next;
};
int main() {
list<Node*> mylist;
// 添加节点到链表中
for (int i = 0; i < 5; i++) {
Node* node = new Node(i);
mylist.push_back(node);
}
// 清理链表中的指针
while (!mylist.empty()) {
Node* node = mylist.front();
mylist.pop_front();
delete node; // 释放节点内存
}
return 0;
}
```
在上述代码中,我们定义了一个 `Node` 类来表示链表节点,其中包含一个 `val` 成员变量和一个 `next` 指针。在 `Node` 的析构函数中,我们清理了 `next` 指针所占用的内存。在 `main` 函数中,我们通过 `list` 容器来管理节点,并在程序结束时清理链表中的所有指针。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)