Thread overview
Custom compare function for array.sort on an integer array?
Apr 19, 2011
Sequ
Apr 19, 2011
Dmitry Olshansky
Apr 19, 2011
Dmitry Olshansky
Apr 19, 2011
Sequ
April 19, 2011
Like the topic says, is it possible to set a custom compare function, for when you are using the 'sort' property of an integer array? I want the integers to be sorted by a different criteria than their natural order. From the documentation (http://d-programming-language.org/arrays.html) I can see how it would be done for structs or objects, but it doesn't seem to be possible for primitive types.

If it can't yet be done, then I'm sure that adding the ability to give a comparison function or lazy expression to the 'sort' call would be very useful. Unless there is some reason that that would be beyond the scope of the 'sort' property's purpose?
April 19, 2011
On 19.04.2011 16:57, Sequ wrote:
> Like the topic says, is it possible to set a custom compare function, for when
> you are using the 'sort' property of an integer array? I want the integers to
> be sorted by a different criteria than their natural order. From the
> documentation (http://d-programming-language.org/arrays.html) I can see how it
> would be done for structs or objects, but it doesn't seem to be possible for
> primitive types.
>
> If it can't yet be done, then I'm sure that adding the ability to give a
> comparison function or lazy expression to the 'sort' call would be very
> useful. Unless there is some reason that that would be beyond the scope of the
> 'sort' property's purpose?
If you are talking use std.algorithm sort
Like taken from docs below:

bool  myComp(int  x,int  y) {return  x>  y; }
sort!(myComp)(array);


See also:
http://www.digitalmars.com/d/2.0/phobos/std_algorithm.html#sort

-- 
Dmitry Olshansky

April 19, 2011
On 19.04.2011 16:56, Dmitry Olshansky wrote:
> If you are talking use std.algorithm sort
Should be: "If your are talking about D2, then use std.algorithm sort ",  ouch :)

-- 
Dmitry Olshansky

April 19, 2011
> If your are talking about D2, then use std.algorithm sort Like taken from docs below:
>
> bool  myComp(int  x,int  y) {return  x>  y; }
> sort!(myComp)(array);
>
>
> See also: http://www.digitalmars.com/d/2.0/phobos/std_algorithm.html#sort
>
> --
> Dmitry Olshansky
Ah, yes, thanks; that looks like it could be perfect.