PHP - Funciones vectoriales

El vector es una secuencia de valores en un búfer contiguo que crece y se reduce automáticamente. Es la estructura secuencial más eficiente porque el índice de valor es una asignación directa a su índice en un búfer, y el factor de crecimiento no está vinculado a un múltiplo o exponente específico.

Fortalezas

  • Admite la sintaxis de matriz (corchetes).
  • Utiliza menos memoria general que una matriz para el mismo número de valores.
  • Libera automáticamente la memoria asignada cuando su tamaño cae lo suficientemente bajo.
  • La capacidad no tiene por qué 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

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

Constantes predefinidas

Ds \ Vector :: MIN_CAPACITY

No Señor Función descriptiva
1

Ds \ Vector :: allocate ()

Esta función puede asignar suficiente memoria para la capacidad requerida.

2

Ds \ Vector :: aplicar ()

Esta función puede actualizar todos los valores aplicando una función de devolución de llamada a cada valor.

3

Ds \ Vector :: capacidad ()

Esta función puede devolver la capacidad actual.

4

Ds \ Vector :: clear ()

Esta función puede eliminar todos los valores.

5

Ds \ Vector :: __ construct ()

Esta función puede crear una nueva instancia.

6

Ds \ Vector :: contiene ()

Esta función puede determinar si un vector contiene valores dados.

7

Ds \ Vector :: copiar ()

Esta función puede devolver una copia superficial de vector.

8

Ds \ Vector :: cuenta ()

Esta función se puede utilizar para contar el número de elementos en un vector.

9

Ds \ Vector :: buscar ()

Esta función puede crear un nuevo vector utilizando invocables para determinar qué valores incluir.

10

Ds \ Vector :: primero ()

Esta función puede devolver el primer valor de un vector.

11

Ds \ Vector :: get ()

Esta función puede devolver un valor en un índice dado.

12

Ds \ Vector :: insertar ()

Esta función puede insertar los valores en un índice dado.

13

Ds \ Vector :: isEmpty ()

Esta función puede devolver si el vector está vacío.

14

Ds \ Vector :: unirse ()

Esta función puede unir todos los valores como una cadena.

15

Ds \ Set :: jsonSerialize ()

Esta función puede devolver una representación que se puede convertir a JSON.

dieciséis

Ds \ Vector :: last ()

Esta función puede devolver un último valor

17

Ds \ Vector :: mapa ()

Esta función puede devolver el resultado de aplicar una devolución de llamada a cada valor.

18

Ds \ Sequence :: merge ()

Esta función puede devolver el resultado de sumar todos los valores dados a una secuencia.

19

Ds \ Sequence :: pop ()

Esta función puede eliminar y devolver el último valor.

20

Ds \ Vector :: empujar ()

Esta función puede agregar valores al final de un vector.

21

Ds \ Vector :: reduce ()

Esta función puede reducir el vector a un solo valor mediante la función de devolución de llamada.

22

Ds \ Vector :: eliminar ()

Esta función puede eliminar y devolver un valor por índice.

23

Ds \ Vector :: reverse ()

Esta función puede invertir el vector in situ.

24

Ds \ Vector :: invertido ()

Esta función puede devolver una copia invertida.

25

Ds \ Vector :: rotate ()

Esta función puede rotar el verctor en un número determinado de rotaciones.

26

Ds \ Vector :: set ()

Esta función puede actualizar el valor en un índice determinado.

27

Ds \ Vector :: shift ()

Esta función puede eliminar y devolver el primer valor

28

Ds \ Vector :: rebanada

Esta función puede devolver un subvector del rango dado.

29

Ds \ Vector :: sort ()

Esta función puede ordenar el vector in situ.

30

Ds \ Vector :: ordenado ()

Esta función puede devolver una copia ordenada.

31

Ds \ Vector :: suma ()

Esta función puede devolver la suma de todos los valores en un vector.

32

Ds \ Vector :: toArray

Esta función puede convertir el vector en una matriz.

33

Ds \ Vector :: unshift

Esta función puede agregar valores al frente de un vector.