list Bereich sortieren



  • Hallo,

    habe einen std::list -Container und möchte nur einen Teilbereich davon sortieren.
    Leider sortiert std::list::sort() nur den gesamten Container...
    Wie kann ich Teilbereiche einer Liste sortieren?



  • Nimm std::sort() aus der algo lib.



  • hab ich ausprobiert... geht nicht
    google meint das liegt daran, dass std::sort() Random-Access benötigt und deswegen nicht für std::list zu gebrauchen ist...



  • Liste (oder Teilbereiche) in einen Vektor schreiben und std::sort anwenden. Nach getaner Arbeit, den Inhalt zurueckschreiben. Laufzeit sollte O(n log n) sein.



  • daersc schrieb:

    Hallo,

    habe einen std::list -Container und möchte nur einen Teilbereich davon sortieren.
    Leider sortiert std::list::sort() nur den gesamten Container...
    Wie kann ich Teilbereiche einer Liste sortieren?

    Mit std::list::splice einen Teil der Liste in eine neue Liste verschieben, diese Liste dann sortieren, und die sortierte Liste dann wieder in die alte Liste splicen. Dabei wird nicht kopiert.


Anmelden zum Antworten