ERLEDIGT
NEIN
NEIN
ANTWORTEN
2
2
ZUGRIFFE
570
570
EMPFEHLEN
-
04.08.08 10:13 #1
- Registriert seit
- Mar 2005
- Beiträge
- 41
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
jetztCode :1 2 3 4
for (int i = 0; i < lines.size(); i++) // lines.size() entspricht der Anzahl der Zeilen in der Datei ... double test = mapname[i+1]; ...
Code :1 2 3 4
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?
-
Ehm bist du sicher, dass du weiß wofür ne Map gedacht ist? Nen 2D Array auf 1D Array geblittet wäre gut
-
Hallo,
bei Maps sollte du schon die Iteratoren verwenden. Die for-Schleife klappt bei dir auch nur, weil du "int" als Key verwendest; bei anderen Typen geht das auf die Art sowieso nicht mehr. Außerdem sind die Iteratoren effizienter, weil du nicht mehr selbst in jedem Schleifendurchlauf derefenzieren musst. Deshalb solltest du übrigens auch besser schreiben:
GrußCode cpp:1
double test = iter->second;
MCoder"The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
--- Larry Wall
Ähnliche Themen
-
VBA / Excel: Spalten in Schleife durchlaufen
Von scarvy im Forum Visual Basic 6.0Antworten: 2Letzter Beitrag: 13.12.06, 10:18 -
Webbroser: Links in Schleife durchlaufen
Von Operator_Jon im Forum Visual Basic 6.0Antworten: 2Letzter Beitrag: 05.04.05, 15:22 -
Schleife durchlaufen und abbrechen
Von stega im Forum PHPAntworten: 5Letzter Beitrag: 02.01.05, 16:25 -
if schleife wird fehlerhaft durchlaufen
Von NightWatcher im Forum PHPAntworten: 1Letzter Beitrag: 24.11.04, 23:20 -
Sequenzielle Variablennamen in Schleife erzeugen und durchlaufen?
Von Hypergrip im Forum Visual Basic 6.0Antworten: 1Letzter Beitrag: 24.03.04, 07:35





Zitieren
Login






