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 = 8;
/* Méthodes */
public function allocate(int $capacity): void
public function apply(callable $callback): void
public function capacity(): int
public function clear(): void
public function contains(mixed ...$values): bool
public function copy(): Ds\Vector
public function filter(callable $callback = ?): Ds\Vector
public function find(mixed $value): mixed
public function first(): mixed
public function get(int $index): mixed
public function insert(int $index, mixed ...$values): void
public function isEmpty(): bool
public function join(string $glue = ?): string
public function last(): mixed
public function map(callable $callback): Ds\Vector
public function merge(mixed $values): Ds\Vector
public function pop(): mixed
public function push(mixed ...$values): void
public function reduce(callable $callback, mixed $initial = ?): mixed
public function remove(int $index): mixed
public function reverse(): void
public function reversed(): Ds\Vector
public function rotate(int $rotations): void
public function set(int $index, mixed $value): void
public function shift(): mixed
public function slice(int $index, int $length = ?): Ds\Vector
public function sort(callable $comparator = ?): void
public function sorted(callable $comparator = ?): Ds\Vector
public function sum(): int|float
public function toArray(): array
public function 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.
PECL ds 1.2.0 Ds\Vector::MIN_CAPACITY est passé de 10 à 8.

Sommaire

add a note

User Contributed Notes

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