Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/151.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++_Serialization_Recursion_Boost - Fatal编程技术网

C++ 使用递归增强序列化

C++ 使用递归增强序列化,c++,serialization,recursion,boost,C++,Serialization,Recursion,Boost,我在运行时有一个非常递归的类层次结构,我想序列化它。比如: 货物->仓库目标->[工人在路上]->当前道路->当前工人->当前携带的货物->仓库目标->。。。 其中“仓库目标”可能相同,也可能不同。因此,图形可以(并且确实)包含循环 目前使用的是自己的序列化内容,递归地跳入带有“已序列化”检测的图中。然而,由于层次较深,windows上的堆栈在某些情况下似乎太小 我们还想切换到boost,以便于维护。boost如何处理这个递归问题?boost会像我们以前一样尝试递归地处理它吗 我想到的另一种方法

我在运行时有一个非常递归的类层次结构,我想序列化它。比如:

货物->仓库目标->[工人在路上]->当前道路->当前工人->当前携带的货物->仓库目标->。。。 其中“仓库目标”可能相同,也可能不同。因此,图形可以(并且确实)包含循环

目前使用的是自己的序列化内容,递归地跳入带有“已序列化”检测的图中。然而,由于层次较深,windows上的堆栈在某些情况下似乎太小

我们还想切换到boost,以便于维护。boost如何处理这个递归问题?boost会像我们以前一样尝试递归地处理它吗


我想到的另一种方法是进行浅层序列化,不是序列化成员指针,而是存储它们的ID,并将它们放在列表中以供以后序列化。然后迭代地执行它们,直到什么都没有留下。这仍然意味着,我们必须使用我们自己的算法,对于反序列化,我们需要存储指向指针的指针,并在反序列化该对象后进行更新。

考虑使用boost::graph。它还支持boost::Serialization此应用程序中的“图形”“its a game”实际上不是一个图形,而只是类似于使用或属于其他实例的图形。我不认为在这里使用boost:graph是合适的。但是我以前没有用过它,所以我不知道是否有一个好的方法也可以用于“非图”