Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/127.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 固定大小缓冲区中的树实现_C++_C_Tree - Fatal编程技术网

C++ 固定大小缓冲区中的树实现

C++ 固定大小缓冲区中的树实现,c++,c,tree,C++,C,Tree,在(线性)缓冲区中存在哪些树的开源实现(每个节点具有任意数量的子节点;包含int或指针之类的小数据类型的节点(当然,除了特定于实现的索引数据之外))呢?(显然,树节点的最大数量受缓冲区大小的限制) (图形而不是树也可以)。您可以采用允许有状态分配器的树的任何实现,并在固定大小的缓冲区上实现自定义分配器 虽然C++标准不能保证对状态分配器的支持,但是它们在大多数时候都是用“大多数STL实现”来工作的。分配器状态通常只是在容器之间移动节点时的问题 如果您可以使用一个实例,则缓冲区也可以是模板参数。您

在(线性)缓冲区中存在哪些树的开源实现(每个节点具有任意数量的子节点;包含int或指针之类的小数据类型的节点(当然,除了特定于实现的索引数据之外))呢?(显然,树节点的最大数量受缓冲区大小的限制)


(图形而不是树也可以)。

您可以采用允许有状态分配器的树的任何实现,并在固定大小的缓冲区上实现自定义分配器

<>虽然C++标准不能保证对状态分配器的支持,但是它们在大多数时候都是用“大多数STL实现”来工作的。分配器状态通常只是在容器之间移动节点时的问题


如果您可以使用一个实例,则缓冲区也可以是模板参数。

您可以采用允许有状态分配器的树的任何实现,并在固定大小的缓冲区上实现自定义分配器

<>虽然C++标准不能保证对状态分配器的支持,但是它们在大多数时候都是用“大多数STL实现”来工作的。分配器状态通常只是在容器之间移动节点时的问题


如果您可以使用一个实例,那么缓冲区也可以是一个模板参数。

有一个boost::graph for graph,但这就像用核弹杀死一只麻雀:)有任意数量的子对象?二叉树非常简单,我不知道有任意数量的子树的简单实现,除非固定缓冲区中的节点包含索引其子树的更复杂数据。我很想知道答案。请问你打算怎么处理这棵树?很久以前,我对序列化编译器中间数据也有类似的想法。在C++中这样做可能会引起问题,因为它可能试图在不期望的类中隐藏指针。您还必须通过BASE+索引而不是指针进行引用。您在这里试图解决的基本问题是什么,而不是通过普通树来解决的?多一点背景知识可以帮助我们找到解决方案(或者这是严格的理论吗?)。有一个boost::graph for graph,但它就像用核武器杀死一只麻雀:)和任意数量的孩子?二叉树非常简单,我不知道有任意数量的子树的简单实现,除非固定缓冲区中的节点包含索引其子树的更复杂数据。我很想知道答案。请问你打算怎么处理这棵树?很久以前,我对序列化编译器中间数据也有类似的想法。在C++中这样做可能会引起问题,因为它可能试图在不期望的类中隐藏指针。您还必须通过BASE+索引而不是指针进行引用。您在这里试图解决的基本问题是什么,而不是通过普通树来解决的?多一点上下文可以帮助我们找到解决方案(或者说这是严格理论上的吗?)。我的想法是一样的,但我怀疑OP想要一个将子引用存储为索引而不是指针的方法,这样树就可以很容易地序列化或在RAM中移动。现有的C++模板的实现必须专门设计以允许非指针引用值。我不怀疑这样的事情存在,甚至可能重载
&
*
运算符,并使用自定义类型作为引用(或者甚至可能是迭代器),但这是一个很高的要求。@Nategose:我真的希望你指的是一元
&
*
。自定义分配器可以设计为使用索引作为指针,但我不确定STL分配器是否可以做到这一点。@bk1e:嗯。。。我很尴尬。是的,我的意思是一元。我的想法是一样的,但我怀疑OP想要一个将子引用存储为索引而不是指针的引用,这样树就可以很容易地序列化或在RAM中移动。现有的C++模板的实现必须专门设计以允许非指针引用值。我不怀疑这样的事情存在,甚至可能重载
&
*
运算符,并使用自定义类型作为引用(或者甚至可能是迭代器),但这是一个很高的要求。@Nategose:我真的希望你指的是一元
&
*
。自定义分配器可以设计为使用索引作为指针,但我不确定STL分配器是否可以做到这一点。@bk1e:嗯。。。我很尴尬。是的,我是说一元。