PHP - Fonctions vectorielles

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

Forces

  • Prend en charge 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 diminue suffisamment.
  • La capacité ne doit pas nécessairement être une puissance de 2.
  • get (), set (), push (), pop () sont tous O (1).

Faiblesses

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

Synopsis du cours

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 prédéfinies

Ds \ Vector :: MIN_CAPACITY

Sr. Non Description de la fonction
1

Ds \ Vector :: allocate ()

Cette fonction peut allouer suffisamment de mémoire pour la capacité requise.

2

Ds \ Vector :: apply ()

Cette fonction peut mettre à jour toutes les valeurs en appliquant une fonction de rappel à chaque valeur.

3

Ds \ Vector :: capacité ()

Cette fonction peut renvoyer la capacité actuelle.

4

Ds \ Vector :: clear ()

Cette fonction peut supprimer toutes les valeurs.

5

Ds \ Vector :: __ construct ()

Cette fonction peut créer une nouvelle instance.

6

Ds \ Vector :: contient ()

Cette fonction peut déterminer si un vecteur contient des valeurs données.

sept

Ds \ Vector :: copie ()

Cette fonction peut renvoyer une copie superficielle du vecteur.

8

Ds \ Vector :: count ()

Cette fonction peut être utilisée pour compter le nombre d'éléments dans un vecteur.

9

Ds \ Vector :: find ()

Cette fonction peut créer un nouveau vecteur en utilisant callable pour déterminer les valeurs à inclure.

dix

Ds \ Vector :: first ()

Cette fonction peut renvoyer la première valeur d'un vecteur.

11

Ds \ Vector :: get ()

Cette fonction peut renvoyer une valeur à un index donné.

12

Ds \ Vector :: insert ()

Cette fonction peut insérer les valeurs à un index donné.

13

Ds \ Vector :: isEmpty ()

Cette fonction peut renvoyer si le vecteur est vide.

14

Ds \ Vector :: join ()

Cette fonction peut joindre toutes les valeurs sous forme de chaîne.

15

Ds \ Set :: jsonSerialize ()

Cette fonction peut renvoyer une représentation qui peut être convertie en JSON.

16

Ds \ Vector :: last ()

Cette fonction peut renvoyer une dernière valeur

17

Ds \ Vector :: map ()

Cette fonction peut renvoyer le résultat de l'application d'un rappel à chaque valeur.

18

Ds \ Sequence :: merge ()

Cette fonction peut renvoyer le résultat de l'ajout de toutes les valeurs données à une séquence.

19

Ds \ Séquence :: pop ()

Cette fonction peut supprimer et renvoyer la dernière valeur.

20

Ds \ Vector :: push ()

Cette fonction peut ajouter des valeurs à la fin d'un vecteur.

21

Ds \ Vector :: réduire ()

Cette fonction peut réduire le vecteur à une valeur unique en utilisant la fonction de rappel.

22

Ds \ Vector :: remove ()

Cette fonction peut supprimer et renvoyer une valeur par index.

23

Ds \ Vector :: reverse ()

Cette fonction peut inverser le vecteur sur place.

24

Ds \ Vector :: inversé ()

Cette fonction peut renvoyer une copie inversée.

25

Ds \ Vector :: rotate ()

Cette fonction peut faire tourner le verctor d'un nombre donné de rotations.

26

Ds \ Vector :: set ()

Cette fonction peut mettre à jour la valeur à un index donné.

27

Ds \ Vector :: shift ()

Cette fonction peut supprimer et renvoyer la première valeur

28

Ds \ Vector :: slice

Cette fonction peut renvoyer un sous-vecteur de la plage donnée.

29

Ds \ Vector :: sort ()

Cette fonction peut trier le vecteur sur place.

30

Ds \ Vector :: trié ()

Cette fonction peut renvoyer une copie triée.

31

Ds \ Vector :: sum ()

Cette fonction peut renvoyer la somme de toutes les valeurs d'un vecteur.

32

Ds \ Vector :: toArray

Cette fonction peut convertir le vecteur en tableau.

33

Ds \ Vector :: unshift

Cette fonction peut ajouter des valeurs au début d'un vecteur.