PHP Conference Nagoya 2025

La clase Vector

(PECL ds >= 1.0.0)

Introducción

Un Vector es una secuencia de valores en un buffer que crece y se encoge automáticamente. Esta es la más eficiente estructura secuencial debido a que el índice de un valor es un mapeo directo a su índice en el buffer, y el factor de crecimiento no está ligado a un multiplo o exponente específico.

Fortalezas

  • Soporta la sintaxis array (corchetes).
  • Usa menos memoria general que un array para el mismo número de valores.
  • Automáticamente libera la memoria asignada cuando su tamaño cae lo suficientemente bajo.
  • La capacidad no tiene que ser una potencia de 2.
  • get(), set(), push(), pop() son todos O(1).

Debilidades

  • shift(), unshift(), insert() y remove() son todos O(n).

Sinopsis de la Clase

class Ds\Vector implements Ds\Sequence, ArrayAccess {
/* Constantes */
const int MIN_CAPACITY = 10;
/* Métodos */
public allocate(int $capacity): void
public apply(callable $callback): void
public capacity(): int
public clear(): void
public contains(mixed ...$values): bool
public copy(): Ds\Vector
public filter(callable $callback = ?): Ds\Vector
public find(mixed $value): mixed
public first(): mixed
public get(int $index): mixed
public insert(int $index, mixed ...$values): void
public isEmpty(): bool
public join(string $glue = ?): string
public last(): mixed
public map(callable $callback): Ds\Vector
public merge(mixed $values): Ds\Vector
public pop(): mixed
public push(mixed ...$values): void
public reduce(callable $callback, mixed $initial = ?): mixed
public remove(int $index): mixed
public reverse(): void
public rotate(int $rotations): void
public set(int $index, mixed $value): void
public shift(): mixed
public slice(int $index, int $length = ?): Ds\Vector
public sort(callable $comparator = ?): void
public sorted(callable $comparator = ?): Ds\Vector
public sum(): int|float
public toArray(): array
public unshift(mixed $values = ?): void
}

Constantes predefinidas

Ds\Vector::MIN_CAPACITY

Historial de cambios

Versión Descripción
PECL ds 1.3.0 La clase ahora implementa ArrayAccess.

Tabla de contenidos

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top