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 irgendwas

    Idee #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.


Anmelden zum Antworten