Есть ли разница в стандартной библиотеке STL , предоставляемой std::list, и библиотеке повышения boost::ptr_list?
std::list
boost::ptr_list
Если вы посмотрите на boost::ptr_list документацию , там написано:
A ptr_list<T> - это контейнер указателей, который использует базовый std:list<void*> для хранения указателей. Следует также отметить, что boost:ptr_list подобно std::list владеет объектом, который в нем содержится. Таким образом, ptr_list вызовет удаление указателя в какой-то момент.
A ptr_list<T> - это контейнер указателей, который использует базовый std:list<void*> для хранения указателей.
ptr_list<T>
std:list<void*>
Следует также отметить, что boost:ptr_list подобно std::list владеет объектом, который в нем содержится. Таким образом, ptr_list вызовет удаление указателя в какой-то момент.
boost:ptr_list
ptr_list
Тем не менее, интерфейс очень прост:
ptr_list API имеет push_front(T*), push_front(appropriate-smart-pointer-type<U> p) и также наследуется от ptr-sequence-adapter для обеспечения дополнительной функциональности.
push_front(T*)
push_front(appropriate-smart-pointer-type<U> p)
ptr-sequence-adapter
std::list<> предоставляет немного более современный интерфейс, который включает семантику перемещения, но в остальном идентичен - см. cppreference docs
std::list<>