Sort bug / strangeness
Danny Arends
Danny.Arends at gmail.com
Fri Oct 1 18:30:48 UTC 2021
On Friday, 1 October 2021 at 17:53:24 UTC, Steven Schveighoffer
wrote:
> I think your struct is different than this, because this only
> happens if aliasing is inside the struct being sorted (i.e. it
> has pointers). Your presented struct doesn't have pointers, and
> the code you linked to is completely parameterized on the
> struct type.
>
> If it does have pointers, you are not allowed to swap the
> values if either points to each other (or themselves).
Thanks Steve for saving Friday,
The struct has indeed a parent pointer, It's a pretty big struct
so just posted the excerpt (sorry). So that's the cause then.
So how to sort this N[] object by f() then ?
The pointer is only used to be traversed back after the search
has finished. Is there a sort() algorithm that avoids swapping
the items themselves and e.g. just returns the indexes so I can
reorder the original array myself ?
Danny
More information about the Digitalmars-d-learn
mailing list