在c ++中,`std :: list`和boost库`boost :: ptr_list`之间有什么区别吗?

时间:2019-06-04 00:52:59

标签: c++ boost

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

1 个答案:

答案 0 :(得分:1)

如果您查看boost::ptr_list documentation,它会显示:

  

ptr_list<T>是一个指针容器,它使用基础的std:list<void*>存储指针。

     

还应注意,boost:ptr_liststd::list一样拥有它包含的对象。因此,ptr_list会在某个时刻调用指针的删除。

也就是说,界面非常简单:

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

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