在讀取timdays answer到this question之後,我對boost::ptr_container
和std::vector<shared_ptr>
之間的區別感到好奇。我的印象是a boost::ptr_container
had ownership over the pointers given to it,一經發布,就會調用它所包含的所有指針的析構函數,而不管其他對其居民的引用如何。這與std::vector<shared_ptr>
的目的是相反的,如果引用計數爲0,它只會釋放指針本身?boost :: ptr_container和std :: vector <shared_ptr>
如果是這樣的話(我認爲它沒有),爲什麼會連Boost文檔例如compare the two就好像他們是在類似的用途,以及爲什麼會timday的回答提出了boost::ptr_container
當它的目的很不同的std::vector<shared_ptr>
。