QList<QString> 运算符<<
QList<QString> operator<<
我在 class 中有一个名为 competence 的 QList 元素,还有另一个名为 k 的 class 对象。我想进行深拷贝( this.competence 必须是 k.competence 的深拷贝)。
我用迭代器吧:
QList< QString>::iterator it;
for( it = k.competence->begin(); it != k.competence->end(); ++it )
{
this.competence << (*it) ;
}
我收到一个错误 "no match for operator<<"。
问题是每当我循环尝试这个时:
QList< QString>::iterator it;
it = k.competence->begin();
this.competence << *it;
它不会给出错误。
编辑:已解决使用 QList.append() 方法而不是 operator<<
我这里没有你的用例,你可以通过复制它来做一个 QList 的浅拷贝。如果您进一步修改共享实例,将创建一个深拷贝。
QList newList(oldList);
如果您想按照自己的方式进行操作,则需要将迭代器附加到新列表中
QList newList;
for(QList< QString>::iterator it = oldList->begin(); it != oldList->end(); it++ )
{
newList.append(*it) ;
}
我在 class 中有一个名为 competence 的 QList 元素,还有另一个名为 k 的 class 对象。我想进行深拷贝( this.competence 必须是 k.competence 的深拷贝)。 我用迭代器吧:
QList< QString>::iterator it;
for( it = k.competence->begin(); it != k.competence->end(); ++it )
{
this.competence << (*it) ;
}
我收到一个错误 "no match for operator<<"。 问题是每当我循环尝试这个时:
QList< QString>::iterator it;
it = k.competence->begin();
this.competence << *it;
它不会给出错误。
编辑:已解决使用 QList.append() 方法而不是 operator<<
我这里没有你的用例,你可以通过复制它来做一个 QList 的浅拷贝。如果您进一步修改共享实例,将创建一个深拷贝。
QList newList(oldList);
如果您想按照自己的方式进行操作,则需要将迭代器附加到新列表中
QList newList;
for(QList< QString>::iterator it = oldList->begin(); it != oldList->end(); it++ )
{
newList.append(*it) ;
}