QVector Deep Copy

Я пытаюсь глубоко скопировать мою переменную:

QVector<PetTeam*> petTeam;

Этот класс PetTeam также имеет другой QVector, содержащий домашних животных и так далее. Я ищу их глубокое копирование, чтобы я мог использовать их для состояний в минимаксном ИИ, но до сих пор я не смог правильно их скопировать.

Если бы кто-нибудь мог дать представление о правильном способе глубокого копирования в этой ситуации, это было бы очень ценно!

1 ответ

Если вы хотите скопировать все PetTeam объекты автоматически, вам нужно объявить свой вектор как QVector<PetTeam> petTeam, Это требует PetTeam иметь конструктор без параметров и конструктор копирования. Они генерируются автоматически, но вы должны переопределить их, если PetTeam содержит любую информацию, которая не может быть скопирована тривиально (например, обработчики файлов, указатели на выделенную вручную память и т. д.)

Другой вариант - скопировать ваши объекты вручную, то есть перебрать список и создать новый объект для каждого старого объекта, используя new PetTeam(...) а затем положить их в новый список.

Другие вопросы по тегам