PHP Conference Nagoya 2025

La classe Vector

(PECL ds >= 1.0.0)

Introduction

Un Vector est une séquence de valeurs dans un tampon contigu qui grandit et rétrécit automatiquement. C'est la structure séquentielle la plus efficace car l'index d'une valeur est une correspondance directe avec son index dans le tampon, et le facteur de croissance n'est pas lié à un multiple ou un exposant spécifique.

Forces

  • Support de la syntaxe de tableau (crochets).
  • Utilise moins de mémoire globale qu'un tableau pour le même nombre de valeurs.
  • Libère automatiquement la mémoire allouée lorsque sa taille devient suffisamment faible.
  • La capacité n'a pas à être une puissance de 2.
  • get(), set(), push(), pop() sont tous de complexité O(1).

Faiblesses

  • shift(), unshift(), insert() et remove() sont tous de complexité O(n).

Synopsis de la classe

class Ds\Vector implements Ds\Sequence, ArrayAccess {
/* Constantes */
const int MIN_CAPACITY = 10;
/* Méthodes */
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 pré-définies

Ds\Vector::MIN_CAPACITY

Historique

Version Description
PECL ds 1.3.0 Cette classe implémente maintenant ArrayAccess.

Sommaire

add a note

User Contributed Notes

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