Container "teilen"
-
Ich muß große Dateien (mehrere Durchläufe) lesen und Zeilen, die irgendwas enthalten finden und extrahieren.
Dann sollen zwei neue Dateien geschrieben werden:
1. Datei (jetzt) ohne irgendwas
2. Datei mit entfernten irgendwasIdee #1:
In container-alt einlesen und dann je nachdem entweder in container-neu oder container-entfernt übertragen.
Danach die beiden neuen container schreiben.Idee #2:
Jeder Zeile im container-alt ein flag hinzufügen (neu/entfernt)
Danach den container-alt (evtl. zuerst nach flag sortieren) je nach flag in die entsprechende Datei schreiben.Was und welcher container wäre wohl am effektivsten?
Bzw. noch irgendwelche bessere Ideen?C++0x/11 steht mir nicht zu Verfügung.
-
Ich würde mehreres ausprobieren und schauen, was schnell ist. Wahrscheinlich ist es am effizientesten, die Daten von Anfang an in den richtigen Container einzufügen.
Ansonsten wäre vielleicht
std::partition()bzw.std::stable_partition()eine Möglichkeit.
-
std::partition() war mir neu und ich seh auch irgendwie keinen großen Unterschied zu std::sort().
Wahrscheinlich bin ich aber heute auch nicht mehr so fit.
Dennoch oder gerade deswegen Danke.