Library
Module
Module type
Parameter
Class
Class type
Growable, mutable vector
Mutability is rw
(read-write) or ro
(read-only).
type 'a klist = unit -> [ `Nil | `Cons of 'a * 'a klist ]
type 'a printer = Format.formatter -> 'a -> unit
Create a new vector, using the given value as a filler.
val return : 'a -> ('a, 'mut) t
Singleton vector.
val make : int -> 'a -> ('a, 'mut) t
make n x
makes a vector of size n
, filled with x
.
val init : int -> (int -> 'a) -> ('a, 'mut) t
Init the vector with the given function and size.
Hint to the vector that it should have at least the given capacity.
Hint to the vector that it should have at least the given capacity. Just a hint, will not be enforced if the vector is empty and init
is not provided.
val is_empty : ('a, _) t -> bool
Is the vector empty?
val top : ('a, _) t -> 'a option
Top element, if present.
val top_exn : ('a, _) t -> 'a
Top element, if present.
Shrink to the given size (remove elements above this size). Does nothing if the parameter is bigger than the current size.
val member : eq:('a -> 'a -> bool) -> 'a -> ('a, _) t -> bool
Is the element a member of the vector?
Sort the vector, returning a copy of it that is sorted w.r.t the given ordering. The vector itself is unchanged.
Sort the array and remove duplicates, in place (e.g. modifying the vector itself).
val iter : ('a -> unit) -> ('a, _) t -> unit
Iterate on the vector's content.
val iteri : (int -> 'a -> unit) -> ('a, _) t -> unit
Iterate on the vector, with indexes.
val map_in_place : ('a -> 'a) -> ('a, _) t -> unit
Map elements of the vector in place
Filter elements from the vector. filter p v
leaves v
unchanged but returns a new vector that only contains elements of v
satisfying p
.
val fold : ('b -> 'a -> 'b) -> 'b -> ('a, _) t -> 'b
Fold on elements of the vector
val exists : ('a -> bool) -> ('a, _) t -> bool
Existential test (is there an element that satisfies the predicate?).
val for_all : ('a -> bool) -> ('a, _) t -> bool
Universal test (do all the elements satisfy the predicate?).
val find : ('a -> bool) -> ('a, _) t -> 'a option
Find an element that satisfies the predicate.
val find_exn : ('a -> bool) -> ('a, _) t -> 'a
Find an element that satisfies the predicate, or
val find_map : ('a -> 'b option) -> ('a, _) t -> 'b option
find_map f v
returns the first Some y = f x
for x
in v
, or None
if f x = None
for each x
in v
.
Map elements with a function, possibly filtering some of them out.
val filter_map_in_place : ('a -> 'a option) -> ('a, _) t -> unit
Filter-map elements of the vector in place
val get : ('a, _) t -> int -> 'a
Access element by its index, or
Remove the n-th
element of the vector. Does NOT preserve the order of the elements (might swap with the last element).
val rev_iter : ('a -> unit) -> ('a, _) t -> unit
rev_iter f a
is the same as iter f (rev a)
, only more efficient.
val size : ('a, _) t -> int
Number of elements in the vector.
val capacity : (_, _) t -> int
Number of elements the vector can contain without being resized.
Access the underlying shared array (do not modify!). unsafe_get_array v
is longer than size v
, but elements at higher index than size v
are undefined (do not access!).
val (--) : int -> int -> (int, 'mut) t
Range of integers, either ascending or descending (both included, therefore the result is never empty). Example: 1 -- 10
returns the vector [1;2;3;4;5;6;7;8;9;10]
.
val (--^) : int -> int -> (int, 'mut) t
Range of integers, either ascending or descending, but excluding right. Example: 1 --^ 10
returns the vector [1;2;3;4;5;6;7;8;9]
.
val of_array : 'a array -> ('a, 'mut) t
of_array a
returns a vector corresponding to the array a
. Operates in O(n)
time.
val of_list : 'a list -> ('a, 'mut) t
val to_array : ('a, _) t -> 'a array
to_array v
returns an array corresponding to the vector v
.
val to_list : ('a, _) t -> 'a list
Return a list with the elements contained in the vector.
to_seq_rev v
returns the sequence of elements of v
in reverse order, that is, the last elements of v
are iterated on first.
Vector as an array slice. By doing it we expose the internal array, so be careful!.
slice_seq v start len
is the sequence of elements from v.(start)
to v.(start+len-1)
.
val fill_empty_slots_with : ('a, _) t -> 'a -> unit
fill_empty_slots_with v x
puts x
in the slots of v
's underlying array that are not used (ie in the last capacity v - length v
slots). This is useful if you removed some elements from the vector and want to be sure they can be GC'd by erasing them from the vector.
val to_string :
?start:string ->
?stop:string ->
?sep:string ->
('a -> string) ->
('a, _) t ->
string
Print the vector in a string