【问题标题】:QHash cannot convert parameter 1 from 'class QHash<class QDomElement,class QDomElement>::const_iterator' to '::iterator'QHash 无法将参数 1 从 'class QHash<class QDomElement,class QDomElement>::const_iterator' 转换为 '::iterator'
【发布时间】:2013-05-14 14:35:12
【问题描述】:

我有一个使用键值对定义为 QDomElement 的 qhash。如下所示。我正在尝试使用 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++;
        }
    }
}

谢谢, 普里扬卡

【问题讨论】:

    标签: qt const-iterator qhash


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-02-10
      • 1970-01-01
      • 2015-08-19
      • 2015-04-22
      • 1970-01-01
      • 1970-01-01
      • 2018-01-03
      • 2013-09-18
      相关资源
      最近更新 更多