首页 > 解决方案 > c++中的`std::list`和boost库`boost::ptr_list`有什么区别吗?

问题描述

提供的STL标准库和提供的std::listBoost 库有什么区别boost::ptr_list吗?

标签: c++boost

解决方案


如果您查看boost::ptr_list 文档,它会说:

Aptr_list<T>是一个指针容器,它使用底层std:list<void*>存储指针。

还应该注意的是,boost:ptr_listlikestd::list拥有它所包含的对象。所以ptr_list会在某个时候在指针上调用 delete 。

也就是说,界面非常相似:

  • ptr_listAPI 具有push_front(T*)push_front(appropriate-smart-pointer-type<U> p)并且还继承自ptr-sequence-adapter以提供更多功能。

  • 提供了std::list<>一个稍微更现代的界面,包括移动语义,但在其他方面是相同的 - 请参阅cppreference 文档


推荐阅读