SplPriorityQueue::compare

(PHP 5 >= 5.3.0)

SplPriorityQueue::compare Сравнивает приоритеты для корректного помещения элементов в очередь

Описание

int SplPriorityQueue::compare ( mixed $priority1 , mixed $priority2 )

Сравнивает priority1 с priority2.

Список параметров

priority1

Приоритет первого узла.

priority2

Приоритет второго узла.

Возвращаемые значения

Результат сравнения, положительное число, когда priority1 больше priority2, 0 если они равны, и отрицательное число в остальных случаях.

Замечание:

При добавлении нескольких элементов с одинаковым приоритетом точный порядок следования этих элементов в очереди не определен.

Коментарии

Автор:
At this time, the documentation sais "Note: Multiple elements with the same priority will get dequeued in no particular order."

If you need elements of equal priority to maintain insertion order, you can use something like:

<?php

class StablePriorityQueue extends SplPriorityQueue {
    protected 
$serial PHP_INT_MAX;
    public function 
insert($value$priority) {
       
parent::insert($value, array($priority$this->serial--));
    }
}

?>
2009-10-10 19:51:14
http://php5.kiev.ua/manual/ru/splpriorityqueue.compare.html
Автор:
To create a min-heap priority queue, and have extract() give you the lowest priority:

class MinPriorityQueue extends SplPriorityQueue {
    public function compare($priority1, $priority2) {
        if ($priority1 === $priority2) return 0;
        return $priority1 > $priority2 ? 1 : -1; 
    }
}
2023-09-08 02:47:55
http://php5.kiev.ua/manual/ru/splpriorityqueue.compare.html

    Поддержать сайт на родительском проекте КГБ