(No version information available, might only be in Git)
A Deque (pronounced “deck”) is a sequence of values in a contiguous buffer that grows and shrinks automatically. The name is a common abbreviation of “double-ended queue” and is used internally by Ds\Queue.
Two pointers are used to keep track of a head and a tail. The pointers can “wrap around” the end of the buffer, which avoids the need to move other values around to make room. This makes shift and unshift very fast — something a Ds\Vector can’t compete with.
Accessing a value by index requires a translation between the index and its corresponding position in the buffer: ((head + position) % capacity)
.
public allocate ( int $capacity ) : void
public apply ( callable $callback ) : void
public capacity ( ) : int
public clear ( ) : void
public contains ( mixed ...$values ) : bool
public copy ( ) : Ds\Deque
public filter ([ callable $callback ] ) : Ds\Deque
public find ( mixed $value ) : mixed
public first ( ) : mixed
public get ( int $index ) : mixed
public insert ( int $index , mixed ...$values ) : void
public isEmpty ( ) : bool
public join ([ string $glue ] ) : string
public last ( ) : mixed
public map ( callable $callback ) : Ds\Deque
public merge ( mixed $values ) : Ds\Deque
public pop ( ) : mixed
public push ( mixed ...$values ) : void
public reduce ( callable $callback [, mixed $initial ] ) : mixed
public remove ( int $index ) : mixed
public reverse ( ) : void
public reversed ( ) : Ds\Deque
public rotate ( int $rotations ) : void
public set ( int $index , mixed $value ) : void
public shift ( ) : mixed
public slice ( int $index [, int $length ] ) : Ds\Deque
public sort ([ callable $comparator ] ) : void
public sorted ([ callable $comparator ] ) : Ds\Deque
public sum ( ) : int|float
public toArray ( ) : array
public unshift ([ mixed $values ] ) : void}
Ds\Deque::MIN_CAPACITY
Version | Description |
---|---|
PECL ds 1.3.0 | The class now implements ArrayAccess. |
© 1997–2020 The PHP Documentation Group
Licensed under the Creative Commons Attribution License v3.0 or later.
https://www.php.net/manual/en/class.ds-deque.php