LadyMarion
Mitglied
Hallo,
ich habe mal wieder eine Frage:
Ich habe eine read-Funktion, die eine Datei zeilenweise in eine Map einliest.
Diese Map beginnt bei i=1 für die 1. Zeile, i=2 für die 2. Zeile, usw...
Jetzt gibt es aber in dem Programm Schleifen, die bei i=0 beginnen. Wenn nun innerhalb einer solchen Schleife die Map aufgerufen wird, habe ich nun immer i+1 statt i angegeben. So funktioniert es ja auch. Wenn das nun aber jemand vergisst mit dem i+1, dann wird eben bei 0 begonnen und die Map "falsch" eingelesen.
Dies kann ich aber doch nicht so einfach abfangen, oder? Weil wenn ein Wert (in diesem Fall 0) nicht vorhanden ist, wird dieser ja immer gleich neu angelegt?
Wenn ich nun die Schleifen so ändere, dass sie eben nicht mehr von 0 starten, sondern über Iteratoren laufen?
Also statt
jetzt
Ist das so besser? Oder kann ich sonst irgendwie ungültige Werte abfangen?
ich habe mal wieder eine Frage:
Ich habe eine read-Funktion, die eine Datei zeilenweise in eine Map einliest.
Diese Map beginnt bei i=1 für die 1. Zeile, i=2 für die 2. Zeile, usw...
Jetzt gibt es aber in dem Programm Schleifen, die bei i=0 beginnen. Wenn nun innerhalb einer solchen Schleife die Map aufgerufen wird, habe ich nun immer i+1 statt i angegeben. So funktioniert es ja auch. Wenn das nun aber jemand vergisst mit dem i+1, dann wird eben bei 0 begonnen und die Map "falsch" eingelesen.
Dies kann ich aber doch nicht so einfach abfangen, oder? Weil wenn ein Wert (in diesem Fall 0) nicht vorhanden ist, wird dieser ja immer gleich neu angelegt?
Wenn ich nun die Schleifen so ändere, dass sie eben nicht mehr von 0 starten, sondern über Iteratoren laufen?
Also statt
Code:
for (int i = 0; i < lines.size(); i++) // lines.size() entspricht der Anzahl der Zeilen in der Datei
...
double test = mapname[i+1];
...
Code:
for (iter = mapname.begin(); iter != mapname.end(); iter++)
...
double test = mapname[(*iter).first];
...
Ist das so besser? Oder kann ich sonst irgendwie ungültige Werte abfangen?