Клас Vector

(PECL ds >= 1.0.0)

Вступ

Вектор – це послідовність значень у безперервному буфері, який росте та обрізається автоматично. Це найбільш ефективна послідовна структура, оскільки індекси значень прямо відображаються на їхній індекс у буфері, і фактор зростання не впливає на складність доступу.

Сильні сторони

  • Підтримує синтаксис масиву (квадратні дужки).
  • Використовує менше пам'яті, ніж масив (array) із тією ж кількістю елементів.
  • Автоматично звільняє пам'ять, коли кількість елементів зменшується.
  • Місткість не обмежена ступенями двійки.
  • get() set() **push()** і **pop()**мають складність O(1).

Слабкі сторони

  • shift() unshift() **insert()** і **remove()**мають складність O(n).

Огляд класів


     
    

    
    

     class Ds\Vector
     implements  Ds\Sequence,  ArrayAccess {
    
    /* Константы */
    
     const
     int
      MIN_CAPACITY = 10;


    /* Методы */
    
   public allocate(int $capacity): void
public apply(callable $callback): void
public capacity(): int
public clear(): void
public contains(mixed ...$values): bool
public copy(): Ds\Vector
public filter(callable $callback = ?): Ds\Vector
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\Vector
public merge(mixed $values): Ds\Vector
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\Vector
public rotate(int $rotations): void
public set(int $index, mixed $value): void
public shift(): mixed
public slice(int $index, int $length = ?): Ds\Vector
public sort(callable $comparator = ?): void
public sorted(callable $comparator = ?): Ds\Vector
public sum(): int|float
public toArray(): array
public unshift(mixed $values = ?): void

   }

Обумовлені константи

Ds\Vector::MIN_CAPACITY

список змін

ВерсияОпис
PECL ds 1.3.0Тепер клас реалізує ArrayAccess

Зміст

  • Ds\Vector::allocate— Виділяє пам'ять під зазначену місткість
  • Ds\Vector::apply - Оновлює всі значення, застосовуючи до них передану callback-функцію
  • Ds\Vector::capacity— Повертає поточну місткість
  • Ds\Vector::clear - Видаляє всі значення
  • Ds\Vector::__construct - Створює новий екземпляр
  • Ds\Vector::contains— Перевіряє, чи міститься у векторі задані значення
  • Ds\Vector::copy— Повертає поверхневу копію вектора
  • Ds\Vector::count— Повертає кількість елементів вектора
  • Ds\Vector::filter— Створює новий вектор із елементів, вибраних за допомогою заданої callback-функції
  • Ds\Vector::find - Пошук індексу за значенням
  • Ds\Vector::first— Повертає перший елемент вектора
  • Ds\Vector::get— Повертає значення за індексом
  • Ds\Vector::insert— Вставляє значення за вказаним індексом
  • Ds\Vector::isEmpty— Перевіряє, чи вектор порожній.
  • Ds\Vector::join - Склеює всі значення в рядок
  • Ds\Vector::jsonSerialize— Повертає вектор у JSON-представництві
  • Ds\Vector::last— Повертає останнє значення вектора
  • Ds\Vector::map— Повертає результат застосування callback-функції до всіх значень вектора
  • Ds\Vector::merge— Повертає результат додавання всіх заданих значень у вектор.
  • Ds\Vector::pop— Видаляє та повертає останнє значення
  • Ds\Vector::push— Додає значення до кінця вектора
  • Ds\Vector::reduce - Зменшує вектор до одного значення, використовуючи callback-функцію
  • Ds\Vector::remove— Видаляє та повертає значення за індексом
  • Ds\Vector::reverse— Перевертає поточний вектор
  • Ds\Vector::reversed— Повертає перегорнуту копію вектора
  • Ds\Vector::rotate— Перемотує вектор на задану кількість значень
  • Ds\Vector::set— Замінює значення за вказаним індексом
  • Ds\Vector::shift— Видаляє та повертає перше значення
  • Ds\Vector::slice— Повертає підвектор із заданого діапазону
  • Ds\Vector::sort— Сортує вектор
  • Ds\Vector::sorted— Повертає копію колекції, відсортовану за значенням.
  • Ds\Vector::sum— Повертає суму всіх значень колекції
  • Ds\Vector::toArray— Перетворює колекцію на масив (array)
  • Ds\Vector::unshift— Додає значення на початок вектора