これが私の Node クラスの簡略化されたバージョンです:
class Node {
public:
Node();
// indicators of whether the node is a top or bottom node
bool Top;
bool Bot;
// pointers for tree structure
Node *Parent;
Node *LeftC;
Node *RightC;
std::list<Node*> getNodesList();
};
私が望むのは、特定の順序でツリー内のノードへのポインターのリストを取得できることです。これを行うために次のコードを試しました:
std::list<Node*> Node::getNodesList(){
if (Bot) return (std::list<Node*>(1,this));
else {
std::list<Node*> temp (1,this);
temp.splice(temp.end(), LeftC->getNodesVector()); // Combine with left childrens
temp.splice(temp.end(), RightC->getNodesVector()); // Combine with right childrens
return temp;
}
}
スプライス機能が機能せず、エラーが発生します。
だから私の質問は:
- リストを結合する splice 関数が機能しないのはなぜですか?
- ノードへのポインターのリストを返すより効率的な方法はありますか?