if(!m_partsInfoVec.empty())
{
for(vector<ModifyItemWidgetParts*>::iterator iv = m_partsInfoVec.begin();iv != m_partsInfoVec.end();iv++)
{
if((*iv)->isChecked())
{
int num = (*iv)->m_pointNum->text().toInt();
delete (*iv);
iv = m_partsInfoVec.erase(iv); //当需要把当前迭代器删除掉时,调用erase函数,返回值为删除迭代器的下一个迭代器,需要用iv去接收,不然会造成段错误
for(vector<PlcPointInfo>::iterator it = m_pointInfoVec.begin();it != m_pointInfoVec.end();it++)
{
if((*it).m_pointNum == num)
{
m_pointInfoVec.erase(it);
break;
}
}
if(iv == m_partsInfoVec.end())
break;
}
}
}
STL vector等容器erase操作
最新推荐文章于 2023-12-20 11:45:45 发布