QHash无法将参数1从'class QHash <class qdomelement,class =“”qdomelement =“”> :: const_iterator'转换为':: iterator'</class>

时间:2013-05-20 04:37:26

标签: qt const-iterator qhash

我有一个用键值对定义的qhash作为QDomElement。如下所示。我试图使用const_iterator更新哈希。但是,如果这样做,则会抛出错误,如何解决相同问题: -

error C2664: 'erase' : cannot convert parameter 1 from 'class QHash<class QDomElement,class QDomElement>::const_iterator' to 'class QHash<class QDomElement,class QDomElemen
t>::iterator'

代码段: -

// update parent child mapping hash
    QHash<QDomElement, QDomElement>::const_iterator pList = hashParentChildList.constBegin();
    while (pList != hashParentChildList.constEnd())
    {
        if(pList.key() == element)
        {
            pList = hashParentChildList.erase(pList); // Error Line
        }
        else
        {
            pList++;
        }
    }
}

谢谢, 普里

1 个答案:

答案 0 :(得分:0)

问题解决了,使用 QHash :: iterator pList = hashParentChildList.begin(); 代替 QHash :: const_iterator pList = hashParentChildList.constBegin();