QList & л; QString & GT; Оператор & л; & л;

У меня есть элемент 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 () вместо оператора<<

0

Решение

Я не получаю ваш вариант использования здесь, вы можете сделать поверхностную копию QList, просто скопировав его. Если вы в дальнейшем измените общий экземпляр, будет создана глубокая копия.

QList newList(oldList);

Если вы хотите сделать это по-своему, вам нужно добавить итератор в ваш новый список

QList newList;
for(QList< QString>::iterator it = oldList->begin(); it != oldList->end(); it++ )
{
newList.append(*it) ;
}
1

Другие решения


По вопросам рекламы [email protected]