我必须完全删除具有可变数量的子代的树。删除后,我必须创建一个新对象,我的代码将停止工作。这就是我正在做的-
struct node {
string data;
vector<node*> child;
};
class lin
{
vector<node*> pwd;
node* root;
public:
lin()
{ string m;
root = newNode(m);
pwd.push_back(root);
}
//other functions..
}
int main(){
lin* obj = new lin();
while(condition){
delete obj;
lin* obj = new lin();
}
}
我什至尝试使用析构函数分别删除节点,但没有收获。
~lin(){
cout<<"GONE"<<endl;
int l = (root->child).size();
for(int i=0;i<l;i++)
{
delete (root->child)[i];
}
delete root;
}
有人可以指出我的错误并提出更好的方法吗?