Datentyp Liste/QMap

Du bist neu in der Welt von C++? Dann schau hier herein!
Antworten
rvb
Beiträge: 35
Registriert: 8. April 2010 14:42

Datentyp Liste/QMap

Beitrag von rvb »

Hallo Forum,

was wäre hier der geeignete Datentyp?
Ich habe eine Handvoll Datenpaare (Zahl - Text), sowohl Zahl als auch Text sind jeweils eindeutig. Die Zahl soll geändert werden können. Zu bestimmten Zeitpunkten muss ich die "Liste" nach den Zahlen absteigend sortieren können um herausfinden zu können wieviele Datensätze vor und hinter einem bestimmten anderen Datensatz liegen.

Beispiel:
Durchlauf 1: (1 - bla), (2 - blup), (6 - foo)
Durchlauf 2: (1- bla), (8 - blup), (6 - foo)
Sortieren nach Durchlauf 2: (8 - blup), (6 - foo), (1- bla)

Mein Ansatz wäre ein QMap. Oder gibt es da noch was Besseres?

Grüße Roland
solarix
Beiträge: 1133
Registriert: 7. Juni 2007 19:25

Beitrag von solarix »

Ein QMap ist (wie der Name vermuten lässt) keine Liste.. da werden die Elemente beim Einfügen bereits eingeordnet (du hast also keinen Einfluss mehr auf die Reihenfolge).

Wenn du also selbst die Kontrolle über die Reihenfolge behalten möchtest, brauchst du eher was anderes:


... eine Handvoll Datenpaare (Zahl - Text), sowohl Zahl als auch Text .... muss ich die "Liste" nach den Zahlen absteigend sortieren können
Das klingt doch eher nach

Code: Alles auswählen

 QList<QPair<int, QString> >    mFooList;
hth..
rvb
Beiträge: 35
Registriert: 8. April 2010 14:42

Beitrag von rvb »

Danke, klingt schonmal gut.

Nur habe ich da das Problem, dass ich folgende Meldung bekomme sobald ich das Programm starte: "Das Programm ist abgestürzt."

Im Debug sieht es so aus, als wenn es hier crasht ui_mainwindow.h:

Code: Alles auswählen

 centralWidget = new QWidget(MainWindow); 
was komisch ist, denn ich füge die Zeile in testteil.h hinzu, ohne die Zeile läuft es sauber durch

Code: Alles auswählen

#include <QMap>
#include <QPair>
#include <QList>

class Testteil
{ 
[...]  
private:
QList< QPair<int, QString> >    ttliste;
}
Hab ich was Entscheidenes vergessen? Denn wenn ich die QList-Zeile in mainwindow.h einfüge geht es auch. Nur will ich, dass es Bestandteil von Testteil ist.
Und eigentlich wollte ich, dass ttliste ein Pointer ist. Wie würde der Code dann dafür aussehen?
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

Poste mal mehr Code, in den Zeilen die du uns zeigst ist kein Fehler (bis auf den felenden ";" hinter der Klassendefinition von Testteil).
rvb
Beiträge: 35
Registriert: 8. April 2010 14:42

Beitrag von rvb »

Hi, ich hab vorhin mal versucht aus meinem Code ein Minimalbeispiel zu machen. Da läuft alles wie gewollt.

Also Danke allerseits für die Unterstützung
Antworten