【问题标题】:how to append element to a QList in a structure?如何将元素附加到结构中的 QList?
【发布时间】:2017-01-07 07:40:31
【问题描述】:

我有一个这样的结构:

struct Nom {  
    QString Nom;  
    ....  
    QList<quint64> indNum;  
}  

在我的 .h 文件中。我声明:
QVector *n;

在我的 .cpp 文件中。我声明:

n = new QVector<Nom>;

我读了一个文件来填写n。 当我写这个时:

n->back().indNum.append(i->size()-1);  

它有效。
当我写的时候:

n->at(j).indNum.append(i->size()-1);  

我有一个编译错误:

调用“追加”没有匹配的成员函数
候选函数不可行:“this”参数的类型为“const” QList',但方法未标记 const void append(const T &t);

我不明白为什么它在第一种情况和第二种情况下都有效。 谁能解释并帮助我解决这个问题? 提前致谢。

【问题讨论】:

    标签: qt struct append qlist


    【解决方案1】:

    QVector::at 返回一个对Nom 值的常量引用,因此您不能修改n-&gt;at(j) 返回的项。要获得非常量引用,您可以使用(*n)[j]

    n-&gt;back() 有效,因为 QVector::back 有一个 const 和一个非常量重载。

    【讨论】:

    • 感谢您的回答。当我将 'n->at(j)' 替换为 'n[j]' 时,我得到另一个编译:erreur:在 'QVector<:nom>' n[j].indNum 中没有名为 'indNum' 的成员。追加(我->大小()-1); ~~~~ ^
    • 确实如此。我现在没有任何编译错误。非常感谢。
    猜你喜欢
    • 2018-03-31
    • 1970-01-01
    • 2014-10-05
    • 2023-03-28
    • 2016-01-20
    • 2013-07-04
    • 1970-01-01
    • 2019-04-23
    • 1970-01-01
    相关资源
    最近更新 更多