如何对 DList 进行排序?

How to sort DList?

如何就地对 DList 和 SList 进行排序?

在 Python 中我们可以做 list.sort(),在 Java - Collections.sort(linkedList, new Comparator ...)

我不知道如何在 D 中做同样的事情。

排序链表效率低下,这就是为什么 sort 需要一个随机访问范围作为输入。您可能想要使用具有直接内存访问的数组:

import std.algorithm, std.container, std.stdio;
void main()
{
    auto list = DList!int(2, 1, 3);
    list[].array.sort.release.writeln; // or directly start with an array
}

Open on run.dlang.io.

或者使用某物。本质上像堆或 RBTree 一样排序:

import std.algorithm, std.container, std.stdio;
void main()
{
    auto list = DList!int(2, 1, 3);
    list[].redBlackTree[].writeln;
}

Open on run.dlang.io.