2010-09-28 25 views
3

我有一對指針讓我們假設std :: pair < A *,B *> *指針對。我分配它的內存和使用後,我呼籲刪除指針對。這個內存是否能夠正確釋放?

它還會調用刪除A和刪除B並將完全釋放內存?

如果我只調用刪除A和刪除B但不刪除指針對然後它是內存泄漏?

回答

4

否.............

+2

在STL和Boost中,有一系列稱爲智能指針的類,它們可以自動刪除指針存儲在其中的對象。但是,在這些智能指針類之外,存儲在STL/Boost容器中的任何原始指針都被簡單地視爲指針。例如,您可以定義一組指向字符串的原始指針。這個集合將使用指針值進行排序,而不是字符串的字典順序(除非您提供比較函子)。 – rwong 2010-09-28 06:39:04

2

不,它不會自動執行。你必須明確地刪除它。