Qt 如何将元素附加到结构中的QList?
我有一个这样的结构:Qt 如何将元素附加到结构中的QList?,qt,struct,append,qlist,Qt,Struct,Append,Qlist,我有一个这样的结构: struct Nom { QString Nom; .... QList<quint64> indNum; } 它起作用了。 当我写到: n->at(j).indNum.append(i->size()-1); 我有一个编译错误: 对“追加”的调用没有匹配的成员函数 候选函数不可行:“此”参数的类型为“const” QList',但未标记方法 const void append(const T&T)
struct Nom {
QString Nom;
....
QList<quint64> indNum;
}
它起作用了。当我写到:
n->at(j).indNum.append(i->size()-1);
我有一个编译错误:
对“追加”的调用没有匹配的成员函数候选函数不可行:“此”参数的类型为“const” QList',但未标记方法 const void append(const T&T) 我不明白为什么它在第一种情况和第二种情况下有效。 谁能解释一下,帮我解决这个问题?
提前感谢。
QVector::at
返回对Nom
值的常量引用,因此您无法修改n->at(j)
返回的项目。要获取非常量引用,可以使用(*n)[j]
n->back()
之所以有效,是因为对于QVector::back
而言,存在常量和非常量重载。谢谢您的回答。当我将'n->at(j)'替换为'n[j]'时,我得到另一个编译:erreur:QVector'n[j]中没有名为'indNum'的成员。indNum.append(I->size()-1);~~~~^的确我现在没有任何编译错误。谢谢。
n->back().indNum.append(i->size()-1);
n->at(j).indNum.append(i->size()-1);