Mehrere Vec2 sortieren
-
Hallo an alle,
ich habe das folgende, eigtl. simple Problem:
Ich habe insgesamt vier 2-dim. Vektoren vom Typ float, also[v11, v12]
[v21, v22]
[v31, v32]
[v41, v42]und möchte diese nach der ersten (und im Zweifel dann nach der zweiten) Koordinate sortieren, also z.B.
[1.0,4.0], [1.0,0.0], [-3.0,4.0], [7.0,-5.0]
ergibt dann sortiert:
[-3.0,4.0], [1.0,0.0], [1.0,4.0], [7.0,-5.0]Gibt es eine schnelle Möglichkeit oder bereits Funktionen in C++, das zu tun ?
Viele Grüße und schönen Dank im Voraus,
Meyoto
-
Überlade operator < und sortiere dann mit std::sort. (operator = muss natürlich auch zur Verfügung stehen.)
Edit: Wobei operator < bei Vektoren vielleicht anders gedeutet wird. Eventuell besser eine Lambda-Funktion (oder etwas Äquivalentes mit C++03) nutzen.
-
Du brauchst den Operator nicht unbedingt zu überladen. Definier einfach eine eigene Sortierfunktion. Wie das geht, findest du in jeder guten Referenz von sort.