它非常简单,文档中对此进行了描述:
这将使用比较器对象对元素进行排序。传递的对象必须具有以下形式的方法:
int compareElements (ElementType first, ElementType second);
..并且此方法必须返回:
如果第一个在第二
个之前,则值 < 0 如果两个对象相等
,则值为 0 如果第二个在第一个之前,则值 > 0
因此,要使用自己的比较器对 Array 进行排序,您必须定义一个实现上述方法的类,例如:
class MyArraySorter
{
public:
static int compareElements(ElementType a, ElementType b)
{
if (a < b)
return -1;
else if (a > b)
return 1;
else // if a == b
return 0;
}
};
当然,ElementType 必须是数组所持有的元素类型,并且 compareElements 的实现必须相应地进行调整。
然后将其传递给数组的排序方法:
MyArraySorter sorter;
myarr.sort(sorter);