Hallo Alex,
Allerdings soll die Sortierung von einem Parameter abhängig sein, den die std::sort aufrufende Funktion festlegt. Nun bräuchte ich sowas wie Lambda-Funktionen, um std::sort eine entsprechende Funktion mitzugeben. Das scheint's in C++ nicht standardmäßig zu geben. Alternativ kann ich vor dem Sortieren jedem Objekt diesen Parameter über eine seiner Membervariablen mitgeben. Das scheint mir allerdings etwas umständlich. Gibt's noch andere, bessere Lösungen?
Du kannst statt einer Funktion auch einen Funktor verwenden:
class MyCompare {
private:
int parameter;
public:
// Construktor & Copy-Construktor
MyCompare(int parameter) : parameter(parameter) {}
MyCompare(const MyCompare& o) : parameter(o.parameter) {}
// hiermit lassen sich objekte dieser klasse dann aufrufen
// d.h. sowas wie
// MyCompare foo(23);
// bool result = foo(o1, o2);
bool operator() (ObjektTyp i, ObjektTyp j) {
// gib etwas in abhängigkeit von i, j und parameter zurück
}
}
vector<ObjektTyp> v;
// v füllen
MyCompare compare(42); // mit parameter initialisieren
sort(vec.begin(), vec.end(), compare);
Viele Grüße,
Christian
--
Mein "Weblog" [RSS]
Using XSLT to create JSON output (Saxon-B 9.0 for Java)
How to tell the difference between a science fan and a scientist.
Mein "Weblog" [RSS]
Using XSLT to create JSON output (Saxon-B 9.0 for Java)
How to tell the difference between a science fan and a scientist.