NAME
Clownfish::Vector - Variable-sized array.
SYNOPSIS
my $vector = Clownfish::Vector->new;
$vector->store($tick, $value);
my $value = $vector->fetch($tick);
DESCRIPTION
CONSTRUCTORS
new
my $vector = Clownfish::Vector->new(
capacity => $capacity # default: 0
);
Return a new Vector.
capacity - Initial number of elements that the object will be able to hold before reallocation.
METHODS
push
$vector->push($element);
$vector->push(); # default: undef
Push an item onto the end of a Vector.
push_all
$vector->push_all($other);
Push all the elements of another Vector onto the end of this one.
pop
my $obj = $vector->pop();
Pop an item off of the end of a Vector.
Returns: the element or undef if the Vector is empty.
insert
$vector->insert(
tick => $tick # required
element => $element # default: undef
);
Insert an element at tick
moving the following elements.
insert_all
$vector->insert_all(
tick => $tick # required
other => $other # required
);
Inserts elements from other
vector at tick
moving the following elements.
fetch
my $obj = $vector->fetch($tick);
Fetch the element at tick
.
Returns: the element or undef if tick
is out of bounds.
store
$vector->store($tick, $elem)
Store an element at index tick
, possibly displacing an existing element.
delete
my $obj = $vector->delete($tick);
Replace an element in the Vector with undef and return it.
Returns: the element stored at tick
or undef if tick
is out of bounds.
excise
$vector->excise(
offset => $offset # required
length => $length # required
);
Remove length
elements from the Vector, starting at offset
. Move elements over to fill in the gap.
clone
my $arrayref = $vector->clone();
Clone the Vector but merely increment the refcounts of its elements rather than clone them.
sort
$vector->sort();
Sort the Vector. Sort order is guaranteed to be stable: the relative order of elements which compare as equal will not change.
resize
$vector->resize($size);
Set the size for the Vector. If the new size is larger than the current size, grow the object to accommodate undef elements; if smaller than the current size, decrement and discard truncated elements.
clear
$vector->clear();
Empty the Vector.
get_size
my $int = $vector->get_size();
Return the size of the Vector.
slice
my $arrayref = $vector->slice(
offset => $offset # required
length => $length # required
);
Return a slice of the Vector consisting of elements from a contiguous range. If the specified range is out of bounds, return a slice with fewer elements – potentially none.
offset - The index of the element to start at.
length - The maximum number of elements to slice.
INHERITANCE
Clownfish::Vector isa Clownfish::Obj.