update page now

A classe Vector

(PECL ds >= 1.0.0)

Introdução

Um Vector é uma sequência de valores em um buffer contíguo que cresce e diminui automaticamente. É a estrutura sequencial mais eficiente porque o índice de um valor é um mapeamento direto para seu índice no buffer, e o fator de crescimento não está vinculado a um múltiplo ou expoente específico.

Pontos Fortes

  • Suporta a sintaxe de array (colchetes).
  • Usa menos memória geral do que um array para o mesmo número de valores.
  • Libera automaticamente a memória alocada quando seu tamanho diminui o suficiente.
  • A capacidade não precisa ser uma potência de 2.
  • get(), set(), push(), pop() são todos O(1).

Pontos Fracos

  • shift(), unshift(), insert() e remove() são todos O(n).

Resumo da classe

class Ds\Vector implements Ds\Sequence, ArrayAccess {
/* Constantes */
const int MIN_CAPACITY = 8;
/* Métodos */
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 predefinidas

Ds\Vector::MIN_CAPACITY

Registro de Alterações

Versão Descrição
PECL ds 1.3.0 A classe agora implementa ArrayAccess.
PECL ds 1.2.0 Ds\Vector::MIN_CAPACITY foi alterada de 10 para 8.

Índice

adicionar nota

Notas de Usuários

Não há notas de usuários para esta página.
To Top