Qt QVector深度拷贝

Qt QVector深度拷贝,qt,qt5,deep-copy,qvector,Qt,Qt5,Deep Copy,Qvector,我正在尝试深度复制我的变量: QVector<PetTeam*> petTeam; QVector团队; 这个PetTeam类还有另一个包含pets等的QVector。我正在寻找深度复制他们所有,这样我就可以使用他们的状态在一个极小最大人工智能,但到目前为止,我一直无法深度复制它正确 如果有人能在这种情况下提供任何关于深度复制正确方法的见解,我们将不胜感激 如果要自动复制所有PetTeam对象,需要将向量声明为QVector PetTeam。它需要PetTeam拥有一个不带参数的

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

QVector<PetTeam*> petTeam;
QVector团队;
这个PetTeam类还有另一个包含pets等的QVector。我正在寻找深度复制他们所有,这样我就可以使用他们的状态在一个极小最大人工智能,但到目前为止,我一直无法深度复制它正确


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

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


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

我希望迭代列表,为每个旧对象创建一个新对象,但我似乎无法正确执行。我不能使用迭代器,因为任何迭代器都不能取自常量变量。因此,我一直在使用size(),这并不坏,但一旦我必须从原始索引中选择索引,我就想不出任何其他方法,只能使用.at(I),它不会深度复制任何内容。