2013-09-29 101 views
0

我試圖深拷貝我的變量:QVector深複製

QVector<PetTeam*> petTeam; 

這PetTeam類也有包含寵物等其他QVector。我期待將它們全部複製,以便我可以在minimax AI中將它們用於狀態,但到目前爲止,我無法正確深入地複製它。

如果任何人都可以提供任何洞察正確的方法來深入複製在這種情況下,將不勝感激!

回答

1

如果您想自動複製所有PetTeam對象,則需要聲明向量爲QVector<PetTeam> petTeam。它需要PetTeam有一個沒有參數和複製構造函數的構造函數。他們是自動生成的,但你應該重新實現他們,如果PetTeam包含不能被複制平凡(如文件處理,指針手動分配的內存等)

另一種方法是手動複製你的對象的任何信息,即迭代在列表上並使用new PetTeam(...)爲每個舊對象創建一個新對象,然後將它們放入新列表中。

+0

我正在尋找迭代列表併爲每個舊對象創建一個新的對象,但我似乎無法正確地做到這一點。我不能使用迭代器,因爲任何迭代器都不能從const變量中獲取。所以我卡住使用大小()這並不壞,但一旦我必須從原始選擇指數,我想不出任何其他的方式,但使用.at(我)不深拷貝任何東西。 – user2379150