Suchfunktion funktioniert nicht.
-
Ich will ein Integer Array Sortieren lassen. Dazu will ich TList benutzen
Es sollen nur die Elemente an den Rand gesetzt werden, die =-1 sind und die anderen nicht.
(8,-1,6,10,-1,12) -> (8,6,10,12,-1,-1)
Ich hab die Funktion geschrieben, aber es wird nicht sortiert. Und ich weis nicht warum.
for(int i = 0;i < Form2->Spiel.nEKarten ;i++) { Liste->Add(&Form2->Spiel.eigenKarten[i]); } Liste->Sort(EVergleich); int __fastcall EVergleich(void *Item1, void *Item2) { if ((*(int*)Item1 ==-1)&&(*(int*)Item1!=*(int*)Item2)) { return -1; } if ((*(int*)Item2 ==-1)&&(*(int*)Item1!=*(int*)Item2)) { return 1; } return 0; }
-
Was genau schreibst du denn in die Liste (Zahlen oder Zeiger auf Zahlen)?
Wenn du die Zahlen direkt rein schreibst, dann muß deine Vergleichsfunktion so aussehen:int __fastcall EVergleich(void *Item1, void *Item2) { if (((int)Item1 ==-1)&&((int)Item1!=(int)Item2)) { return -1; } if (((int)Item2 ==-1)&&((int)Item1!=(int)Item2)) { return 1; } return 0; }