[英]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.