Seite 1 von 1

mehrere Variablen durchlaufen

Verfasst: 8. Januar 2018 19:23
von freakonaleash99
Hallo zusammen,
Ich habe etwa 25 Variablen vom Typ QString, alle Variablen mit einem anderen Namen.
Ich möchte nun bei allen dieser Variablen jeweils mehrere Funktionen anwenden, welche bestimmte Prüfungen und Änderungen des Inhalts der Variable durchführen.

Gibt es ne Möglichkeit, dass man die 25 Variable als Gruppe definieren kann und die Gruppe dann durchlaufen kann? So wie zum Beispiel bei QStringList mit ner for/while-schleife bis zum ende der Liste.
Mir ist bekannt, dass es Arrays gibt, allerdings kann ich dadurch die Variablen nicht individuell nennen, was im restlichen code wiederrum zu einer enormen Unübersichtlichkeit führt.
Gibt es da andere Möglichkeiten?

Grüße

Re: mehrere Variablen durchlaufen

Verfasst: 9. Januar 2018 11:52
von hilefoks
Du könntest dir einen Vector mit Pointer auf die Variablen erstellen und dann diesen Vector durchlaufen.

Code: Alles auswählen

QString a, b, c, d, e, f;
QVector<QString*> vector{ &a, &b, &c, &d, &e, &f };

// initialize variables
for(int i = 0; i < vector.size(); ++i) {
    *vector[i] = QString::number(i + 42);
}

// print all variables
for(auto s : qAsConst(vector)) {
    qDebug() << *s;
}

Re: mehrere Variablen durchlaufen

Verfasst: 10. Januar 2018 18:24
von freakonaleash99
Perfekt danke. Daran habe ich gar nicht gedacht!

Re: mehrere Variablen durchlaufen

Verfasst: 11. Januar 2018 10:27
von bobcat
Du könntest die Variablen auch in einer QMap unterbringen, z.B. QMap<QString, QString*>, wobei der Key der Name der Variablen ist und der Value der Zeiger auf die Variable. Dann die QMap z.B. mit einer foreach-Schleife abarbeiten.