如何删除对象形式的QList删除一个项目从QList作抛出错误
QList<CascadeJobInfo> m_InternJobInfoList;
foreach (CascadeJobInfo jobInfo, m_InternJobInfoList)
{
m_InternJobInfoList.removeOne(jobInfo);
}
它抛出错误 C:\ Qt的\ Qt5.7.0 \ 5.7 \ mingw53_32 \包括\ QtCore \ qlist.h:972 :错误:不对应的 '运营商=='(操作数类型是 'CascadeJobInfo' 和 '常量CascadeJobInfo') 如果(N-> T()== T) ^
一旦你调用removeOne,列表不保持和以前一样。因为某些元素已经被带走,所以Foreach可能会超出范围。 –
@PhạmAnhTuấn'foreach'获取列表的副本,因此如果效率低下,此代码是安全的。 –
:(所以它是安全的使用迭代器而不是foreach – Sijith