如何将元素附加到结构中的 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 和一个非常量重载。
我有一个这样的结构:
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 和一个非常量重载。