我定制了SplPriorityQueue。
class Application_Model_Astar_PQtest extends SplPriorityQueue
{
public function compare($priority1, $priority2)
{
if ($priority1 === $priority2) return 0;
return $priority1 > $priority2 ? -1 : 1;
}
}
如何检查此队列中是否存在元素?
答案 0 :(得分:4)
SplPriorityQueue
实现了一个迭代器,所以只需迭代它:
$foundIt = false;
foreach($queue as $item){
if($item !== 'element')
continue;
$foundIt = true;
break;
}
可替换地:
$foundIt = in_array('element', iterator_to_array($queue));