下表显示的比较运算符,其目的列表。
| 函数名 | 运算符 | 目的 |
|---|---|---|
| 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