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.


  • Mod

    Du brauchst den Operator nicht unbedingt zu überladen. Definier einfach eine eigene Sortierfunktion. Wie das geht, findest du in jeder guten Referenz von sort.


Log in to reply