如何将元素附加到结构中的 QList?

how to append element to a QList in a structure?

我有一个这样的结构:

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);  

我有一个编译错误:

no matching member funtion for call to 'append'
candidate function not viable: 'this' argument has type 'const QList', but method is not marked const void append(const T &t);

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

QVector::at returns 对 Nom 值的 const 引用,因此您不能修改 n->at(j) 返回的项目。要获得非常量引用,您可以使用 (*n)[j].

n->back() 有效,因为对于 QVector::back 有一个 const 和一个非常量重载。