Я пытаюсь построить std::vectors
и std::maps
из std::shared_ptrs
, но они, похоже, имеют привычку терять данные. Под этим я подразумеваю, что когда я нажимаю std::shared_ptrs
в них, некоторые из них удаляют данные, на которые они указывают.
В частности, первый std::shared_ptr
, который будет помещен в std::vector
, удаляется. Это сбивает с толку, так как нажатие std::shared_ptr
на std::vector
должно увеличивать счетчик ссылок, пока исходный std::shared_ptr
не выйдет за рамки, правильно? Кажется, что никакие другие std::shared_ptrs
не удаляются, но я не могу проверить, пока не решу эту проблему, поскольку она проверяет значения путем итерации.
Я прошу прощения, если я не объяснил себя достаточно хорошо. Я все еще приспосабливаюсь к этому сайту.
РЕДАКТИРОВАТЬ: Здесь является кодом для двух соответствующих классов. Проблема должна лежать в функциях-членах Load. Он довольно большой, так как это анализатор файлов, поэтому я не могу сказать, в чем проблема. Значение - это переменная-член, которая является std::vector<std::shared_ptr<NBT::Tag::Base>>
для списка и std::map<std::string, std::shared_ptr<NBT::Tag::Base>>
для соединения.