在阅读了 timdays对这个问题的回答后,我很好奇boost::ptr_container
和 a之间的区别std::vector<shared_ptr>
。我的印象是aboost::ptr_container
对赋予它的指针拥有所有权,并且在释放时将调用它包含的所有指针的析构函数,而不管其他对其居民的引用。这与 a 的目的相反,std::vector<shared_ptr>
如果 ref 计数为 0,则释放后只会释放指针本身?
如果是这种情况(我认为不是),为什么甚至 Boost 文档示例也会将两者进行比较,就好像它们的目的相似,为什么 timday 的答案会提出 aboost::ptr_container
当它与 a 的目的非常不同时std::vector<shared_ptr>
。