Есть ли какая-либо разница между `std :: list` и библиотекой boost` boost :: ptr_list` в c ++? - PullRequest
1 голос
/ 04 июня 2019

Есть ли разница в стандартной библиотеке STL , предоставляемой std::list, и библиотеке повышения boost::ptr_list?

1 Ответ

1 голос
/ 04 июня 2019

Если вы посмотрите на boost::ptr_list документацию , там написано:

A ptr_list<T> - это контейнер указателей, который использует базовый std:list<void*> для хранения указателей.

Следует также отметить, что boost:ptr_list подобно std::list владеет объектом, который в нем содержится. Таким образом, ptr_list вызовет удаление указателя в какой-то момент.

Тем не менее, интерфейс очень прост:

  • ptr_list API имеет push_front(T*), push_front(appropriate-smart-pointer-type<U> p) и также наследуется от ptr-sequence-adapter для обеспечения дополнительной функциональности.

  • std::list<> предоставляет немного более современный интерфейс, который включает семантику перемещения, но в остальном идентичен - см. cppreference docs

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...