Iterate/sort associative array by value?

Dennis dkorpel at gmail.com
Mon Apr 8 19:47:40 UTC 2019


On Monday, 8 April 2019 at 18:04:28 UTC, kdevel wrote:
> What's the purpose of .release? The documentation in 
> https://dlang.org/phobos/std_range.html#.SortedRange.release is 
> rather monosyllabic.

The sort function returns a SortedRange, which is usually an 
array wrapper with the extra type information that its content is 
sorted, enabling certain algorithms like lowerBound and 
upperBound with help of binary search.

"Ranges whose elements are sorted afford better efficiency with 
certain operations. For this, the assumeSorted function can be 
used to construct a SortedRange from a pre-sorted range. The 
std.algorithm.sorting.sort function also conveniently returns a 
SortedRange. SortedRange objects provide some additional range 
operations that take advantage of the fact that the range is 
sorted."
(https://dlang.org/phobos/std_range.html)

When you release it, you get it back as a normal slice without 
the type information that it is sorted, so you can assign it to 
regular old array variables. As mentioned in the quote, you can 
get it back as sortedRange with assumeSorted.


More information about the Digitalmars-d-learn mailing list