Стоит ли постоянно использовать 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. Сумка будет заполняться только плитками, которыми владеет игра. Таким образом, сумка не существовала бы без игры.