라이브러리
[PHP] SplPriorityQueue::compare - 힙에 요소를 올바르게 배치하기 위해 우선순위를 비교합니다.
SplPriorityQueue::compare
PHP의 SplPriorityQueue 클래스는 우선순위 큐를 구현하는 데 사용됩니다. 우선순위 큐는 데이터를 저장하고, 데이터를 추출할 때 데이터의 우선순위를 기준으로 데이터를 정렬하는 자료구조입니다.
SplPriorityQueue::compare는 우선순위 큐에서 데이터의 우선순위를 비교하는 데 사용되는 콜백 함수입니다. 이 콜백 함수는 두 개의 데이터를 비교하여, 데이터의 우선순위를 결정하는 데 사용됩니다.
SplPriorityQueue::compare의 사용법
SplPriorityQueue::compare는 SplPriorityQueue 클래스의 생성자에 콜백 함수를 전달하여 사용할 수 있습니다. 콜백 함수는 두 개의 데이터를 비교하여, 데이터의 우선순위를 결정하는 데 사용됩니다.
#hostingforum.kr
php
$pq = new SplPriorityQueue();
$pq->setExtractFlags(SplPriorityQueue::EXTR_DATA);
$pq->setExtractFlags(SplPriorityQueue::EXTR_BOTH);
$pq->setExtractFlags(SplPriorityQueue::EXTR_DATA | SplPriorityQueue::EXTR_PRIORITY);
$pq->insert('apple', 1);
$pq->insert('banana', 2);
$pq->insert('cherry', 3);
while (!$pq->isEmpty()) {
$data = $pq->extract();
echo "Data: $data[0], Priority: $data[1]
";
}
SplPriorityQueue::compare의 콜백 함수
SplPriorityQueue::compare의 콜백 함수는 두 개의 데이터를 비교하여, 데이터의 우선순위를 결정하는 데 사용됩니다. 콜백 함수는 두 개의 데이터를 비교하여, 데이터의 우선순위를 결정하는 데 사용됩니다.
#hostingforum.kr
php
function compare($a, $b) {
if ($a['priority'] < $b['priority']) {
return -1;
} elseif ($a['priority'] > $b['priority']) {
return 1;
} else {
return 0;
}
}
$pq = new SplPriorityQueue();
$pq->setExtractFlags(SplPriorityQueue::EXTR_DATA);
$pq->setExtractFlags(SplPriorityQueue::EXTR_BOTH);
$pq->setExtractFlags(SplPriorityQueue::EXTR_DATA | SplPriorityQueue::EXTR_PRIORITY);
$pq->insert(['name' => 'apple', 'priority' => 1], 1);
$pq->insert(['name' => 'banana', 'priority' => 2], 2);
$pq->insert(['name' => 'cherry', 'priority' => 3], 3);
$pq->setExtractFlags(SplPriorityQueue::EXTR_BOTH);
$pq->setExtractFlags(SplPriorityQueue::EXTR_DATA | SplPriorityQueue::EXTR_PRIORITY);
$pq->setExtractFlags(SplPriorityQueue::EXTR_BOTH);
$pq->setCallback('compare');
while (!$pq->isEmpty()) {
$data = $pq->extract();
echo "Data: $data[0], Priority: $data[1]
";
}
SplPriorityQueue::compare의 예제
SplPriorityQueue::compare의 예제는 다음과 같습니다.
#hostingforum.kr
php
function compare($a, $b) {
if ($a['priority'] < $b['priority']) {
return -1;
} elseif ($a['priority'] > $b['priority']) {
return 1;
} else {
return 0;
}
}
$pq = new SplPriorityQueue();
$pq->setExtractFlags(SplPriorityQueue::EXTR_DATA);
$pq->setExtractFlags(SplPriorityQueue::EXTR_BOTH);
$pq->setExtractFlags(SplPriorityQueue::EXTR_DATA | SplPriorityQueue::EXTR_PRIORITY);
$pq->insert(['name' => 'apple', 'priority' => 1], 1);
$pq->insert(['name' => 'banana', 'priority' => 2], 2);
$pq->insert(['name' => 'cherry', 'priority' => 3], 3);
$pq->setExtractFlags(SplPriorityQueue::EXTR_BOTH);
$pq->setExtractFlags(SplPriorityQueue::EXTR_DATA | SplPriorityQueue::EXTR_PRIORITY);
$pq->setExtractFlags(SplPriorityQueue::EXTR_BOTH);
$pq->setCallback('compare');
while (!$pq->isEmpty()) {
$data = $pq->extract();
echo "Data: $data[0], Priority: $data[1]
";
}
이 예제는 SplPriorityQueue::compare의 콜백 함수를 사용하여, 데이터의 우선순위를 결정하는 데 사용됩니다. 콜백 함수는 두 개의 데이터를 비교하여, 데이터의 우선순위를 결정하는 데 사용됩니다.
-
- 나우호스팅 @pcs8404
-
호스팅포럼 화이팅!
댓글목록
등록된 댓글이 없습니다.