Php/docs/class.ds-deque

来自菜鸟教程
跳转至:导航、​搜索

(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).


Strengths

  • Supports array syntax (square brackets).
  • Uses less overall memory than an array for the same number of values.
  • Automatically frees allocated memory when its size drops low enough.
  • get(), set(), push(), pop(), shift(), and unshift() are all O(1).


Weaknesses

  • Capacity must be a power of 2.
  • insert() and remove() are O(n).


类摘要


Ds\Deque implements Ds\Sequence , ArrayAccess {

/* Constants */

const int MIN_CAPACITY = 8

/* 方法 */

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


更新日志

版本 说明
PECL ds 1.3.0 The class now implements ArrayAccess.


Table of Contents