boost ptr容器和普通容器之间的区别?

时间:2014-07-25 16:43:25

标签: c++ boost

使用boost ptr容器和包含智能指针的容器有什么区别?

class A {} 

// ptr containers:
boost::ptr_unordered_map<int, A> p;

// containers:
boost::unordered_map<int, boost::intrusive_ptr<A>> m;

1 个答案:

答案 0 :(得分:1)

boost::ptr_unordered_map没有在boost::shared_ptr<A>

的容器中产生的引用计数开销

它也不需要A要求的附加boost::intrusive_ptr<A>对象界面

这使得它成为管理堆分配对象的一个​​很好的解决方案,这些对象不需要对包含的对象进行引用计数。