PHP.mk документација

SplMinHeap

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

class.splminheap.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека class.splminheap.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
SplMinHeap

Референца за `class.splminheap.php` со подобрена типографија и навигација.

class.splminheap.php

Класата SplMinHeap

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Вовед

Класата SplMinHeap ги обезбедува главните функционалности на хип, задржувајќи го минимумот на врвот.

Синопсис на класата

class SplMinHeap extends SplHeap {
/* Методи */
protected compare(mixed $value1, mixed $value2): int
/* Наследени методи */
protected SplHeap::compare(mixed $value1, mixed $value2): int
public SplHeap::insert(mixed $value): true
public SplHeap::key(): int
}

Содржина

  • SplMinHeap::compare — Споредете ги елементите за да ги поставите правилно во хипот при просејување нагоре

Белешки од корисници 2 забелешки

gom
пред 6 години
I experimented what happens when arrays are inserted:

<?php
$heap = new SplMinHeap();
$heap->insert([22,333]);
$heap->insert([2,33]);
$heap->insert([222,3]);

var_export($heap->extract());
echo '<br>';
var_export($heap->extract());
echo '<br>';
var_export($heap->extract());
?>

Output:

array ( 0 => 2, 1 => 33, )
array ( 0 => 22, 1 => 333, )
array ( 0 => 222, 1 => 3, )
andy at nospam dot airslash dot net
Nimja
To expand on gom's comment, SplMinHeap will also take into account the subsequent elements of the array you inserted, if the elements before that are equal.

<?php 
$heap = new SplMinHeap();
$heap->insert([0, 10]);
$heap->insert([0, 30]);
$heap->insert([0, 15]);
while (!$heap->isEmpty()) {
    [$a, $b] = $heap->extract();
    echo "a:$a, b:$b\n";
}
echo "---\n";
$heap->insert([0, 10, 100]);
$heap->insert([0, 10, 300]);
$heap->insert([0, 10, 150]);
while (!$heap->isEmpty()) {
    [$a, $b, $c] = $heap->extract();
    echo "a:$a, b:$b, c:$c\n";
}
?>

will output:

a:0, b:10
a:0, b:15
a:0, b:30
---
a:0, b:10, c:100
a:0, b:10, c:150
a:0, b:10, c:300
На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.