c++遍历一个list并对其中所有成员使用delete
时间: 2024-03-23 17:43:20 浏览: 53
List集合遍历和删除操作
在 C++ 中,可以使用 for 循环和迭代器来遍历一个 list 并对其中所有成员使用 delete 释放内存。示例代码如下:
```c++
#include <list>
// 定义一个结构体作为 list 的成员对象
struct MyStruct {
int* data;
MyStruct(int val) {
data = new int(val);
}
~MyStruct() {
delete data;
}
};
int main() {
// 创建一个 list 对象,并向其中添加若干成员对象
std::list<MyStruct*> myList;
myList.push_back(new MyStruct(1));
myList.push_back(new MyStruct(2));
myList.push_back(new MyStruct(3));
// 遍历 list 并使用 delete 释放成员对象的内存
for (auto it = myList.begin(); it != myList.end(); ++it) {
delete *it;
}
// 清空 list
myList.clear();
return 0;
}
```
上述代码中,我们定义了一个结构体 MyStruct 作为 list 的成员对象,并在 MyStruct 的构造函数中使用 new 关键字动态分配内存。在 MyStruct 的析构函数中,我们使用 delete 关键字释放成员对象的内存。在主函数中,我们向 list 中添加若干成员对象,并使用 for 循环和迭代器遍历 list 并使用 delete 释放成员对象的内存。最后,我们使用 clear 函数清空 list。
阅读全文