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