略微加速

PHP官方手册 - 互联网笔记

PHP - Manual: SplPriorityQueue::compare

2024-11-23

SplPriorityQueue::compare

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplPriorityQueue::compareCompare priorities in order to place elements correctly in the heap while sifting up

说明

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

Compare priority1 with priority2.

参数

priority1

The priority of the first node being compared.

priority2

The priority of the second node being compared.

返回值

Result of the comparison, positive integer if priority1 is greater than priority2, 0 if they are equal, negative integer otherwise.

注意:

Multiple elements with the same priority will get dequeued in no particular order.

add a noteadd a note

User Contributed Notes 1 note

up
15
Anonymous
12 years ago
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--));
    }
}

?>

官方地址:https://www.php.net/manual/en/splpriorityqueue.compare.php

北京半月雨文化科技有限公司.版权所有 京ICP备12026184号-3