我是否需要删除静态std :: map?

Kil*_*zor 3 c++ stl stdmap

在某些类中,我有一个带有指针的静态std :: map.我的问题是,如果我需要在程序结束时删除或自动释放此内存.我关心的是当删除std :: map时,是否通过析构函数正确删除了存储在内部的指针.

谢谢.

luk*_*uke 6

如果映射包含使用new(或new []malloc)分配的指针,则每个指针都需要相应的删除(或删除[]空闲).

地图的析构函数不知道如何处理光头指针.考虑使用具有适当移动语义的智能指针,如boost智能指针,或者如果你有一个非常新的编译器,C++ 0x智能指针之一.但是,不要在STL容器内使用当前标准的std :: auto_ptr. 请参阅此主题了解原因.

编辑:

正如Billy ONeal指出的那样,boost :: ptr_map也是为此目的而设计的.