我试图在另一个QList
中插入一个QList
,但是我得到了以下错误:
parser.y:40: error: no matching function for call to 'QList<QList<QString> >::insert(QList<QList<QString> >&)'
试图将名为QList
partialFormula的QList推入另一个称为公式的QList中:
formula.push_back(partialFormula);
我认为我的错误在QList模板的定义中,因为公式QList
的期望值是QList
of QString
,但我试图插入一个QList
of QList
of QString
。
QList<QList<QString> > formula;
QList<QList<QString> > partialFormula;
formula.push_back(partialFormula); //error.
另外,我想在partialFormula中插入另一个QList >,等等.,我需要创建一个class
还是一个struct
我能做些什么呢?
我的代码:
#include <QList>
#include <QString>
int main () {
QList<QList<QString> > formula;
QList<QList<QString> > partialFormula;
QList<QString> atomicCondition;
//It works!
partialFormula.push_back(atomicCondition);
//It does not work.
formula.push_back(partialFormula);
return 0;
}
谢谢!
发布于 2015-01-13 07:53:36
push_back
函数的存在只是出于STL兼容性的原因,并且只接受附加T
类型的变量(在您的例子中是QString
)。看看这里:QT医生
尝试使用以下方法之一:
formula.append(partialFormula);
或
formula += partialFormula;
或
formula << partialFormula;
或
formula.insert(formula.size(), partialFormula);
发布于 2015-01-13 07:59:07
如果要附加相同类型的另一个QList
,可以使用+=算子
formula += partialFormula;
https://stackoverflow.com/questions/27925994
复制相似问题