2010-09-28 28 views
3

我有一对指针让我们假设std :: pair < A *,B *> *指针对。我分配它的内存和使用后,我呼吁删除指针对。这个内存是否能够正确释放?

它还会调用删除A和删除B并将完全释放内存?

如果我只调用删除A和删除B但不删除指针对然后它是内存泄漏?

回答

4

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

+2

在STL和Boost中,有一系列称为智能指针的类,它们可以自动删除指针存储在其中的对象。但是,在这些智能指针类之外,存储在STL/Boost容器中的任何原始指针都被简单地视为指针。例如,您可以定义一组指向字符串的原始指针。这个集合将使用指针值进行排序,而不是字符串的字典顺序(除非您提供比较函子)。 – rwong 2010-09-28 06:39:04

2

不,它不会自动执行。你必须明确地删除它。