例如,以下是否泄漏?
Foo ( )
{
std:map<std:string, int> myMap;
myMap[std::string("Bar")] = 2983;
}
我相信它不会泄漏,但在这一点上找不到具体的文档。
例如,以下是否泄漏?
Foo ( )
{
std:map<std:string, int> myMap;
myMap[std::string("Bar")] = 2983;
}
我相信它不会泄漏,但在这一点上找不到具体的文档。
是的,映射析构函数map::~map()
将为它管理的每个键和值调用析构函数并释放内存。
§ 23.2.1 表 96 — 容器要求(续)
(&a)->X() void
the destructor is applied to every element of a; all the memory is deallocated.
是的,确实如此。这在 C++ 中是相当标准的东西,基本上标准库和 STL 中的所有内容都是这样工作的——除非您存储原始指针,否则总是调用析构函数。
您没有使用动态分配任何内存new
。所有变量都分配在堆栈上。我在这里看不到任何内存泄漏。