STL: deque und sort



  • Hi,

    ich nutze deque aus der STL und würde deren Elemente gerne sortieren. Laut http://www.cplusplus.com/reference/stl/deque/ gibt es aber nur für list eine Sortierfunktion, nicht aber für deque. Und wenn ich statt dessen versuche, mit VC6 (ja, ich weiß, es ist alt, reicht aber für meine Zwecke) std::sort() zu verwenden, dann faselt der Compiler was von wegen "unknown".

    Was nun, wie kann man eine deque sortieren?



  • Hast du denn den richtigen Header eingebunden, um sort() nutzen zu können - #include <algorithm> .

    PS: std::list hat nur aus dem Grund eine Methode zum Sortieren, weil es das effizienter kann als der allgemeine Algorithmus 😉



  • Ja, algorithm ist includiert.

    Abgesehen davon: wieso hat nur std::list eine eigene sort-Funktion und std::deque nicht?



  • Dann zeig doch mal den Code 😉

    Maxam schrieb:

    Abgesehen davon: wieso hat nur std::list eine eigene sort-Funktion und std::deque nicht?

    Habe ich doch gesagt 😉
    std::list ist eine doppelt verkettete Liste, die kann mit MergeSort sortiert werden, ohne die Elemente selber im Speicher zu bewegen. std::deque verwendet einen zusammenhängenden Speicherbereich, dort wäre eine eigene Sortierfunktion auch nicht günstiger als die Verwendung von std::sort().



  • CStoll schrieb:

    zusammenhängenden Speicherbereich

    Besser wäre: bietet Randomaccess-Iteratoren an.


Anmelden zum Antworten