STL vector等容器erase操作

    xiaoxiao2021-04-13  28

    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; } } }
    转载请注明原文地址: https://ju.6miu.com/read-668421.html

    最新回复(0)