如何在C++中使用迭代器而不是指针创建树数据结构?我无法在STL中找到任何可以做到这一点的东西。我想这样做是为了能够这样创建和操作树:如何在C++中创建树?
#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\n";
return 0;
}
谢谢tree.hh似乎正是我一直在寻找。
如果这是获得的 利益一个数据结构保存任意 索引类型,用于搜索 优化,在插入良好然后使用地图考虑 。
的地图是 具有性能保证相同 那些树的关联容器:对数 搜索,对数插入, 对数缺失,线性空间。 在内部他们经常被实施为 作为红黑树,尽管那不是保证 。尽管如此,作为STL用户,您应该关心的是STL 算法和数据结构的性能保证。 无论他们是否实施为树 或小绿人不应该 给你。
我不确定地图是否是我需要的,但感谢您的信息。我会记得尽可能使用地图而不是树木。