Initialisierung-Fehlermeldung trotz Initialisierung vor der For-Schleife?
-
seldon schrieb:
Du hast die geschweiften Klammern um den Schleifenkörper vergessen. Python-geschädigt?
Was heisst geschädigt?
Auch wenn ich die Sprache nicht kann und kaum kenne. Dass sie einen zwingt halbwegs "schön" zu coden, findsch geil
-
Skym0sh0 schrieb:
Auch wenn ich die Sprache nicht kann und kaum kenne. Dass sie einen zwingt halbwegs "schön" zu coden, findsch geil

Das eine liegt an dem anderen :p
-
Wie kann ich die Initialisierung durchführen`?
-
freekickchamp schrieb:
Wie kann ich die Initialisierung durchführen`?
Musst du nicht.
Mach geschweifte Klammern um die eingerückten Anweisungen der for-Schleife und lösche Zeile 2.
-
super, dankeschön.
Hat funktioniert.
Aber wieso lässt man manchmal die Klammern weg?
Und wenn ich eine Fehlermeldung bekomme mit "Vector out of range", was bedeutet das?
Wie geht das überhaupt, wenn der vector sich dynamisch anpasst oder habe ich das falsch verstanden?
-
freekickchamp schrieb:
Aber wieso lässt man manchmal die Klammern weg?
dann will man nur die nächste anweisung / bedingung / kontrollstruktur ausführen:
for(int i = 0; i < 10; ++i) std::cout << 'I'; // Wird ausgeführt in der Schleife std::cout << '\n'; // Nicht mehr ///////////////////////////////////////////////////////////////// for(int i = 0; i < 10; ++i) if(i % 2 == 0) // Wird geprüft in der Schleife std::cout << 'I'; // Wird ausgeführt innerhalb der Schleife aber nur wenn die Bedingung erfüllt ist std::cout << '\n'; // Nicht mehr ///////////////////////////////////////////////////////////////// for(int i = 0; i < 10; ++i) for(int j = 0; j < 10; ++j) // Schleife in der Schleife std::cout << 'I'; // Wird 100x ausgeführtwenn man sich gedanken darüber macht, wie der compiler das überhaupt auflösen soll, dann ist das verhalten ganz intuitiv. wenn du es nicht verstehst, dann mach vorerst einfach konsequent immer { } hin.
freekickchamp schrieb:
Und wenn ich eine Fehlermeldung bekomme mit "Vector out of range", was bedeutet das?
dass du auf einen teil des vectors zugreifst der gar nicht exisitiert. z.b. wenn der vector
size() == 5hat, dann greifst du wohl auf >= 5 zu.freekickchamp schrieb:
Wie geht das überhaupt, wenn der vector sich dynamisch anpasst oder habe ich das falsch verstanden?
er passt sich nicht selbst dynamisch an. du musst ihm einfach sagen, wie gross er sein soll. dann vergrössert / verkleinert er sich. am häufigsten nimmt man dafür
std::vector::resize().
-
freekickchamp schrieb:
Aber wieso lässt man manchmal die Klammern weg?
Wenn du nur eine Anweisung hast, brauchst du nicht extra dafür einen Block aufmachen.
Einformit dem Schleifenkörper gilt auch als eine Anweisung.
Einifmit demelse-Zweig auch.
-
Wenn dus dir so besser vorstellen kannst:
ohne geschweifte Klammern, bis zum nächsten SemikolonLG
-
Ok, super.
Eine Frage noch: Benötigt resize() aber nicht noch einen Input?
-
freekickchamp schrieb:
Ok, super.
Eine Frage noch: Benötigt resize() aber nicht noch einen Input?Ja, sicher...?
Was es (und alles andere) braucht, kannst du im Zweifelsfall hier nachschauen:
http://www.cplusplus.com/reference/vector/vector/resize/
-
Vielen Dank
