How to append to SortedRange?
Jakob Ovrum
jakobovrum at gmail.com
Sat Feb 15 03:46:07 PST 2014
On Saturday, 15 February 2014 at 09:51:57 UTC, Uranuz wrote:
> I have read doc for std.range and std.algorithm, but I have not
> found how I could add new value to SortedRange. What I want is
> to sort some array of structs by one of it's fields using
> custom predicate and save this SortedRange somewhere. But also
> I need to be able to append new elements into array and keep it
> sorted and using advantages of sorted data structure to for
> doing it quick.
>
> Is it possible to do it in current implementation of
> SortedRange. If not what workarounds would you advise?
The range concept does not include any notion of growing. It's
kind of messy, you have to grow the original:
---
T x = ...; // Insert x into...
T[] c = ...; // ...this sorted slice
auto pivot = c.assumeSorted().lowerBound(x).length;
c.insertInPlace(pivot, x);
---
For non-slice containers, use the `insertBefore` primitive (see
std.container).
More information about the Digitalmars-d-learn
mailing list