比较操作符重载

下表显示的比较运算符,其目的列表。

函数名 运算符 目的
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
联系我们

邮箱 626512443@qq.com
电话 18611320371(微信)
QQ群 235681453

Copyright © 2015-2022

备案号:京ICP备15003423号-3