Мне нужно скопировать данные из одного std::map в другой std::map, при условии что эти данные выражены в виде указателей. То есть с помощью оператора присваивания эти данные не копируются, копируются лишь адреса. Вот конкретный пример :
std::map<String, Animation*> listOfAnimations;
listOfAnimations = OtherlistOfAnimations; // Так не работает
Если в map
е хранятся именно объекты Animation
, а не его наследники, тогда можно сделать так:
std::map<String, Animation*> listOfAnimations = OtherlistOfAnimations;
for (auto &it : listOfAnimations)
it.second = new Animation(*it.second);
Если задача не учебная, то для хранения в структурах указателей удобнее использовать бустовскую билиотеку. Там реализовано копирование map
с копированием объектов. Ну и, кстати, уничтожение объектов при уничтожении контейнера автоматическое.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
IntelliSense в VS Code не видит хедеры, установленные в /usr/local/includeЯ собрал и установил GLUT для OpenGL, но по умолчанию хедеры и либы установились не в /usr, а в /usr/local
У меня есть в Базе таблица log:
Имею структуру pair<int, pair<int, int>>, через typedef обозванную как guardИмею set<guard, comp>, с компаратором, который сравнивает только по second