无法看到QVector <qvector <whatever>&gt; qtcreator 3.0和gdb中的值</qvector <whatever>

时间:2014-04-15 23:35:07

标签: windows qt gdb qt-creator qvector

我正在写一个qt应用程序做作业,我需要调试它来解决问题,但我有gdb的问题,当我试图在本地和表达式中看到QVector<double>(例如),但当我尝试阅读QVector<QVector<double> >我得到的消息时,我试图改变显示格式,但我没有运气。 我正在使用QT 5.2.1 for Windows Qtcreator 3.0 我有这个示例代码填充QVector<QVector<double> >以将其传递给另一个类(我需要调试)

for (int i = 1; i < npc.size(); i++) {
    capa = new QVector<QVector<double> >();
    for (int j = 0; j < npc[i]; j++) {
        pesos = new QVector<double>();
        for (int k = 0; k < npc[i-1]; k++) {
            pesos->append((double)1/(double)(k+1));
        }
        capa->append(*pesos);
    }
    nPesos.append(*capa);
}

在qt创建者中,我可以阅读每个pesos个实例,但我无法阅读capa,我需要它来解决我的问题

编辑:我尝试了@Nejat的答案,我可以阅读单QVector<QVector<double> >,但不能在QList内阅读(所以我可以将每个capa读为单独但不是{{1 }})

1 个答案:

答案 0 :(得分:0)

这是因为您正在使用指向QVector的指针。没有必要使用指针。你可以简单地使用它:

QVector<QVector<QVector<double> > > nPesos;
for (int i = 1; i < npc.size(); i++) {
    QVector<QVector<double> > capa;
    for (int j = 0; j < npc[i]; j++) {
         QVector<double> pesos;
        for (int k = 0; k < npc[i-1]; k++) {
            pesos.append((double)1/(double)(k+1));
        }
        capa.append(pesos);
    }
    nPesos.append(capa);
}