Sort macht schwierigkeiten



  • Hallo liebe Mitglieder,

    Ich habe ein Programm ohne GUI geschrieben, also rein Konsole.
    So funktioniert das Programm auch sehr schön. Zum testen erstmal ideal.

    Ohne GUI macht das Programm aber nicht viel her. Ich muss im Programm ein Array sortieren und komischer weise geht das was in einer einfachen Konsolenanwendung läuft nicht mehr, wenn man eine Qt-GUI Anwendung erstellt.
    Sobald ich die Zeile mit der sort-Funktion ausklammere geht alles.
    Die vier Werte sind einfach double Werte.
    Gibt es denn andere elegante Lösungen wie man vier Zahlenwerte der Grösse nach in einem Array sortieren kann?

    double array[4]= {xq1, xq2, xq3, xq4};
    int elemente = sizeof(array) / sizeof(array[0]);
    std::sort (array, array + elemente);

    Anbei die Fehlermeldung:
    /berechnung.cpp:144:15: Fehler: expected constructor, destructor, or type conversion before »(« token



  • Du nutzt doch Qt, dann kannst ja qSort auf einem Vector verwenden :

    QVector<double> vector;
    vector << xq1<< xq2 << xq3 << xq4;
    qSort(vector.begin(), vector.end());
    

  • Mod

    Find das komisch, das müsste eigentlich auch so funktionieren.
    Hatte noch nie ein Problem damit, die STL mit Qt zu nutzen...



  • Danke für den Tip mit dem Vector.
    Ich habe den Vector wie folgt abändern müssen, da Qt ansonsten
    den Befehl rot unterstreicht. Es kommt leider die selbe Fehlermeldung
    wie beim Array. Ein Blick auf die Qvector Bibliothek sagt mir das dieser
    mit einem dynamischen Array arbeitet, vielleicht daher das selbe Phänomen.

    QVector<double> vector;
    vector(xq1, xq2, xq3, xq4);
    qSort(vector.begin(), vector.end());

    Natürlich ist der Qvector Header eingebunden.
    Merkwürdig finde ich die Sache leider auch, da das ganze läuft, wenn
    ich eine einfache Konsolenanwendung daraus mache. Mir fällt der Gedanke
    schwer zu akzeptieren, dass da im Code ein gravierender Unterschied von
    Qt gemacht werden soll.

    Klar die ein und Ausgabe Routinen sind völlig anders aber damit gibts keine
    Probleme. cin und cout werden halt durch entsprechende Funktionen ersetzt
    die mit meinen ui Elementen kommunizieren. Weshalb aber bei einer einfachen
    Wertesortierung da plötzlich nichts mehr geht kommt mir auch seltsam vor.
    Vor allem mit der Fehlermeldung kann ich nichts anfangen.

    Aber trotzdem erst mal danke für die Variante mit dem Vector, ich finde sie in jedem Fall sehr elegant. Ich freue mich sehr über jeden teuren Rat!



  • [quote="AS-alwa-H2"]
    double array[4]= {xq1, xq2, xq3, xq4};
    int elemente = sizeof(array) / sizeof(array[0]);
    std::sort (array, array + elemente);

    Anbei die Fehlermeldung:
    /berechnung.cpp:144:15: Fehler: expected constructor, destructor, or type conversion before »(« token[/quote]

    Hast Du da ein #include <algorithm> irgendwo in Sichtweite?


Anmelden zum Antworten