Vec[A: Any #share]
Персистентный вектор, основанный на хэш-матрице сопоставления с помощью древовидной структуры «Идеальные хэш-деревья» Фила Бэгвелла.
class val Vec[A: Any #share]
Конструкторы
create
new val create() : Vec[A] val^
Возвращает
- Vec[A] val^
Публичные функции
size
Возвращает количество элементов в векторе.
fun box size() : USize val
Возвращает
- USize val
apply
Возвращает элемент с индексом i, вызывая ошибку, если индекс вне границ.
fun box apply( i: USize val) : val->A ?
Параметры
- i: USize val
Возвращает
- val->A ?
update
Возвращает вектор с изменённым элементом с индексом i, вызывая ошибку, если индекс вне границ.
fun val update( i: USize val, value: val->A) : Vec[A] val ?
Параметры
- i: USize val
- value: val->A
Возвращает
- Vec[A] val ?
insert
Возвращает вектор с вставленным элементом. Элементы после вставленного смещаются на одну позицию вверх, увеличивая размер вектора. Индекс вне границ вызывает ошибку.
fun val insert( i: USize val, value: val->A) : Vec[A] val ?
Параметры
- i: USize val
- value: val->A
Возвращает
- Vec[A] val ?
delete
Возвращает вектор с удалённым элементом. Элементы после удалённого смещаются вниз на одну позицию, уменьшая размер вектора. Индекс вне границ вызывает ошибку.
fun val delete( i: USize val) : Vec[A] val ?
Параметры
- i: USize val
Возвращает
- Vec[A] val ?
remove
Возвращает вектор с удалёнными n элементами, начиная с индекса i.
fun val remove( i: USize val, n: USize val) : Vec[A] val ?
Параметры
Возвращает
- Vec[A] val ?
push
Возвращает вектор со значением, добавленным в конец.
fun val push( value: val->A) : Vec[A] val
Параметры
- value: val->A
Возвращает
- Vec[A] val
pop
Возвращает вектор с удалённым значением с конца.
fun val pop() : Vec[A] val ?
Возвращает
- Vec[A] val ?
concat
Возвращает вектор со значениями из переданного итератора, добавленными в конец.
fun val concat( iter: Iterator[val->A] ref) : Vec[A] val
Параметры
- iter: Iterator[val->A] ref
Возвращает
- Vec[A] val
find
Находит первое вхождение nth элемента value с начала вектора, начиная с offset, проверяя последующие индексы и используя предоставленное predicate для сравнения. Возвращает индекс значения, или вызывает ошибку, если значение отсутствует.
По умолчанию поиск начинается с первого элемента вектора, возвращает первое найденное вхождение value и использует идентичность объектов для сравнения.
fun val find(
value: val->A,
offset: USize val = 0,
nth: USize val = 0,
predicate: {(A, A): Bool}[A] val = lambda)
: USize val ?
Параметры
Возвращает
- USize val ?
contains
Возвращает true, если вектор содержит value, иначе false.
fun val contains(
value: val->A,
predicate: {(A, A): Bool}[A] val = lambda)
: Bool val
Параметры
- value: val->A
- predicate: {(A, A): Bool}[A] val = lambda
Возвращает
- Bool val
slice
Возвращает вектор, являющийся копией части этого вектора. Диапазон не включает конечную границу и является насыщаемым.
fun val slice( from: USize val = 0, to: USize val = call, step: USize val = 1) : Vec[A] val
Параметры
Возвращает
- Vec[A] val
reverse
Возвращает вектор с элементами в обратном порядке.
fun val reverse() : Vec[A] val
Возвращает
- Vec[A] val
keys
Возвращает итератор по индексам в векторе.
fun val keys() : VecKeys[A] ref^
Возвращает
- VecKeys[A] ref^
values
Возвращает итератор по значениям в векторе.
fun val values() : VecValues[A] ref^
Возвращает
- VecValues[A] ref^
pairs
Возвращает итератор по парам (индекс, значение) в векторе.
fun val pairs() : VecPairs[A] ref^
Возвращает
- VecPairs[A] ref^
© 2016-2020, The Pony Developers
© 2014-2015, Causality Ltd.
Licensed under the BSD 2-Clause License.
https://stdlib.ponylang.io/collections-persistent-Vec