
SplPriorityQueue::compare 함수는 SplPriorityQueue 클래스의 내부 동작을 조절하는 함수입니다. 이 함수는 객체를 비교할 때 사용되는 기준을 정의하는 메소드입니다.
compare 함수는 SplPriorityQueue 클래스의 내부에서 자동으로 호출되며, 이 함수의 리턴값은 객체의 우선순위를 결정하는 데 사용됩니다.
compare 함수의 인자로 넘겨야 하는 객체는 SplPriorityQueue 클래스에 추가된 객체입니다. 이 객체는 compare 함수의 리턴값에 따라 우선순위를 결정합니다.
compare 함수의 리턴값은 다음과 같은 의미를 가지고 있습니다.
- 리턴값이 0 : 두 객체의 우선순위가 동일합니다.
- 리턴값이 음수 : 첫 번째 객체의 우선순위가 두 번째 객체보다 높습니다.
- 리턴값이 양수 : 첫 번째 객체의 우선순위가 두 번째 객체보다 낮습니다.
예를 들어, 다음 코드는 SplPriorityQueue 클래스에 객체를 추가하고, compare 함수를 사용하여 객체를 비교하는 예시입니다.
#hostingforum.kr
php
class Person {
public $name;
public $age;
public function __construct($name, $age) {
$this->name = $name;
$this->age = $age;
}
public function compare($other) {
if ($this->age > $other->age) {
return -1;
} elseif ($this->age < $other->age) {
return 1;
} else {
return 0;
}
}
}
$pq = new SplPriorityQueue();
$pq->insert(new Person('John', 30), 1);
$pq->insert(new Person('Alice', 25), 2);
$pq->insert(new Person('Bob', 30), 3);
while (!$pq->isEmpty()) {
echo $pq->extract()->name . "n";
}
이 예제에서는 Person 클래스의 compare 함수를 사용하여 객체를 비교합니다. compare 함수는 age 속성을 기준으로 객체를 비교합니다. 객체의 age 속성이 더 큰 객체는 우선순위가 높습니다.
2025-03-26 14:38