QHash не может преобразовать параметр 1 из 'class QHash<class QDomElement, class QDomElement>:: const_iterator' в '::iterator'

У меня есть 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 ответ

Проблема решена, используйте QHash::iterator pList = hashParentChildList.begin(); вместо QHash::const_iterator pList = hashParentChildList.constBegin();

Другие вопросы по тегам