QList<QString> оператор <<
У меня есть элемент QList с именем компетенции внутри класса и другой объект класса с именем k. Я хочу сделать глубокую копию ( this.competence должен быть полной копией k.competence). Я использую итератор это:
QList< QString>::iterator it;
for( it = k.competence->begin(); it != k.competence->end(); ++it )
{
this.competence << (*it) ;
}
Я получил ошибку "нет совпадения для оператора<<". Проблема в том, когда я пытаюсь сделать это вне цикла:
QList< QString>::iterator it;
it = k.competence->begin();
this.competence << *it;
это не дает ошибок.
РЕДАКТИРОВАТЬ: РАЗРЕШЕНО с использованием метода QList.append() вместо оператора<<
1 ответ
Решение
Я не получаю ваш вариант использования здесь, вы можете сделать поверхностную копию QList, просто скопировав его. Если вы в дальнейшем измените общий экземпляр, будет создана глубокая копия.
QList newList(oldList);
Если вы хотите сделать это по-своему, вам нужно добавить итератор в ваш новый список
QList newList;
for(QList< QString>::iterator it = oldList->begin(); it != oldList->end(); it++ )
{
newList.append(*it) ;
}