Sortieren zweier Lisboxen
-
hi, habe folgene frage:
wie sortiere ich 2 listboxen mit dem dreiecks tausch ( in forms)eine listbox hat den namen die andere eine zahl. nach sortieren soll alles zusammen passen? kann wer helfen? danke!
-
Die einfachste Möglichkeit ist es wohl, die Inhalte beider Listboxen zusammenzufassen zu einem vector<pair<...> > und diesen zu sortieren und zurückzuschreiben in die Listboxen.
Andernfalls mußt du beim Sortieren selber dafür sorgen, daß beide Listen synchron bleiben - d.h. wenn du zwei Elemente in Liste 1 vertauschst, müssen auch die entsprechenden Elemente in Liste 2 getauscht werden.
PS: "Dreieckstausch" ist eine sehr präzise Angabe des zu verwendenden Verfahrens
Das nutzen ja nur ca. 95% der bekannten Sortier-Algorithmen als Grundlage.
-
versuche es nochmal genauer zu beschreiben:
ich habe eine textbox dort trage ich einen namen ein. dieser name wird in die erste listbox übernommen. dann habe ich noch eine 2. textbox, in der das alter eingertagen wird. dieser wert kommt in die 2. listbox.wenn nun sortiert werden soll, muss ja der rischtige name zum richtigen alter passen.
dazu möchte ich jeweils eine textbox für name un punkte benutzen, die unsichtbar auf dem form.h sind. dort schicke ich meine werte hin und her damit richtig sortierd wird.
ich weiß aber niucht wie das geht. ein quelltext oder bsp wäre sehr hilfreich.
danke!!
-
Wozu brauchst du da eine Textbox im Hintergrund? Dialog-Elemente sollten nur zur Anzeige genutzt werden - und (permanent) unsichtbare Elemente sind imho unsinnig - zumal du auch normale Variablen verwenden kannst:
//Prinziplösung - um die Details darfst du dich gerne selber kümmern. void OnSort() { vector<pair<string,int> > values; for(int i=0;i<names_list.getSize();++i) values.push_back(make_pair(names_list.getItem(i),age_list.getItem(i)); sort(values.begin(),values.end(); for(i=0;i<names_list.getSize();++i) { names_list.setItem(i,values[i].first); age_list.setItem(i,values[i].second); } }
-
also ich hatte mir das eher so vorgestellt ( bin auch eher anfänger und mir reicht das, wenn ich es so habe wie es auf den bildern zu sehen ist ):
[img=http://img525.imageshack.us/img525/4021/form1uc5.th.png]
[img=http://img527.imageshack.us/img527/5053/form2hc6.th.png]
-
Wenn du meinst, daß das so funktioniert, kannst du es ja verwenden. Jetzt mußt du den Code dort oben nur noch an deine Bedürfnisse anpassen (insbesondere an die Schnittstellen der ListBox-Klasse) und in die Methode btn_sortieren_Click(...) einbauen

(oder vermutlich noch besser - du sorgst gleich beim Einfügen der Daten dafür, daß sie sortiert werden).
PS: Deine Quelltexte mußt du nicht abfotografieren - wenn du die als cpp-Codes (sfds) einfügst, kommt das deutlich besser an.