在C++中,遍历对象列表并删除对象可以通过以下步骤实现:
下面是一个示例代码,演示如何遍历对象列表并删除对象:
#include <iostream>
#include <vector>
class MyClass {
public:
int id;
MyClass(int _id) : id(_id) {}
};
int main() {
std::vector<MyClass*> objList;
// 添加对象到列表
objList.push_back(new MyClass(1));
objList.push_back(new MyClass(2));
objList.push_back(new MyClass(3));
// 遍历对象列表并删除对象
for (auto it = objList.begin(); it != objList.end();) {
if ((*it)->id == 2) {
delete *it;
it = objList.erase(it);
} else {
++it;
}
}
// 输出剩余对象的id
for (const auto& obj : objList) {
std::cout << obj->id << " ";
}
std::cout << std::endl;
// 释放剩余对象的内存空间
for (const auto& obj : objList) {
delete obj;
}
return 0;
}
在这个示例中,我们创建了一个存储MyClass对象指针的std::vector容器objList,并添加了三个对象。然后,我们使用迭代器遍历objList,判断对象的id是否为2,如果是,则删除对象并从容器中移除;否则,继续遍历。最后,我们输出剩余对象的id,并释放剩余对象的内存空间。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云