【问题标题】:QList<QString> operator<<QList<QString> 运算符<<
【发布时间】:2015-02-12 08:50:27
【问题描述】:

我在一个类中有一个名为权限的 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() 方法而不是运算符解决

【问题讨论】:

  • 对不起,但这没有多大意义,如果能力是列表中的一个项目,你如何迭代一个项目?同时,您应该遍历列表,为什么不看这个答案stackoverflow.com/questions/16800206/…
  • 请始终包含编译器给您的确切逐字错误。
  • 谢谢大家!你真的很有帮助

标签: c++ qt qstring qlist no-match


【解决方案1】:

我在这里没有得到你的用例,你可以通过复制它来做一个 QList 的浅拷贝。如果您进一步修改共享实例,将创建一个深层副本。

QList newList(oldList);

如果您想按照自己的方式进行操作,则需要将迭代器附加到新列表中

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

【讨论】:

  • 我明白了!谢谢!我使用 operator
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-23
  • 2011-01-14
  • 2020-04-30
  • 1970-01-01
相关资源
最近更新 更多