QVector Deep Copy
Я пытаюсь глубоко скопировать мою переменную:
QVector<PetTeam*> petTeam;
Этот класс PetTeam также имеет другой QVector, содержащий домашних животных и так далее. Я ищу их глубокое копирование, чтобы я мог использовать их для состояний в минимаксном ИИ, но до сих пор я не смог правильно их скопировать.
Если бы кто-нибудь мог дать представление о правильном способе глубокого копирования в этой ситуации, это было бы очень ценно!
1 ответ
Если вы хотите скопировать все PetTeam
объекты автоматически, вам нужно объявить свой вектор как QVector<PetTeam> petTeam
, Это требует PetTeam
иметь конструктор без параметров и конструктор копирования. Они генерируются автоматически, но вы должны переопределить их, если PetTeam
содержит любую информацию, которая не может быть скопирована тривиально (например, обработчики файлов, указатели на выделенную вручную память и т. д.)
Другой вариант - скопировать ваши объекты вручную, то есть перебрать список и создать новый объект для каждого старого объекта, используя new PetTeam(...)
а затем положить их в новый список.