c++ - 指向对象的指针 vector

标签 c++ pointers vector

我正在尝试使用以下指向自定义类 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/

相关文章:

c++ - 从 'char' 转换为非标量类型 'Vector<char>' 抛出错误,原因不明

c++ - 不确定如何处理析构函数(类中的大型顶点数组用作同一类的其他实例的数据源)

swift - vDSP_zrvmul 不返回任何结果(或全零)

c - for循环中指针作为索引值

c++ - vector 排序和删除不起作用

c++ - 是否可以在已分配的内存上初始化 std::vector ?

c++ - 用于 ASCII 的环绕式 C++

c++ - std::getline 只读取一行:

c++ - Win7 中的 Eclipse CDT (Juno) : Cannot find g++ in PATH, iostream 未解析和其他有趣的东西

c++ - 使用 bool 类型的 vector 的段错误