查詢

SplHeap::compare()函式—用法及示例

「 比較兩個元素的大小順序 」


SplHeap::compare()是SplHeap類中的一個方法,用於比較兩個元素的大小順序。它必須被子類重寫來實現自定義的比較邏輯。

用法:

int SplHeap::compare ( mixed $value1 , mixed $value2 )

引數:

  • $value1: 第一個要比較的元素。
  • $value2: 第二個要比較的元素。

返回值:

  • 如果$value1小於$value2,返回一個負整數。
  • 如果$value1大於$value2,返回一個正整數。
  • 如果$value1等於$value2,返回0。

示例:

class MyHeap extends SplHeap {
    protected function compare($value1, $value2) {
        // 自定義比較邏輯
        if ($value1 < $value2) {
            return -1;  // $value1小於$value2
        } elseif ($value1 > $value2) {
            return 1;   // $value1大於$value2
        } else {
            return 0;   // $value1等於$value2
        }
    }
}

$heap = new MyHeap();
$heap->insert(5);
$heap->insert(2);
$heap->insert(8);

echo "堆中的元素按照自定義的比較邏輯排序:";
foreach ($heap as $value) {
    echo $value . " ";
}

輸出結果:

堆中的元素按照自定義的比較邏輯排序:2 5 8

在上面的示例中,我們建立了一個自定義的堆類MyHeap,繼承自SplHeap。在MyHeap類中,我們重寫了compare()方法來定義自己的比較邏輯。然後我們透過insert()方法向堆中插入一些元素,並使用foreach迴圈遍歷堆中的元素,輸出按照自定義比較邏輯排序後的結果。

補充糾錯
上一個函式: SplHeap::count()函式
熱門PHP函式
分享連結