CList-Elemente sortieren

Hallo,
ich habe innerhalb einer Funktion eine Liste vom Typ CList mit double werten gefüllt.

Nun möchte ich diese Liste sortieren.

Dazu gibts nur ein Problem. Ich kann ein Objekt vom Typ CList nicht in eine andere Funktion übergeben.... oder ich weiß nicht, wie's richtig geht.

(Vielleicht geht ja auch der Umweg über ein Array, welches dann noch an Hand der Größe des CList-Objekts definiert werden muss)

Bin ein wenig ratlos.
Bitte um Hilfe
 
Hallo, die Übergabe an eine andere Funktions ist eigentlich kein großes Problem:
C++:
CList<double,double> list;  // Deklaration

void MyFunction(CList<double,double> &list) // Als Funktionsparameter
{
    // ...
}
Gruß
MCoder
 
Stimmt so nicht ganz!
In diesem Fall ist es der Referenzoperator. Er bewirkt, daß eine Referenz auf das Objekt übergeben und keine lokale Kopie angelegt wird.

[EDIT]
Noch eine Anmerkung: Zum Sortieren und suchen eignet sich das CList-Template nur bedingt, nämlich bei kleinen Listen. Da sie nur sequentiell durchlaufen werden kann, werden Such- und Einfügeoperationen ziemlich langsam, wenn eine größere Anzahl von Listenelementen verwaltet wird. Für solche Zwecke wäre es besser, einen Binärbaum zu implementieren.
 
Zuletzt bearbeitet:
da meine software zur bilderkennung genutzt wird, werden die listen so in etwa 100 - 200 einträge haben.

da nicht eine einfache sortierung von klein nach groß oder umgekehrt durchgeführt wird, sondern nach geometrien im koordinatensystem, wirst du recht haben, was die geschwindigkeit angeht.

die sortierung ist allerdings implementiert und läuft trotzdem in "echtzeit".
da ich aber immer wieder gerne lerne, kannst du mir gerne erklären, was du mit binärbaum meinst.

gruß,
Alex
 
'Baum' ist ein Begriff aus der Graphentheorie, genauer gesagt, ein bestimmter Typ Graph. Er besteht aus einem Wurzelknoten und 1-n Kindknoten. Ein Binärbaum hat genau 2 Kindknoten. Jeder Kindknoten kann, muß aber nicht, Wurzelknoten von weiteren Teilbäumen sein. Hat ein Knoten keine Kindknoten, so bezeichnet man ihn als Blatt.

Ich meinte hier speziell einen Sortierbaum (Suchbaum), bei dem alle Elemente 'links' des Wurzelknotens kleiner und alle Elemente 'rechts' des Wurzelknotens größer sind als dieser. Ein ausgewogener Suchbaum hat links und rechts die gleiche Tiefe, also die gleiche Anzahl von Ebenen. Damit ist die Ordnung des Suchaufwandes log2.

Eine viel bessere Erklärung findest Du bei Wikipedia . ;-)
Du kannst auch mal nach Binärbaum oder B-Baum googeln.
 
jo, sorry,
hab meine frage n bisl blöd gestellt....
die baumstruktur kenn ich...

wusste nur nicht, wie ich die zum sortieren nutzen soll,
aber nach deiner erklärung dämmerts,
dass das früher in informatik inner schule mal dran kam.

trotzdem danke...
 
Zurück