关于容器删除元素的疑问,该怎么解决
关于容器删除元素的疑问C/C++ codevoid EMapEditSchedule::clearAll(){for(CMDList::iterator c m_cmdLi
关于容器删除元素的疑问
C/C++ codevoid EMapEditSchedule::clearAll(){ for(CMDList::iterator c = m_cmdList.begin(); c != m_cmdList.end(); ++c) { delete (*c); //(1) --m_cnt; } m_cmdList.clear(); //(2) m_cmd = m_cmdList.end();}
代码如上,CMDList是deque类型,经过(1)不是已经把元素都删除了么,为什么还有(2),不懂
[解决办法](1)仅仅是释放指针所指的堆内存,并没有删除指针本身。
(2)才是真正将指针本身从List中删除。
[解决办法]