ポインタの代わりにイテレータを使用するC ++でツリーデータ構造を作成するにはどうすればよいですか?私はこれを行うことができるSTLで何も見つけることができませんでした。私がしたいのは、次のようなツリーを作成して操作できることです。
#include <iostream>
#include <tree>
using namespace std;
int main()
{
tree<int> myTree;
tree<int>::iterator i = myTree.root();
*i = 42;
tree<int>::iterator j = i.add_child();
*j = 777;
j = j.parent();
if (i == myTree.root() && i == j) cout << "i and j are both pointing to the root
";
return 0;
}
ありがとう、tree.hhは私が探していたもののようです。
これが利益を得るためなら 任意のデータ構造 検索に最適化されたインデックス型 挿入が得意な場合は、 地図を使って。
マップは、 パフォーマンスは ツリーのものへ:対数 検索、対数挿入、 対数削除、線形空間。 内部的には 赤黒の木として、それは 保証ではありません。それでも、STLユーザーとして あなたが気にするのは STLのパフォーマンス保証 アルゴリズムとデータ構造 木として実装されているかどうか 小さな緑色の男性は関係ありません あなたに
私は地図が私が必要とするものかどうかはわかりませんが、情報に感謝します。私は木を実装するのではなく、可能な限りマップを使用することを覚えています。