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 => 256 );
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
$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 => $int, # required
element => $obj, # default: undef
);
Insert an element at tick
moving the following elements.
insert_all
$vector->insert_all(
tick => $int, # required
other => $vector, # required
);
Inserts elements from other
vector at tick
moving the following elements.
fetch
$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
$vector->delete($tick);
Replace an element in the Vector with NULL and return it.
Returns: the element stored at tick
or undef if tick
is out of bounds.
excise
$vector->excise(
offset => $int, # required
length => $int, # required
);
Remove length
elements from the vector, starting at offset
. Move elements over to fill in the gap.
clone
$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
$vector->get_size();
Return the size of the Vector.
slice
$vector->slice(
offset => $int, # required
length => $int, # required
);
Return a new vector consisting of elements from a contiguous slice. If the specified range is out of bounds, return an vector 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.