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());
-
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?