QList::push_back() 调用错误
Bad calling of QList::push_back()
我试图在另一个 QList
中插入一个 QList
,但出现以下错误:
parser.y:40: error: no matching function for call to 'QList<QList<QString> >::insert(QList<QList<QString> >&)'
正在尝试将名为 partialFormula 的 QList
推入另一个名为 formula 的 QList:
formula.push_back(partialFormula);
我认为我的错误在于我的 QList 模板的定义,因为公式 QList
的预期值是 QString
的 QList
,但我正在尝试插入 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;
}
谢谢!
push_back
函数仅出于 STL 兼容性原因而存在,并且在您的情况 QString
中仅接受附加类型 T
的变量。看看这里:QT Doc
尝试使用以下方法之一:
formula.append(partialFormula);
或
formula += partialFormula;
或
formula << partialFormula;
或
formula.insert(formula.size(), partialFormula);
如果你想追加另一个相同类型的QList
,你可以使用+= operator:
formula += partialFormula;
我试图在另一个 QList
中插入一个 QList
,但出现以下错误:
parser.y:40: error: no matching function for call to 'QList<QList<QString> >::insert(QList<QList<QString> >&)'
正在尝试将名为 partialFormula 的 QList
推入另一个名为 formula 的 QList:
formula.push_back(partialFormula);
我认为我的错误在于我的 QList 模板的定义,因为公式 QList
的预期值是 QString
的 QList
,但我正在尝试插入 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;
}
谢谢!
push_back
函数仅出于 STL 兼容性原因而存在,并且在您的情况 QString
中仅接受附加类型 T
的变量。看看这里:QT Doc
尝试使用以下方法之一:
formula.append(partialFormula);
或
formula += partialFormula;
或
formula << partialFormula;
或
formula.insert(formula.size(), partialFormula);
如果你想追加另一个相同类型的QList
,你可以使用+= operator:
formula += partialFormula;