我正在尝试使用以下指向自定义类 tree_node
对象的指针 vector
std::vector<tree_node*> branch;
在我的代码中我需要在下面的函数中使用分支
void search_tree::tree_tries(tree_node& a){
a.visits++; //member of class tree_node
branch.push_back(&a);
if(a.nodes>0){
branch_position++;
int nodo=rand()%a.nodes;
tree_tries(a.children_nodes[nodo]);
}
else{
backtrack();//another function, enters branch[] pointers members to modify them
}
}
我的问题在于如何管理 branch
vector 。我需要使用 push_back
函数,因为我不知道我必须指向多少个对象和哪些对象,使用 push_back
可以让事情变得简单。在 backtrack()
结束时结束此函数后,我需要“重置” vector 的指针,即我需要删除它们以便 push_back
将开始从 vector 的开始。
我不确定 delete
在这里是否有用,我指向的对象是已经构建的对象,我需要以各种方式保留和使用。我只是想知道是否有一种有效的方法可以在不触摸指向的对象的情况下删除指针。
最佳答案
vector.clear()
只会清空 vector ,而不会触及指向的对象。就是这样:)
关于c++ - 指向对象的指针 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35592065/