Ich bin kein Programmierer habe allerdings ein Problem zu lösen.
ich habe eine verkettete Liste (QList) mit dem Inhalt einer weiteren verketteten Liste (QList).
Beim Debugen ist alles in Ordnung, beim Ausdrucken kommt Mist raus.
Die Startwerte bei der Ausgabe ( Iterator) scheinen nicht auf den Anfang der Listen zu stehen.
Anbei die vereinfachte Version:
Code: Alles auswählen
class AA
{
public:
AA();
int A_Nummer = 0;
QString AA_Text ="";
QList <BB> bb;
BB b_b;
};
class BB
{
public:
BB();
int B_Nummer = 0;
QString BB_Text ="312";
};
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
QList <AA> aa;
AA a_a;
private:
Ui::MainWindow *ui;
};
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
aa.begin();
int a = 0;
int b = 0;
int c = 0;
int j = 0;
QString line;
for (j = 0; j < 10; j++)
{
a_a.A_Nummer = j;
a_a.AA_Text = QString("AA = %1").arg(j);
a_a.bb.begin();
a_a.bb.clear();
for (a = 0; a <= j; a++)
{
a_a.b_b.B_Nummer = a;
a_a.b_b.BB_Text = QString("BB = %1").arg(a);
a_a.bb.append(a_a.b_b);
}
a_a.bb.end();
aa.append(a_a);
}
aa.end();
QList <AA> :: iterator itr;
QList <BB> :: iterator itr1;
for (itr = aa.begin();itr != aa.end() ; ++itr)
{
c = 0;
for (itr1 = a_a.bb.begin(); itr1 != a_a.bb.end(); ++itr1 )
{
qDebug () << QString ("A = %1").arg(a_a.A_Nummer);
qDebug () << QString ("B = %1").arg(a_a.b_b.B_Nummer);
line = QString ("AA = %1 , BB = %2").arg(b).arg(c++) ;
qDebug ()<< line;
}
b++;
}
}
Christian