|
CMap <int,int,object*,object*> m_map;
for(int i=0; i<10; i++)
{
object *ob=new object();
m_map.SetAt(i,ob);
}
m_map.RemoveAll();
删除所有元素,并不会释放所有元素所分配的内存?
要挨个进行释放, 然后再调用m_map.RemoveAll(), 否则将会引起内存泄漏 。
object* pObj= NULL;
POSITION pos = m_map.GetStartPosition();
for(int i = 0; pos; i ++)
{
m_map.GetNextAssoc(pos, i, pObj);
if (pObj)
{
delete pObj;
pObj= NULL;
}
}
m_map.RemoveAll();
|
|