QList::p ush_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
QString
的QList
。
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;
相关文章:
- 什么时候调用组成单元对象的析构函数
- 对RValue对象调用的LValue ref限定成员函数
- 为什么使用 "this" 指针调用派生成员函数?
- 函数调用中参数的顺序重要吗
- OpenGL - 在抛出"__gnu_cxx::recursive_init_error"实例后终止调用?
- 基于另一个成员参数将函数调用从类传递给它的一个成员
- 为什么我的C#代码在调用回C++COM直到Task时会暂停.等待/线程.加入
- 在c++类上调用void函数
- 为什么 std::unique 不调用 std::sort?
- 调用专用模板时出错"no matching function for call to [...]"
- 选择要调用的构造函数
- C++为什么尽管我调用了void函数,它却不起作用
- 构造函数正在调用一个使用当前类类型的函数
- 变量没有改变?通过向量的函数调用
- 没有为自己的结构调用列表推回方法
- 调用'begin(int [n])'没有匹配函数
- 什么时候调用析构函数
- 如何用参数值调用函数(仅在运行时已知)
- std::cout.imbue()多重调用
- 为什么对std::vector::back()的调用会使我的程序崩溃