Wertetabelle aus Datei mit unbekannter Größe auslesen
-
std::istream& operator>>(std::istream& in, position_table& positions){ pos p; while(in>>p) positions.push_back(p); return in; }
std::istream& operator>>(std::istream& in, position_table& positions) { std::copy( std::istream_iterator<pos>(in), std::istream_iterator<pos>(), std::back_inserter(positions) ); return in; }(Ungetestet)
-
Sone schrieb:
std::istream& operator>>(std::istream& in, position_table& positions){ pos p; while(in>>p) positions.push_back(p); return in; }
std::istream& operator>>(std::istream& in, position_table& positions) { std::copy( std::istream_iterator<pos>(in), std::istream_iterator<pos>(), std::back_inserter(positions) ); return in; }(Ungetestet)
wozu?
-
wozu?
Nun, die Devise ist doch, immer die Standard-Bibliothek ausschöpfen? Nackte Schleifen vermeiden?
-
Sone schrieb:
wozu?
Nun, die Devise ist doch, immer die Standard-Bibliothek ausschöpfen? Nackte Schleifen vermeiden?
Nö, sicher nicht.
Mach besser den Fehler weg.
-
volkard schrieb:
Mach besser den Fehler weg.
Der einzige Fehler den ich sehe, ist, dass der Container nicht geleert wird.

std::istream& operator>>(std::istream& in, position_table& positions) { positions.clear(); pos p; while(in>>p) positions.push_back(p); return in; }
-
Sone schrieb:
Der einzige Fehler den ich sehe, ist, dass der Container nicht geleert wird.
Den meinte ich auch.
-
Auch falsch. Ein neuer Container sollte erstellt werden und dann move-assigned werden.
-
Kellerautomat schrieb:
Auch falsch. Ein neuer Container sollte erstellt werden und dann move-assigned werden.
Inwiefern ist das besser?
-
Kellerautomat schrieb:
Auch falsch. Ein neuer Container sollte erstellt werden und dann move-assigned werden.
Jo, man wird wohl erwarten, daß wenn der op>> failt, der vector unverändert bleibt.
-
Auch falsch
Falsch!
Ansichtsache, problemspezifisch, sollte spezifiziert warden.