Search
View source code
Display the source code in std/algorithm/sorting.d from which this page was generated on github.
Report a bug
Quickly fork, edit online, and submit a pull request for this page. Requires a signed-in GitHub account. This works well for small changes. If you'd like to make larger changes you may want to consider using local clone.

# Template `std.algorithm.sorting.multiSort`

Sorts a range by multiple keys.

``` template multiSort(less...) ; ```

The call ```multiSort!("a.id < b.id", "a.date > b.date")(r)``` sorts the range `r` by `id` ascending, and sorts elements that have the same `id` by `date` descending. Such a call is equivalent to ```sort!"a.id != b.id ? a.id < b.id : a.date > b.date"(r)```, but `multiSort` is faster because it does fewer comparisons (in addition to being more convenient).

NameDescription
multiSort

## Returns

The initial range wrapped as a `SortedRange` with its predicates converted to an equivalent single predicate.

## Example

``````import std.algorithm.mutation : SwapStrategy;
static struct Point { int x, y; }
auto pts1 = [ Point(0, 0), Point(5, 5), Point(0, 1), Point(0, 2) ];
auto pts2 = [ Point(0, 0), Point(0, 1), Point(0, 2), Point(5, 5) ];
multiSort!("a.x < b.x", "a.y < b.y", SwapStrategy.unstable)(pts1);
writeln(pts1); // pts2
``````