Класс Vector
(Информация о версии неизвестна, возможно, только в SVN)
Введение
Вектор - это последовательность значений в непрерывном буфере, который растет и обрезается автоматически. Это наиболее эффективная последовательная структура, поскольку индексы значений прямо отображаются на их индекс в буфере, и фактор роста не влияет на сложность доступа.
Сильные стороны
- Поддерживает синтаксис массива (квадратные скобки).
- Использует меньше памяти, чем array с тем же количеством элементов.
- Автоматически высвобождает память, когда количество элементов уменьшается.
- Вместимость не ограничена степенями двойки.
- get(), set(), push() и pop() имеют сложность O(1).
Слабые стороны
- shift(), unshift(), insert() и remove() имеют сложность O(n).
Обзор классов
Ds\Vector
implements Ds\Sequence
{
/* Константы */
/* Методы */
}Предопределенные константы
Ds\Vector::MIN_CAPACITY
Содержание
- 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 — Добавляет значения в начало вектора