On Thursday, 20 October 2016 at 20:49:38 UTC, Ali Çehreli wrote:
Given a range of ranges where individual ranges are already
sorted, is there anything in Phobos that can visit the combined
range in sorted order?
Although the range elements are not necessarily arrays, e.g.
[ [ 3, 10, 20 ]
[ 1, 2, 7 ]
[ 5, 6 ] ]
The elements should appear without any copying as
[ 1, 2, 3, 5, 6, 7, 10, 20 ]
The outer range may be unsorted but luckily it has very few
elements so a linear search should be fine.
Ali
I have a variadic implemention of `std.algorithm.merge` lying
around that does this. It includes all the D bells and whistles
of lazy range including infiniteness propagation when possible.
Maybe it's time to get it in:
https://github.com/dlang/phobos/pull/3315#issuecomment-243089368
Note that it was first merged and then reverted by Andrei because
he thought the existing `setUnion` at
https://dlang.org/phobos/std_algorithm_setops.html#setUnion
is a superset of `merge`. But @wilzbach and others want it merged
:) anyway. I'll do another try. In the meantime you can use
setUnion.
I also recall a discussion about uniqueness handling, but have
forgotten the details.