sort struct of arrays
anonymous via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Fri May 9 07:48:49 PDT 2014
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
More information about the Digitalmars-d-learn
mailing list