QList::p ush_back() 的糟糕调用

Bad calling of QList::push_back()

本文关键字:调用 back ush QList      更新时间:2023-10-16

我正在尝试在另一个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的期望值是QStringQList,但我正在尝试插入QList QStringQList

QList<QList<QString> > formula;
QList<QList<QString> > partialFormula;
formula.push_back(partialFormula); //error.

另外,我想在部分公式中插入另一个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 文档

尝试使用以下方法之一:

formula.append(partialFormula);

formula += partialFormula;

formula << partialFormula;

formula.insert(formula.size(), partialFormula);

如果要追加相同类型的另一个QList,可以使用 += 运算符:

formula += partialFormula;