PHP - Funzioni vettoriali

Il vettore è una sequenza di valori in un buffer contiguo che cresce e si riduce automaticamente. È la struttura sequenziale più efficiente perché l'indice del valore è una mappatura diretta al suo indice in un buffer e il fattore di crescita non è vincolato a un multiplo o esponente specifico.

Punti di forza

  • Supporta la sintassi degli array (parentesi quadre).
  • Utilizza meno memoria complessiva di un array per lo stesso numero di valori.
  • Libera automaticamente la memoria allocata quando le sue dimensioni si riducono abbastanza.
  • La capacità non deve essere una potenza di 2.
  • get (), set (), push (), pop () sono tutti O (1).

Debolezze

  • shift (), unshift (), insert () e remove () sono tutti O (n).

Sinossi della classe

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 ] )
}

Costanti predefinite

Ds \ Vector :: MIN_CAPACITY

Suor n Descrizione della funzione
1

Ds \ Vector :: allocate ()

Questa funzione può allocare memoria sufficiente per la capacità richiesta.

2

Ds \ Vector :: applica ()

Questa funzione può aggiornare tutti i valori applicando una funzione di callback a ciascun valore.

3

Ds \ Vector :: capacità ()

Questa funzione può restituire la capacità corrente.

4

Ds \ Vector :: clear ()

Questa funzione può rimuovere tutti i valori.

5

Ds \ Vector :: __ costrutto ()

Questa funzione può creare una nuova istanza.

6

Ds \ Vector :: contiene ()

Questa funzione può determinare se un vettore contiene valori dati.

7

Ds \ Vector :: copy ()

Questa funzione può restituire una copia superficiale del vettore.

8

Ds \ Vector :: count ()

Questa funzione può essere utilizzata per contare il numero di elementi in un vettore.

9

Ds \ Vector :: trova ()

Questa funzione può creare un nuovo vettore usando callable per determinare quali valori includere.

10

Ds \ Vector :: primo ()

Questa funzione può restituire il primo valore in un vettore.

11

Ds \ Vector :: get ()

Questa funzione può restituire un valore a un dato indice.

12

Ds \ Vector :: insert ()

Questa funzione può inserire i valori in un dato indice.

13

Ds \ Vector :: isEmpty ()

Questa funzione può restituire se il vettore è vuoto.

14

Ds \ Vector :: join ()

Questa funzione può unire tutti i valori insieme come una stringa.

15

Ds \ Set :: jsonSerialize ()

Questa funzione può restituire una rappresentazione che può essere convertita in JSON.

16

Ds \ Vector :: last ()

Questa funzione può restituire un ultimo valore

17

Ds \ Vector :: map ()

Questa funzione può restituire il risultato dell'applicazione di un callback a ciascun valore.

18

Ds \ Sequence :: merge ()

Questa funzione può restituire il risultato dell'aggiunta di tutti i valori dati a una sequenza.

19

Ds \ Sequence :: pop ()

Questa funzione può rimuovere e restituire l'ultimo valore.

20

Ds \ Vector :: push ()

Questa funzione può aggiungere valori alla fine di un vettore.

21

Ds \ Vector :: reduce ()

Questa funzione può ridurre il vettore a un singolo valore utilizzando la funzione di callback.

22

Ds \ Vector :: rimuovere ()

Questa funzione può rimuovere e restituire un valore in base all'indice.

23

Ds \ Vector :: reverse ()

Questa funzione può invertire il vettore sul posto.

24

Ds \ Vector :: invertito ()

Questa funzione può restituire una copia inversa.

25

Ds \ Vector :: rotate ()

Questa funzione può ruotare il verctor di un dato numero di rotazioni.

26

Ds \ Vector :: set ()

Questa funzione può aggiornare il valore a un dato indice.

27

Ds \ Vector :: shift ()

Questa funzione può rimuovere e restituire il primo valore

28

Ds \ Vector :: slice

Questa funzione può restituire un sub-vettore dell'intervallo dato.

29

Ds \ Vector :: sort ()

Questa funzione può ordinare il vettore sul posto.

30

Ds \ Vector :: ordinato ()

Questa funzione può restituire una copia ordinata.

31

Ds \ Vector :: sum ()

Questa funzione può restituire la somma di tutti i valori in un vettore.

32

Ds \ Vector :: toArray

Questa funzione può convertire il vettore in un array.

33

Ds \ Vector :: unshift

Questa funzione può aggiungere valori all'inizio di un vettore.