Deque (class)
The Deque class
介绍
(没有可用的版本信息,可能只在Git中)
Deque(发音为“deck”)是连续缓冲区中的一系列值,可自动增长和缩小。该名称是“双端队列”的常用缩写,由Ds \ Queue在
内部使用。
两个指针用于跟踪头部和尾部。指针可以“环绕”缓冲区的末尾,这避免了需要移动其他值来腾出空间。这使得移位和非移位速度非常快 - Ds \ Vector
无法与之竞争。
按索引访问值需要在索引和其在缓冲区中的相应位置之间进行转换:((head + position) % capacity)
。
优势
- 支持数组语法(方括号)。
- 对于相同数量的值,使用比阵列少的总体内存。
- 当尺寸下降得足够小时,自动释放分配的内存。
get()
,set()
,push()
,pop()
,shift()
和unshift()
都是O(1)。
弱点
- 容量必须是2的幂。
insert()
和remove()
是O(n)。
课程简介
Ds \ Deque
实现Ds \ Sequence
{
/* Constants */
const int MIN_CAPACITY = 8 ;
/* 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\Deque copy ( void )
public Ds\Deque 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\Deque map ( callable $callback )
public Ds\Deque 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\Deque reversed ( void )
public void rotate ( int $rotations )
public void set ( int $index , mixed $value )
public mixed shift ( void )
public Ds\Deque slice ( int $index [, int $length ] )
public void sort ([ callable $comparator ] )
public Ds\Deque sorted ([ callable $comparator ] )
public number sum ( void )
public array toArray ( void )
public void unshift ([ mixed $values ] )
}
预定义的常量
Ds\Deque::MIN_CAPACITY
目录
- Ds \ Deque :: allocate - 为所需容量分配足够的内存。
- Ds \ Deque :: apply - 通过对每个值应用回调函数来更新所有值。
- Ds \ Deque :: capacity - 返回当前容量。
- Ds \ Deque :: clear - 从deque中删除所有值。
- Ds \ Deque :: __ construct - 创建一个新实例。
- Ds \ Deque :: contains - 确定deque是否包含给定的值。
- Ds \ Deque :: copy - 返回deque的浅表副本。
- Ds \ Deque :: count - 返回集合中的值的数量。
- Ds \ Deque :: filter - 使用callable创建一个新的deque,以确定要包含哪些值。
- Ds \ Deque :: find - 尝试查找值的索引。
- Ds \ Deque :: first - 返回双端队列中的第一个值。
- Ds \ Deque :: get - 返回给定索引处的值。
- Ds \ Deque :: insert - 在给定索引处插入值。
- Ds \ Deque :: isEmpty - 返回deque是否为空
- Ds \ Deque :: join - 将所有值连接为一个字符串。
- Ds \ Deque :: jsonSerialize - 返回可以转换为JSON的表示。
- Ds \ Deque :: last - 返回最后一个值。
- Ds \ Deque :: map - 返回对每个值应用回调的结果。
- Ds \ Deque :: merge - 返回将所有给定值添加到双端队列的结果。
- Ds \ Deque :: pop - 删除并返回最后一个值。
- Ds \ Deque :: push - 将值添加到双端队列的末尾。
- Ds \ Deque :: reduce - 使用回调函数将deque减少为单个值。
- Ds \ Deque :: remove - 通过索引删除并返回一个值。
- Ds \ Deque :: reverse - 在原地反转deque。
- Ds \ Deque :: reversed - 返回一个颠倒的副本。
- Ds \ Deque :: rotate - 通过给定的旋转次数旋转deque。
- Ds \ Deque :: set - 更新给定索引处的值。
- Ds \ Deque :: shift - 移除并返回第一个值。
- Ds \ Deque :: slice - 返回给定范围的子转角。
- Ds \ Deque :: sort - 将就地排序。
- Ds \ Deque :: sorted - 返回一个排序副本。
- Ds \ Deque :: sum - 返回deque中所有值的总和。
- Ds \ Deque :: toArray - 将双端转换为数组。
- Ds \ Deque :: unshift - 将值添加到双端队列的前端。
←Ds \ Vector :: unshift
d \各显神通::分配→