前言
qmap删除元素可以采用erase(),但使用过程中却必须注意以下:
qmap中的元素被删除后,其迭代器自动指向下一个元素;
示例
要求删除创建时保存在QMap中的指针,并将qmap中的元素删除。下面直接上代码。
QMap<int,QPushButton*> m_idBtnMap;//存放创建的按钮和按钮id
while(!m_idBtnMap.empty())
{it = m_idBtnMap.begin();QPushButton *btn = it.value();int id = it.key();if(btn != nullptr){delete btn;btn = nullptr;}m_idBtnMap.erase(m_idBtnMap.begin());//删除qmap中存放的元素
}
以上将QMap中存入的指针释放,并删除了QMap中的元素。当然,只有主要部分,领会便可。