小编Cri*_*toi的帖子

为什么SplPriorityQueue类是队列(概念)

基本上SplPriorityQueueclass是使用max heapalgoritm 的堆.

我不明白为什么在文档中应该是a prioritized queue,因为a queue是一个FIFO集合(先进先出) - 但是因为SplPriorityQueue它依赖priority variable于比较函数,为什么它是一个队列?

为什么班级不仅仅是一个SplPriorityCollection?!

- > SplPriorityQueue文档


Mark Ba​​ker的启发评论我测试了比较功能的行为,当所有项目的优先级相同时,结果表明具有相同优先级的集合不是FIFO

$objPQ = new SplPriorityQueue(); 

$objPQ->insert('A', 1); 
$objPQ->insert('B', 1); 
$objPQ->insert('C', 1); 
$objPQ->insert('D', 1); 
$objPQ->insert('E', 1); 
$objPQ->insert('F', 1);
$objPQ->insert('G', 1);


foreach($objPQ as $val) {
    echo $val . "\n";
}
Run Code Online (Sandbox Code Playgroud)

输出:

A G F E D C B
Run Code Online (Sandbox Code Playgroud)

php spl

2
推荐指数
1
解决办法
968
查看次数

标签 统计

php ×1

spl ×1