SplPriorityQueue::compare()函數是PHP中的一個內置函數,用於比較優先級隊列元素以在堆數據結構中的特定順序放置。
用法:
int SplPriorityQueue::compare( mixed $priority1 , mixed $priority2 )
參數:該函數接受上述和以下所述的兩個參數:
- priority1:此參數保留要比較的第一個節點的優先級。
- priority2:此參數保留正在比較的第二個節點的優先級。
返回值:該函數返回比較函數的結果。如果priority1大於priority2,則返回+ ve整數,如果相等則返回0,否則返回-ve整數。
例:
PHP
<?php
// Declare a class
class priorityQueue extends SplPriorityQueue {
// Compare function to compare priority
// queue elements
public function compare($p1, $p2) {
if ($p1 === $p2) return 0;
return $p1 < $p2 ? -1:1;
}
}
// Create an object of priority queue
$obj = new priorityQueue();
// Insert elements into the queue
$obj->insert("Geeks",2);
$obj->insert("GFG",1);
$obj->insert("G4G",3);
$obj->insert('G',4);
// Display the priority queue elements
var_dump($obj);
?>
輸出
object(priorityQueue)#1 (3) { ["flags":"SplPriorityQueue":private]=> int(1) ["isCorrupted":"SplPriorityQueue":private]=> bool(false) ["heap":"SplPriorityQueue":private]=> array(4) { [0]=> array(2) { ["data"]=> string(1) "G" ["priority"]=> int(4) } [1]=> array(2) { ["data"]=> string(3) "G4G" ["priority"]=> int(3) } [2]=> array(2) { ["data"]=> string(5) "Geeks" ["priority"]=> int(2) } [3]=> array(2) { ["data"]=> string(3) "GFG" ["priority"]=> int(1) } } }
參考:https://www.php.net/manual/en/splpriorityqueue.compare.php
相關用法
- PHP SplPriorityQueue isCorrupted()用法及代碼示例
- PHP SplPriorityQueue isEmpty()用法及代碼示例
- PHP SplPriorityQueue key()用法及代碼示例
- PHP SplPriorityQueue next()用法及代碼示例
- PHP SplPriorityQueue rewind()用法及代碼示例
- PHP SplPriorityQueue insert()用法及代碼示例
- PHP SplPriorityQueue extract()用法及代碼示例
- PHP SplPriorityQueue current()用法及代碼示例
- PHP SplPriorityQueue count()用法及代碼示例
- Node.js Buffer.compare()用法及代碼示例
注:本文由純淨天空篩選整理自AshokJaiswal大神的英文原創作品 PHP SplPriorityQueue compare() Function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。