QVector Deep Copy

时间:2013-09-29 06:53:30

标签: qt qt5 deep-copy qvector

我正在尝试深层复制我的变量:

QVector<PetTeam*> petTeam;

这个PetTeam课程还有另一个包含宠物的QVector等等。我希望将它们全部深层复制,以便我可以在极小极大AI中使用它们,但到目前为止,我无法正确地对它进行深度复制。

如果有人能够在这种情况下提供有关深层复制的正确方法的任何见解,我们将不胜感激!

1 个答案:

答案 0 :(得分:1)

如果要自动复制所有PetTeam个对象,则需要将矢量声明为QVector<PetTeam> petTeam。它要求PetTeam具有不带参数的构造函数和复制构造函数。它们是自动生成的,但如果PetTeam包含任何无法轻易复制的信息(例如文件处理程序,指向手动分配的内存的指针等),则应重新实现它们。

另一种选择是手动复制对象,即迭代列表并使用new PetTeam(...)为每个旧对象创建一个新对象,然后将它们放入新列表中。