hallo In meinem Programm lese ich eine text Datei zeilenweise ein. Jede Zeile tu ich in einen std::vector der mit std::string gefüllt ist. Irgend wie ist aber jedes Mal eine leere Zeile am Ende der Datei und damit ein Vectorelement mit einem leeren string und das stört das weitere Programm. Deswegen hab ich nach Einlesen der Datei den volgenden Code eingefügt
Aber sobald das Programm zum init_vec.pop_back() kommt, stürtzt s ab. Woran liegt das? -- Latein Unterricht ist die spätere Rache der Römer an den Germanen.
Mmh, ich glaub, das liegt daran: Du fragst ja ab, ob init_str[index] == "" ist - init_str ist aber nicht der Vector, sondern irgendein String, sodass du höchstwahrscheinlich irgendwo im Speicher lesen willst. Der Fehler liegt also nicht beim pop_back. -- SimonDieser Post wurde am 26.05.2007 um 21:09 Uhr von Suba Esel editiert.
Oh, ic hab mich hier nur vertippt. Ich habs nochmal nachgeprüfft, im Code steht überall init_vec. sorry -- Latein Unterricht ist die spätere Rache der Römer an den Germanen.Dieser Post wurde am 26.05.2007 um 21:16 Uhr von mischa editiert.
init_vec[init_vec.size()] Ist außerhalb des gültigen Speicherbereichs. Der Index läuft von 0 bis init_vec.size() - 1. -- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra