在D语言中,如何对结构数组执行二进制搜索?

时间:2012-09-01 18:59:33

标签: arrays binary-search d

,例如,如果你有一个结构的排序数组:

struct Item
{
    int val;
    string property;
}

您如何与assumeSorted一起使用这些内容,以便随后可以搜索Item.val

我可以在网上找到的所有范围示例都使用整数数组。

1 个答案:

答案 0 :(得分:3)

您需要定义比较运算符:http://dlang.org/operatoroverloading.html#compare

struct Item
{
    int val;
    string property;

    int opCmp(ref const Item other) const
    {
        return val - other.val;
    }
}

定义比较运算符后,所有与排序相关的函数应该与整数一样工作。