簡體   English   中英

指向對象的指針的向量

[英]Vectors of pointers to objects

我正在嘗試使用以下指向自定義類tree_node對象的指針的矢量

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向量。 我需要使用push_back函數,因為我不知道我必須指向多少個對象,使用push_back使事情變得容易。 backtrack()結束時結束此函數之后,我需要“重置”向量的指針,即我需要擦除它們,以便push_back從向量的開頭開始分配。

我不確定delete在這里是否有用,我指向的對象已經是構造的對象,需要以各種方式保留和使用。 我只是想知道是否有一種有效的方法來刪除指針而不觸摸指向的對象。

vector.clear()將只清空向量,而不會接觸所指向的對象。 而已 :)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM