PHP - 向量函数


Vector 是连续缓冲区中自动增长和收缩的一系列值。它是最有效的顺序结构,因为值索引是到缓冲区中索引的直接映射,并且增长因子不绑定到特定的倍数或指数。

优势

  • 支持数组语法(方括号)。
  • 对于相同数量的值,使用的总体内存少于数组。
  • 当分配的内存大小足够低时,自动释放分配的内存。
  • 容量不一定是 2 的幂。
  • get()、set()、push()、pop() 都是 O(1)。

弱点

  • shift()、unshift()、insert() 和 remove() 都是 O(n)。

班级概要

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

预定义常量

Ds\Vector::MIN_CAPACITY

先生编号 功能说明
1

Ds\Vector::分配()

该函数可以为所需容量分配足够的内存。

2

Ds\Vector::apply()

该函数可以通过对每个值应用回调函数来更新所有值。

3

Ds\Vector::容量()

该函数可以返回当前容量。

4

Ds\Vector::clear()

该函数可以删除所有值。

5

Ds\Vector::__construct()

该函数可以创建一个新实例。

6

Ds\Vector::contains()

该函数可以确定向量是否包含给定值。

7

Ds\Vector::copy()

该函数可以返回向量的浅拷贝。

8

Ds\Vector::count()

该函数可用于计算向量中元素的数量。

9

Ds\Vector::find()

该函数可以使用 callable 创建一个新向量来确定要包含哪些值。

10

Ds\Vector::first()

该函数可以返回向量中的第一个值。

11

Ds\Vector::get()

该函数可以返回给定索引处的值。

12

Ds\Vector::插入()

该函数可以在给定索引处插入值。

13

Ds\Vector::isEmpty()

该函数可以返回向量是否为空。

14

Ds\Vector::join()

该函数可以将所有值连接在一起作为一个字符串。

15

Ds\Set::jsonSerialize()

此函数可以返回可转换为 JSON 的表示形式。

16

Ds\Vector::last()

该函数可以返回最后一个值

17 号

Ds\Vector::map()

此函数可以返回对每个值应用回调的结果。

18

Ds\序列::合并()

该函数可以返回将所有给定值添加到序列中的结果。

19

Ds\序列::pop()

该函数可以删除并返回最后一个值。

20

Ds\Vector::push()

该函数可以将值添加到向量的末尾。

21

Ds\Vector::reduce()

该函数可以使用回调函数将向量减少为单个值。

22

Ds\Vector::remove()

该函数可以按索引删除并返回一个值。

23

Ds\Vector::reverse()

该函数可以就地反转向量。

24

Ds\Vector::reversed()

该函数可以返回反向副本。

25

Ds\Vector::旋转()

该函数可以将向量旋转给定的旋转次数。

26

Ds\Vector::set()

该函数可以更新给定索引处的值。

27

Ds\Vector::shift()

该函数可以删除并返回第一个值

28

Ds\Vector::切片

该函数可以返回给定范围的子向量。

29

Ds\Vector::sort()

该函数可以就地对向量进行排序。

30

Ds\Vector::sorted()

该函数可以返回排序后的副本。

31

Ds\Vector::sum()

该函数可以返回向量中所有值的总和。

32

Ds\Vector::toArray

该函数可以将向量转换为数组。

33

Ds\Vector::unshift

该函数可以将值添加到向量的前面。

php_function_reference.htm