Стоит ли постоянно использовать boost :: ptr_vector вместо std :: vector?

Просто концептуальный вопрос, который ямы сталкивались. В моем текущем проекте мне кажется, что я чрезмерно использую повышениеsmart_ptr а такжеptr_container библиотеки. Я создавалboost::ptr_vectors во многих различных объектах и вызывая метод Transfer () для перемещения определенных указателей из одногоboost::ptr_vector другому.

Насколько я понимаю, важно четко показать владение кучей выделенных объектов.

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

Например ... Игра может иметь коллекцию плиток, которые принадлежат ей. Возможно, имеет смысл создать эти плитки вboost::ptr_vector, Когда игра заканчивается, эти плитки должны автоматически освобождаться.

Однако, если я хочу временно поместить эти плитки в объект Bag, я должен создать другойboost::ptr_vector в сумку и передать игру "Плитка в сумку черезtransfer() или я должен создатьstd::vector где плитки *Ссылка на плитки в игре и передать это в сумку?

Благодарю.

** Edit. Я должен указать, что в моем примере в игре был бы объект Bag. Сумка будет заполняться только плитками, которыми владеет игра. Таким образом, сумка не существовала бы без игры.

Ответы на вопрос(8)

Ваш ответ на вопрос