Solved "int" Daten aus der Containerklasse QSet in ein ListWidget ausgeben
-
HAllo,
"ohneDoppelt" ist ein Container von "QSet" aus der STL der mit "int-Werten" gefüllt ist.
Diesen Container habe ich genommen um alle doppelten Einträge herauszufiltern.
Ich kann mir auch die "int"-Werte über qDebug() beim Ausführen des Programms anzeigen lassen.
Bisher ist es mir jedoch nicht gelungen die "int-Werte" aus dem Container QSet in QString umzuwandeln, damit diese Werte im QListWidget ausgegeben werden können.Steevie
-
Versuche einfach QList in dem Beispiel durch QSet zu ersetzen. Sollte eigentlich auch funktionieren.
QSet ist aber nicht STL! Hast du eine Konvertierung gemacht?
-
Bisher hat es trotzdem noch nicht geklappt, aber ich versuch es morgen weiter.
In meinem Lehrbuch steht, dass die Container- Klasse"QSet" Teil der "Standard-Template-Library" (also STL) ist.
So wie "Vector" oder "Queue".
Oder ist das nicht richtig?Danke für die Hilfe
Steevie
-
HAllo,
ja jetzt kann ich Daten in das ListWidget ausgeben. Das hat mir sehr geholfen.
Habe aber einen Denkfehler in meinem Programm.
Zuerst habe ich in einem Vektor die Daten aufsteigend sortiert und dann an QSet übergeben, um die doppelten Einträge herauszufiltern.Anscheind schmeisst QSet die Daten durcheinander, denn die Reihenfolge ist jetzt scheinbar willkürlich.
Aber ich denke, das bekomme ich jetzt hin.Danke nochmal.
Steevie
-
@steevie said in "int" Daten aus der Containerklasse QSet in ein ListWidget ausgeben:
HAllo,
ja jetzt kann ich Daten in das ListWidget ausgeben. Das hat mir sehr geholfen.
Habe aber einen Denkfehler in meinem Programm.
Zuerst habe ich in einem Vektor die Daten aufsteigend sortiert und dann an QSet übergeben, um die doppelten Einträge herauszufiltern.Anscheind schmeisst QSet die Daten durcheinander, denn die Reihenfolge ist jetzt scheinbar willkürlich.
Aber ich denke, das bekomme ich jetzt hin.Danke nochmal.
Steevie
-
Du brauchst den Vector zum Sortieren gar nicht.
QStringList::sort erlaubt dir das Sortieren. QStringList::removeDuplicates erlaubt dir die doppelten Werte zu entfernen. Ich denke damit kannst du dir einige Verrenkungen sparen.QSet legt tatsächlich nicht auf die Reihenfolge Wert.
QSet<T> is one of Qt's generic container classes. It stores values in an unspecified order and provides very fast lookup of the values. Internally, QSet<T> is implemented as a QHash.Ich verwende QSet nicht und war einfach von der stl Funktionalität ausgegangen.
-
Danke für die Tips,
aber bei uns haben wir gerade die Containerklassen behandelt, dehalb wollte ich es damit auch programmieren.
Jetzt jhabe ich es geschafft und das Programm ist fertig.
Wenn ich so etwas noch mal mache, werde ich es wahrscheinlich über QStrinList:: machen :-)
Danke nochmal.Steevie
-
@steevie said in "int" Daten aus der Containerklasse QSet in ein ListWidget ausgeben:
Danke für die Tips,
aber bei uns haben wir gerade die Containerklassen behandelt, dehalb wollte ich es damit auch programmieren.
Jetzt habe ich es geschafft und das Programm ist fertig.
Wenn ich so etwas noch mal mache, werde ich es wahrscheinlich über QStrinList:: machen :-)
Danke nochmal.Steevie
-
@steevie said in "int" Daten aus der Containerklasse QSet in ein ListWidget ausgeben:
@steevie said in "int" Daten aus der Containerklasse QSet in ein ListWidget ausgeben:
Danke für die Tips,
aber bei uns haben wir gerade die Containerklassen behandelt, dehalb wollte ich es damit auch programmieren.
Jetzt habe ich es geschafft und das Programm ist fertig.
Wenn ich so etwas noch mal mache, werde ich es wahrscheinlich über QStringList:: machen :-)
Danke nochmal.Steevie
-
@steevie Warum zitierst du dich ständig selbst? ^_^