for() Initialisierung mit verschiedenen Datentypen möglich?
-
for(size_t z = 0, k = vek.size(); z < k; ++z) { foo.bar }
Das Problem ist, wie ich heute fest gestellt habe, man kann im Initialisierungsteil nur einen Datentyp verwenden sonst meckert der Compiler.
Wenn ich 2 (oder mehr) Variablen habe von unterschiedlichem Datentyp dann müssten die ja theoretischerweise durch ; (Strichpunkt) getrennt werden, was aber nicht geht weil dann der Bereich BEDINGUNG beginnt.
Geht es doch? oder ist das nur im Rumpf möglich?for(size_t z = 0, k = vek.size(); z < k; ++z) { int a = 0; // In Init nicht möglich foo.bar }
Ist nur Interesse, mir ist das nie aufgefallen vorher.
-
Absenden gedrückt .....
Im Rumpf ist ja nicht möglich weil bei jedem Schleifendurchlauf neu initialisiert werden würde. Ist es also NUR global möglich?
Wie macht man es richtig?!.Danke
-
Wie wär's mit nem Komma?
-
Kann sein das es nicht akzeptiert wird ... was hält dich davon ab bsw folgendes zu machen?
#include <iostream> int main() { unsigned short a = 0; for (unsigned int n = 0; (n < 100 && a < 1000); ++n, a += 10) std::cout << a << n << std::endl; }
Aber normal sollte ein Zähler reichen, da du mit einer Multiplikation oder Division dann auch auf den 2. Zähler kommen solltest ...
-
Fehler: expected unqualified-id before »in
Dann kommt dieser Fehler. Ich denke es ist so wie bei einer Variablendeklaration/Definition.
int a = 0, b = 1;
Hier kann ich ja auch nicht schreiben.int a = 0, float c = 2;
-
unsigned short a = 0; for (unsigned int n = 0; (n < 100 && a < 1000); ++n, a += 10) std::cout << a << n << std::endl;
a ist hier aber dann global.
-
Geht nicht.
-
Dann brauch ich nicht weiter suchen.
Vielen Dank.
-
{ unsigned short a = 0; for (unsigned int n = 0; (n < 100 && a < 1000); ++n, a += 10) std::cout << a << n << std::endl; }
Das wäre auch recht lokal.
-
Jop ... im meinem Code ist keine Globale-Variable ... nur lokale und dagegen kannst de eig nix sagen bei ner For-Scheife hast de auch ne lokale Variable ...