在埃菲尔铁塔中对可比同类商品进行分类的一些方法

我应该使用哪个内核库对eiffel中的集合进行排序?

在哪里可以找到排序示例?可以使用典型的气泡分类等吗?

任何带有agent的分类器也非常有用,可以避免不得不使用未使用PATH类实现的可比对象

tldtc007 回答:在埃菲尔铁塔中对可比同类商品进行分类的一些方法

base_extension提供了一个有效的SORTER冒泡,快速和外壳排序算法的延迟类implementations

它使用比较器对象对任意类型(不一定是COMPARABLE类型)的元素进行比较。比较器接口的一种实现是AGENT_EQUALITY_TESTER,您将代理传递给该接口,以确定一个对象是否小于另一个对象。

这里是一个示例,如何使用冒泡排序按其规范名称对路径进行排序:

sort_paths (a_paths: INDEXABLE [PATH,INTEGER])
    local
        l_sorter: SORTER [PATH]
    do
        create {BUBBLE_SORTER [PATH]} l_sorter.make
            (create {AGENT_EQUALITY_TESTER [PATH]}.make (
                agent (a_p1,a_p2: PATH): BOOLEAN
                    do
                        Result := a_p1.canonical_path < a_p2.canonical_path
                    end))
        l_sorter.sort (a_paths)
    end

现在,如果存在类型为paths的路径ARRAYED_LIST [PATH]的列表,则可以通过调用sort_paths (paths)对其进行排序。

本文链接:https://www.f2er.com/3106052.html

大家都在问