On Friday, 9 May 2014 at 14:23:41 UTC, Luís Marques wrote:
If you have an array of structs, such as...

     struct Foo
     {
         int x;
         int y;
     }

     Foo[] foos;

...and you wanted to sort the foos then you'd do something like...

     foos.sort!(a.x < b.x),

..and, of course, both of the fields x and y get sorted together.
If you have a so-called struct of arrays, or an equivalent
situation, such as...

     int[] fooX;
     int[] fooY;

...is there a simple way to sort fooX and fooY
"together"/coherently (keyed on, say, fooX), using the standard
lib?

std.range.zip(fooX, fooY).sort!((a, b) => a[0] < b[0]);

I wasn't sure if that's supposed to work. Turns out the
documentation on zip [1] has this exact use case as an example.

[1] http://dlang.org/phobos/std_range.html#zip

Reply via email to