使用boost ptr容器和包含智能指针的容器有什么区别?
class A {}
// ptr containers:
boost::ptr_unordered_map<int, A> p;
// containers:
boost::unordered_map<int, boost::intrusive_ptr<A>> m;
boost::ptr_unordered_map
没有在boost::shared_ptr<A>
容器中产生的引用计数开销
它也不需要boost::intrusive_ptr<A>
要求的附加的A
对象接口。
这使得它成为管理不需要对所包含对象进行引用计数的堆分配对象的一个很好的解决方案。