Добрый вечер.
Сразу к теме: есть контейнер map> mymap; (MySet - пользовательский тип). Есть другой контейнер: forward_list> myset;
Вопрос: как из forward_list копировать элементы в map (из shared_ptr в unique_ptr)?
Ответ
Как я понимаю, объект класса std::map> должен быть владельцем указателей на объекты MySet, а потому при копировании нужно создавать копии объектов, хранящихся в std::forward_list>
Для этих целей можно использовать либо обычный цикл, либо стандартные алгоритмы, как, например, std::transform
Ниже приведена демонстрационная программа, которая показывает, как можно использовать алгоритм std::transform для копирования элементов из одного контейнера в другой. Для наглядности в вызовы конструкторов и деструкторов класса, используемого в качестве базового элемента, я включил вывод на консоль.
#include
#include
#include
#include
Комментариев нет:
Отправить комментарий