下表顯示的比較運算子,其目的列表。
函式名 | 運算子 | 目的 |
---|---|---|
opCmp | < | whether before |
opCmp | <= | whether not after |
opCmp | > | whether after |
opCmp | >= | whether not before |
比較操作符是用於排序的陣列和一個範例如下所示如何使用比較性研究運算子。
import std.random; import std.stdio; import std.string; struct Box { int volume; int opCmp(const ref Box box) const { return (volume == box.volume ? box.volume - volume: volume - box.volume); } string toString() const { return format("Volume:%s ", volume); } } void main() { Box[] boxes; int j= 10; foreach (i; 0 .. 10) { boxes ~= Box(j*j*j); j = j-1; } writeln("Unsorted Array"); writeln(boxes); boxes.sort; writeln("Sorted Array"); writeln(boxes); writeln(boxes[0]<boxes[1]); writeln(boxes[0]>boxes[1]); writeln(boxes[0]<=boxes[1]); writeln(boxes[0]>=boxes[1]); }
讓我們編譯和執行上面的程式,這將產生以下結果:
Unsorted Array [Volume:1000 , Volume:729 , Volume:512 , Volume:343 , Volume:216 , Volume:125 , Volume:64 , Volume:27 , Volume:8 , Volume:1 ] Sorted Array [Volume:1 , Volume:8 , Volume:27 , Volume:64 , Volume:125 , Volume:216 , Volume:343 , Volume:512 , Volume:729 , Volume:1000 ] true false true false