指向对象的指针的向量

时间:2016-02-24 02:18:45

标签: c++ pointers vector

我尝试使用以下指向自定义类tree_node

对象的指针向量
std::vector<tree_node*> branch;

在我的代码中我需要在以下函数中使用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向量。我需要使用push_back函数,因为我不知道我必须指出多少和哪些对象,并使用push_back让事情变得简单。在backtrack()结束后结束此功能后,我需要&#34;重置&#34;向量的指针,即我需要将它们擦除,以便push_back将从向量的开头开始分配。

我不确定delete在这里是否有用,我指向的对象已经构建了我需要以各种方式保留和使用的对象。我只是想知道是否有一种有效的方法来删除指针而不触及指向的对象。

1 个答案:

答案 0 :(得分:4)

vector.clear()将清空向量而不触及指向的对象。就是这样:))