ocaml-containers/3.11/containers/CCVector/index.html
2023-02-07 13:11:03 -05:00

17 lines
No EOL
67 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>CCVector (containers.CCVector)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 2.1.0"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> <a href="../index.html">containers</a> &#x00BB; CCVector</nav><header class="odoc-preamble"><h1>Module <code><span>CCVector</span></code></h1><p>Growable, mutable vector</p></header><div class="odoc-content"><div class="odoc-spec"><div class="spec type" id="type-ro" class="anchored"><a href="#type-ro" class="anchor"></a><code><span><span class="keyword">type</span> ro</span><span> = </span><span>[ </span></code><table><tr id="type-ro.RO" class="anchored"><td class="def constructor"><a href="#type-ro.RO" class="anchor"></a><code><span>| </span></code><code><span>`RO</span></code></td></tr></table><code><span> ]</span></code></div></div><div class="odoc-spec"><div class="spec type" id="type-rw" class="anchored"><a href="#type-rw" class="anchor"></a><code><span><span class="keyword">type</span> rw</span><span> = </span><span>[ </span></code><table><tr id="type-rw.RW" class="anchored"><td class="def constructor"><a href="#type-rw.RW" class="anchor"></a><code><span>| </span></code><code><span>`RW</span></code></td></tr></table><code><span> ]</span></code></div></div><p>Mutability is <code>rw</code> (read-write) or <code>ro</code> (read-only).</p><div class="odoc-spec"><div class="spec type" id="type-t" class="anchored"><a href="#type-t" class="anchor"></a><code><span><span class="keyword">type</span> <span>('a, 'mut) t</span></span></code></div><div class="spec-doc"><p>The type of a vector of elements of type <code>'a</code>, with a mutability flat <code>'mut</code>.</p></div></div><div class="odoc-spec"><div class="spec type" id="type-vector" class="anchored"><a href="#type-vector" class="anchor"></a><code><span><span class="keyword">type</span> <span>'a vector</span></span><span> = <span><span>( <span class="type-var">'a</span>, <a href="#type-rw">rw</a> )</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p>Type synonym: a <code>'a vector</code> is mutable.</p></div></div><div class="odoc-spec"><div class="spec type" id="type-ro_vector" class="anchored"><a href="#type-ro_vector" class="anchor"></a><code><span><span class="keyword">type</span> <span>'a ro_vector</span></span><span> = <span><span>( <span class="type-var">'a</span>, <a href="#type-ro">ro</a> )</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p>Alias for immutable vectors.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.15</li></ul></div></div><div class="odoc-spec"><div class="spec type" id="type-iter" class="anchored"><a href="#type-iter" class="anchor"></a><code><span><span class="keyword">type</span> <span>'a iter</span></span><span> = <span><span>( <span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> unit )</span> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Fast internal iterator.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 2.8</li></ul></div></div><div class="odoc-spec"><div class="spec type" id="type-gen" class="anchored"><a href="#type-gen" class="anchor"></a><code><span><span class="keyword">type</span> <span>'a gen</span></span><span> = <span>unit <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'a</span> option</span></span></code></div></div><div class="odoc-spec"><div class="spec type" id="type-equal" class="anchored"><a href="#type-equal" class="anchor"></a><code><span><span class="keyword">type</span> <span>'a equal</span></span><span> = <span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> bool</span></code></div></div><div class="odoc-spec"><div class="spec type" id="type-ord" class="anchored"><a href="#type-ord" class="anchor"></a><code><span><span class="keyword">type</span> <span>'a ord</span></span><span> = <span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> int</span></code></div></div><div class="odoc-spec"><div class="spec type" id="type-printer" class="anchored"><a href="#type-printer" class="anchor"></a><code><span><span class="keyword">type</span> <span>'a printer</span></span><span> = <span><span class="xref-unresolved">Stdlib</span>.Format.formatter <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-freeze" class="anchored"><a href="#val-freeze" class="anchor"></a><code><span><span class="keyword">val</span> freeze : <span><span><span>( <span class="type-var">'a</span>, <span class="type-var">_</span> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> <span><span>( <span class="type-var">'a</span>, <a href="#type-ro">ro</a> )</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p>Make an immutable vector (no copy! Don't use the old version).</p></div></div><div class="odoc-spec"><div class="spec value" id="val-freeze_copy" class="anchored"><a href="#val-freeze_copy" class="anchor"></a><code><span><span class="keyword">val</span> freeze_copy : <span><span><span>( <span class="type-var">'a</span>, <span class="type-var">_</span> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> <span><span>( <span class="type-var">'a</span>, <a href="#type-ro">ro</a> )</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p>Copy the vector into an immutable version.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-create" class="anchored"><a href="#val-create" class="anchor"></a><code><span><span class="keyword">val</span> create : <span>unit <span class="arrow">&#45;&gt;</span></span> <span><span>( <span class="type-var">'a</span>, <a href="#type-rw">rw</a> )</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p>Create a new, empty vector.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-create_with" class="anchored"><a href="#val-create_with" class="anchor"></a><code><span><span class="keyword">val</span> create_with : <span>?capacity:int <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> <span><span>( <span class="type-var">'a</span>, <a href="#type-rw">rw</a> )</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p>Create a new vector, the value is used to enforce the type the new vector.</p><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">capacity</span> <p>the size of the underlying array.</p></li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-return" class="anchored"><a href="#val-return" class="anchor"></a><code><span><span class="keyword">val</span> return : <span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> <span><span>( <span class="type-var">'a</span>, <span class="type-var">'mut</span> )</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p>Singleton vector.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.14</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-make" class="anchored"><a href="#val-make" class="anchor"></a><code><span><span class="keyword">val</span> make : <span>int <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> <span><span>( <span class="type-var">'a</span>, <span class="type-var">'mut</span> )</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>make n x</code> makes a vector of size <code>n</code>, filled with <code>x</code>.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-init" class="anchored"><a href="#val-init" class="anchor"></a><code><span><span class="keyword">val</span> init : <span>int <span class="arrow">&#45;&gt;</span></span> <span><span>( <span>int <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'a</span> )</span> <span class="arrow">&#45;&gt;</span></span> <span><span>( <span class="type-var">'a</span>, <span class="type-var">'mut</span> )</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p>Init the vector with the given function and size.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-clear" class="anchored"><a href="#val-clear" class="anchor"></a><code><span><span class="keyword">val</span> clear : <span><span><span>( <span class="type-var">'a</span>, <a href="#type-rw">rw</a> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Clear the content of the vector. This ensures that <code>length v = 0</code> but the underlying array is kept, and possibly references to former elements, which are therefore not garbage collectible.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-clear_and_reset" class="anchored"><a href="#val-clear_and_reset" class="anchor"></a><code><span><span class="keyword">val</span> clear_and_reset : <span><span><span>( <span class="type-var">'a</span>, <a href="#type-rw">rw</a> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Clear the content of the vector, and deallocate the underlying array, removing references to all the elements. The elements can be collected.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 2.8</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-ensure_with" class="anchored"><a href="#val-ensure_with" class="anchor"></a><code><span><span class="keyword">val</span> ensure_with : <span>init:<span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> <span><span><span>( <span class="type-var">'a</span>, <a href="#type-rw">rw</a> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> <span>int <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Hint to the vector that it should have at least the given capacity. This does not affect <code>length v</code>.</p><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">init</span> <p>if <code>capacity v = 0</code>, used to enforce the type of the vector (see <code>create_with</code>).</p></li></ul><ul class="at-tags"><li class="raises"><span class="at-tag">raises</span> <span class="value">Invalid_arg</span> <p>if the size is not suitable (negative, or too big for OCaml arrays)</p></li></ul><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.14</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-ensure" class="anchored"><a href="#val-ensure" class="anchor"></a><code><span><span class="keyword">val</span> ensure : <span><span><span>( <span class="type-var">'a</span>, <a href="#type-rw">rw</a> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> <span>int <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>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 <code>init</code> is not provided.</p><ul class="at-tags"><li class="raises"><span class="at-tag">raises</span> <span class="value">Invalid_arg</span> <p>if the size is not suitable (negative, or too big for OCaml arrays)</p></li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-is_empty" class="anchored"><a href="#val-is_empty" class="anchor"></a><code><span><span class="keyword">val</span> is_empty : <span><span><span>( <span class="type-var">'a</span>, <span class="type-var">_</span> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> bool</span></code></div><div class="spec-doc"><p>Is the vector empty?</p></div></div><div class="odoc-spec"><div class="spec value" id="val-push" class="anchored"><a href="#val-push" class="anchor"></a><code><span><span class="keyword">val</span> push : <span><span><span>( <span class="type-var">'a</span>, <a href="#type-rw">rw</a> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Add an element at the end of the vector.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-resize_with" class="anchored"><a href="#val-resize_with" class="anchor"></a><code><span><span class="keyword">val</span> resize_with : <span><span><span>( <span class="type-var">'a</span>, <a href="#type-rw">rw</a> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> <span><span>( <span>int <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'a</span> )</span> <span class="arrow">&#45;&gt;</span></span> <span>int <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p><code>resize_with vec f size</code> resizes vector <code>vec</code> up to <code>size</code>, fills vector with calls to <code>f</code> on indexes <code>[vec.size-1.. size - 1]</code>. The contents and size of vec are untouched if <code>size</code> is inferior or equal to <code>length vec</code>.</p><ul class="at-tags"><li class="raises"><span class="at-tag">raises</span> <span class="value">Invalid_argument</span> <p>if the size is too big</p></li></ul><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 3.7</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-resize_with_init" class="anchored"><a href="#val-resize_with_init" class="anchor"></a><code><span><span class="keyword">val</span> resize_with_init : <span><span><span>( <span class="type-var">'a</span>, <a href="#type-rw">rw</a> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> <span>init:<span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> <span>int <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p><code>resize_with_init vec init size</code> resizes vector <code>vec</code> up to <code>size</code>, fills vector with calls to <code>init</code> on indexes <code>[length vec -1.. size - 1]</code>. The contents and size of vec are untouched if <code>size</code> is inferior or equal to <code>length vec</code>.</p><ul class="at-tags"><li class="raises"><span class="at-tag">raises</span> <span class="value">Invalid_argument</span> <p>if the size is too big</p></li></ul><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 3.7</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-append" class="anchored"><a href="#val-append" class="anchor"></a><code><span><span class="keyword">val</span> append : <span><span><span>( <span class="type-var">'a</span>, <a href="#type-rw">rw</a> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> <span><span><span>( <span class="type-var">'a</span>, <span class="type-var">_</span> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p><code>append a b</code> adds all elements of b to a.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-append_array" class="anchored"><a href="#val-append_array" class="anchor"></a><code><span><span class="keyword">val</span> append_array : <span><span><span>( <span class="type-var">'a</span>, <a href="#type-rw">rw</a> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> <span><span><span class="type-var">'a</span> array</span> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Like <a href="#val-append"><code>append</code></a>, with an array.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-append_iter" class="anchored"><a href="#val-append_iter" class="anchor"></a><code><span><span class="keyword">val</span> append_iter : <span><span><span>( <span class="type-var">'a</span>, <a href="#type-rw">rw</a> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> <span><span><span class="type-var">'a</span> <a href="#type-iter">iter</a></span> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Append content of iterator.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 2.8</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-append_seq" class="anchored"><a href="#val-append_seq" class="anchor"></a><code><span><span class="keyword">val</span> append_seq : <span><span><span>( <span class="type-var">'a</span>, <a href="#type-rw">rw</a> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> <span><span><span class="type-var">'a</span> <span class="xref-unresolved">Stdlib</span>.Seq.t</span> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Append content of iterator. Renamed from <code>append_std_seq</code> since 3.0.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 3.0</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-append_list" class="anchored"><a href="#val-append_list" class="anchor"></a><code><span><span class="keyword">val</span> append_list : <span><span><span>( <span class="type-var">'a</span>, <a href="#type-rw">rw</a> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> <span><span><span class="type-var">'a</span> list</span> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Append content of list.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.14</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-append_gen" class="anchored"><a href="#val-append_gen" class="anchor"></a><code><span><span class="keyword">val</span> append_gen : <span><span><span>( <span class="type-var">'a</span>, <a href="#type-rw">rw</a> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> <span><span><span class="type-var">'a</span> <a href="#type-gen">gen</a></span> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Append content of generator.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.20</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-equal" class="anchored"><a href="#val-equal" class="anchor"></a><code><span><span class="keyword">val</span> equal : <span><span><span class="type-var">'a</span> <a href="#type-equal">equal</a></span> <span class="arrow">&#45;&gt;</span></span> <span><span><span>( <span class="type-var">'a</span>, <span class="type-var">_</span> )</span> <a href="#type-t">t</a></span> <a href="#type-equal">equal</a></span></span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-compare" class="anchored"><a href="#val-compare" class="anchor"></a><code><span><span class="keyword">val</span> compare : <span><span><span class="type-var">'a</span> <a href="#type-ord">ord</a></span> <span class="arrow">&#45;&gt;</span></span> <span><span><span>( <span class="type-var">'a</span>, <span class="type-var">_</span> )</span> <a href="#type-t">t</a></span> <a href="#type-ord">ord</a></span></span></code></div><div class="spec-doc"><p>Total ordering on vectors. Lexicographic comparison.</p></div></div><div class="odoc-spec"><div class="spec exception" id="exception-Empty" class="anchored"><a href="#exception-Empty" class="anchor"></a><code><span><span class="keyword">exception</span> </span><span><span class="exception">Empty</span></span></code></div><div class="spec-doc"><p>Raised on empty stack.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-pop" class="anchored"><a href="#val-pop" class="anchor"></a><code><span><span class="keyword">val</span> pop : <span><span><span>( <span class="type-var">'a</span>, <a href="#type-rw">rw</a> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'a</span> option</span></span></code></div><div class="spec-doc"><p>Remove last element, or <code>None</code>.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-pop_exn" class="anchored"><a href="#val-pop_exn" class="anchor"></a><code><span><span class="keyword">val</span> pop_exn : <span><span><span>( <span class="type-var">'a</span>, <a href="#type-rw">rw</a> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'a</span></span></code></div><div class="spec-doc"><p>Remove last element, or raise an exception if empty.</p><ul class="at-tags"><li class="raises"><span class="at-tag">raises</span> <span class="value">Empty</span> <p>on an empty vector.</p></li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-top" class="anchored"><a href="#val-top" class="anchor"></a><code><span><span class="keyword">val</span> top : <span><span><span>( <span class="type-var">'a</span>, <span class="type-var">_</span> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'a</span> option</span></span></code></div><div class="spec-doc"><p>Top element, if present.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.6</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-top_exn" class="anchored"><a href="#val-top_exn" class="anchor"></a><code><span><span class="keyword">val</span> top_exn : <span><span><span>( <span class="type-var">'a</span>, <span class="type-var">_</span> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'a</span></span></code></div><div class="spec-doc"><p>Top element, if present.</p><ul class="at-tags"><li class="raises"><span class="at-tag">raises</span> <span class="value">Empty</span> <p>on an empty vector.</p></li></ul><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.6</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-copy" class="anchored"><a href="#val-copy" class="anchor"></a><code><span><span class="keyword">val</span> copy : <span><span><span>( <span class="type-var">'a</span>, <span class="type-var">_</span> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> <span><span>( <span class="type-var">'a</span>, <span class="type-var">'mut</span> )</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p>Shallow copy (may give an immutable or mutable vector).</p></div></div><div class="odoc-spec"><div class="spec value" id="val-truncate" class="anchored"><a href="#val-truncate" class="anchor"></a><code><span><span class="keyword">val</span> truncate : <span><span><span>( <span class="type-var">'a</span>, <a href="#type-rw">rw</a> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> <span>int <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Truncate to the given size (remove elements above this size). Does nothing if the parameter is bigger than the current size. <code>truncate</code> was called <code>shrink</code>.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 3.0</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-shrink_to_fit" class="anchored"><a href="#val-shrink_to_fit" class="anchor"></a><code><span><span class="keyword">val</span> shrink_to_fit : <span><span><span>( <span class="type-var">'a</span>, <span class="type-var">_</span> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Shrink internal array to fit the size of the vector</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 2.8</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-member" class="anchored"><a href="#val-member" class="anchor"></a><code><span><span class="keyword">val</span> member : <span>eq:<span>( <span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> bool )</span> <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> <span><span><span>( <span class="type-var">'a</span>, <span class="type-var">_</span> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> bool</span></code></div><div class="spec-doc"><p>Is the element a member of the vector?</p></div></div><div class="odoc-spec"><div class="spec value" id="val-sort" class="anchored"><a href="#val-sort" class="anchor"></a><code><span><span class="keyword">val</span> sort : <span><span>( <span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> int )</span> <span class="arrow">&#45;&gt;</span></span> <span><span><span>( <span class="type-var">'a</span>, <span class="type-var">_</span> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> <span><span>( <span class="type-var">'a</span>, <span class="type-var">'mut</span> )</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p>Sort the vector, returning a copy of it that is sorted w.r.t the given ordering. The vector itself is unchanged. The underlying array of the new vector can be smaller than the original one.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-sort'" class="anchored"><a href="#val-sort'" class="anchor"></a><code><span><span class="keyword">val</span> sort' : <span><span>( <span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> int )</span> <span class="arrow">&#45;&gt;</span></span> <span><span><span>( <span class="type-var">'a</span>, <a href="#type-rw">rw</a> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Sort the vector in place (modifying it). This function change the size of the underlying array.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-uniq_sort" class="anchored"><a href="#val-uniq_sort" class="anchor"></a><code><span><span class="keyword">val</span> uniq_sort : <span><span>( <span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> int )</span> <span class="arrow">&#45;&gt;</span></span> <span><span><span>( <span class="type-var">'a</span>, <a href="#type-rw">rw</a> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Sort the array and remove duplicates, in place (e.g. modifying the vector itself).</p></div></div><div class="odoc-spec"><div class="spec value" id="val-iter" class="anchored"><a href="#val-iter" class="anchor"></a><code><span><span class="keyword">val</span> iter : <span><span>( <span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> unit )</span> <span class="arrow">&#45;&gt;</span></span> <span><span><span>( <span class="type-var">'a</span>, <span class="type-var">_</span> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Iterate on the vector's content.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-iteri" class="anchored"><a href="#val-iteri" class="anchor"></a><code><span><span class="keyword">val</span> iteri : <span><span>( <span>int <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> unit )</span> <span class="arrow">&#45;&gt;</span></span> <span><span><span>( <span class="type-var">'a</span>, <span class="type-var">_</span> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Iterate on the vector, with indexes.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-map" class="anchored"><a href="#val-map" class="anchor"></a><code><span><span class="keyword">val</span> map : <span><span>( <span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'b</span> )</span> <span class="arrow">&#45;&gt;</span></span> <span><span><span>( <span class="type-var">'a</span>, <span class="type-var">_</span> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> <span><span>( <span class="type-var">'b</span>, <span class="type-var">'mut</span> )</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p>Map elements of the vector, yielding a new vector.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-mapi" class="anchored"><a href="#val-mapi" class="anchor"></a><code><span><span class="keyword">val</span> mapi : <span><span>( <span>int <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'b</span> )</span> <span class="arrow">&#45;&gt;</span></span> <span><span><span>( <span class="type-var">'a</span>, <span class="type-var">_</span> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> <span><span>( <span class="type-var">'b</span>, <span class="type-var">'mut</span> )</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>map f v</code> is just like <a href="#val-map"><code>map</code></a>, but it also passes in the index of each element as the first argument to the function <code>f</code>.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 2.8</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-map_in_place" class="anchored"><a href="#val-map_in_place" class="anchor"></a><code><span><span class="keyword">val</span> map_in_place : <span><span>( <span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'a</span> )</span> <span class="arrow">&#45;&gt;</span></span> <span><span><span>( <span class="type-var">'a</span>, <span class="type-var">_</span> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Map elements of the vector in place</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 2.3</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-filter" class="anchored"><a href="#val-filter" class="anchor"></a><code><span><span class="keyword">val</span> filter : <span><span>( <span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> bool )</span> <span class="arrow">&#45;&gt;</span></span> <span><span><span>( <span class="type-var">'a</span>, <span class="type-var">_</span> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> <span><span>( <span class="type-var">'a</span>, <span class="type-var">'mut</span> )</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p>Filter elements from the vector. <code>filter p v</code> leaves <code>v</code> unchanged but returns a new vector that only contains elements of <code>v</code> satisfying <code>p</code>.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-filter_in_place" class="anchored"><a href="#val-filter_in_place" class="anchor"></a><code><span><span class="keyword">val</span> filter_in_place : <span><span>( <span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> bool )</span> <span class="arrow">&#45;&gt;</span></span> <span><span><span>( <span class="type-var">'a</span>, <a href="#type-rw">rw</a> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Filter elements from the vector in place.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 3.0</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-fold" class="anchored"><a href="#val-fold" class="anchor"></a><code><span><span class="keyword">val</span> fold : <span><span>( <span><span class="type-var">'b</span> <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'b</span> )</span> <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'b</span> <span class="arrow">&#45;&gt;</span></span> <span><span><span>( <span class="type-var">'a</span>, <span class="type-var">_</span> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'b</span></span></code></div><div class="spec-doc"><p>Fold on elements of the vector</p></div></div><div class="odoc-spec"><div class="spec value" id="val-exists" class="anchored"><a href="#val-exists" class="anchor"></a><code><span><span class="keyword">val</span> exists : <span><span>( <span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> bool )</span> <span class="arrow">&#45;&gt;</span></span> <span><span><span>( <span class="type-var">'a</span>, <span class="type-var">_</span> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> bool</span></code></div><div class="spec-doc"><p>Existential test (is there an element that satisfies the predicate?).</p></div></div><div class="odoc-spec"><div class="spec value" id="val-for_all" class="anchored"><a href="#val-for_all" class="anchor"></a><code><span><span class="keyword">val</span> for_all : <span><span>( <span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> bool )</span> <span class="arrow">&#45;&gt;</span></span> <span><span><span>( <span class="type-var">'a</span>, <span class="type-var">_</span> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> bool</span></code></div><div class="spec-doc"><p>Universal test (do all the elements satisfy the predicate?).</p></div></div><div class="odoc-spec"><div class="spec value" id="val-find" class="anchored"><a href="#val-find" class="anchor"></a><code><span><span class="keyword">val</span> find : <span><span>( <span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> bool )</span> <span class="arrow">&#45;&gt;</span></span> <span><span><span>( <span class="type-var">'a</span>, <span class="type-var">_</span> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'a</span> option</span></span></code></div><div class="spec-doc"><p>Find an element that satisfies the predicate.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-find_exn" class="anchored"><a href="#val-find_exn" class="anchor"></a><code><span><span class="keyword">val</span> find_exn : <span><span>( <span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> bool )</span> <span class="arrow">&#45;&gt;</span></span> <span><span><span>( <span class="type-var">'a</span>, <span class="type-var">_</span> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'a</span></span></code></div><div class="spec-doc"><p>Find an element that satisfies the predicate, or</p><ul class="at-tags"><li class="raises"><span class="at-tag">raises</span> <span class="value">Not_found</span> <p>if no element does.</p></li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-find_map" class="anchored"><a href="#val-find_map" class="anchor"></a><code><span><span class="keyword">val</span> find_map : <span><span>( <span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'b</span> option</span> )</span> <span class="arrow">&#45;&gt;</span></span> <span><span><span>( <span class="type-var">'a</span>, <span class="type-var">_</span> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'b</span> option</span></span></code></div><div class="spec-doc"><p><code>find_map f v</code> returns the first <code>Some y = f x</code> for <code>x</code> in <code>v</code>, or <code>None</code> if <code>f x = None</code> for each <code>x</code> in <code>v</code>.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.14</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-filter_map" class="anchored"><a href="#val-filter_map" class="anchor"></a><code><span><span class="keyword">val</span> filter_map : <span><span>( <span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'b</span> option</span> )</span> <span class="arrow">&#45;&gt;</span></span> <span><span><span>( <span class="type-var">'a</span>, <span class="type-var">_</span> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> <span><span>( <span class="type-var">'b</span>, <span class="type-var">'mut</span> )</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p>Map elements with a function, possibly filtering some of them out.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-filter_map_in_place" class="anchored"><a href="#val-filter_map_in_place" class="anchor"></a><code><span><span class="keyword">val</span> filter_map_in_place : <span><span>( <span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'a</span> option</span> )</span> <span class="arrow">&#45;&gt;</span></span> <span><span><span>( <span class="type-var">'a</span>, <span class="type-var">_</span> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Filter-map elements of the vector in place</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 2.3</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-flat_map" class="anchored"><a href="#val-flat_map" class="anchor"></a><code><span><span class="keyword">val</span> flat_map : <span><span>( <span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> <span><span>( <span class="type-var">'b</span>, <span class="type-var">_</span> )</span> <a href="#type-t">t</a></span> )</span> <span class="arrow">&#45;&gt;</span></span> <span><span><span>( <span class="type-var">'a</span>, <span class="type-var">_</span> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> <span><span>( <span class="type-var">'b</span>, <span class="type-var">'mut</span> )</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p>Map each element to a sub-vector.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-flat_map_seq" class="anchored"><a href="#val-flat_map_seq" class="anchor"></a><code><span><span class="keyword">val</span> flat_map_seq : <span><span>( <span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'b</span> <span class="xref-unresolved">Stdlib</span>.Seq.t</span> )</span> <span class="arrow">&#45;&gt;</span></span> <span><span><span>( <span class="type-var">'a</span>, <span class="type-var">_</span> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> <span><span>( <span class="type-var">'b</span>, <span class="type-var">'mut</span> )</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p>Like <a href="#val-flat_map"><code>flat_map</code></a>, but using <code>Seq</code> for intermediate collections. Renamed from <code>flat_map_std_seq</code> since 3.0.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 3.0</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-flat_map_list" class="anchored"><a href="#val-flat_map_list" class="anchor"></a><code><span><span class="keyword">val</span> flat_map_list : <span><span>( <span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'b</span> list</span> )</span> <span class="arrow">&#45;&gt;</span></span> <span><span><span>( <span class="type-var">'a</span>, <span class="type-var">_</span> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> <span><span>( <span class="type-var">'b</span>, <span class="type-var">'mut</span> )</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p>Like <a href="#val-flat_map"><code>flat_map</code></a>, but using <code>list</code> for intermediate collections.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.14</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-monoid_product" class="anchored"><a href="#val-monoid_product" class="anchor"></a><code><span><span class="keyword">val</span> monoid_product :
<span><span>( <span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'b</span> <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'c</span> )</span> <span class="arrow">&#45;&gt;</span></span>
<span><span><span>( <span class="type-var">'a</span>, <span class="type-var">_</span> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span>
<span><span><span>( <span class="type-var">'b</span>, <span class="type-var">_</span> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span>
<span><span>( <span class="type-var">'c</span>, <span class="type-var">_</span> )</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p>All combinaisons of tuples from the two vectors are passed to the function.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 2.8</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-(&gt;&gt;=)" class="anchored"><a href="#val-(&gt;&gt;=)" class="anchor"></a><code><span><span class="keyword">val</span> (&gt;&gt;=) : <span><span><span>( <span class="type-var">'a</span>, <span class="type-var">_</span> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> <span><span>( <span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> <span><span>( <span class="type-var">'b</span>, <span class="type-var">_</span> )</span> <a href="#type-t">t</a></span> )</span> <span class="arrow">&#45;&gt;</span></span> <span><span>( <span class="type-var">'b</span>, <span class="type-var">'mut</span> )</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p>Infix version of <a href="#val-flat_map"><code>flat_map</code></a>.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-(&gt;|=)" class="anchored"><a href="#val-(&gt;|=)" class="anchor"></a><code><span><span class="keyword">val</span> (&gt;|=) : <span><span><span>( <span class="type-var">'a</span>, <span class="type-var">_</span> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> <span><span>( <span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'b</span> )</span> <span class="arrow">&#45;&gt;</span></span> <span><span>( <span class="type-var">'b</span>, <span class="type-var">'mut</span> )</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p>Infix version of <a href="#val-map"><code>map</code></a>.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-get" class="anchored"><a href="#val-get" class="anchor"></a><code><span><span class="keyword">val</span> get : <span><span><span>( <span class="type-var">'a</span>, <span class="type-var">_</span> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> <span>int <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'a</span></span></code></div><div class="spec-doc"><p>Access element by its index, or</p><ul class="at-tags"><li class="raises"><span class="at-tag">raises</span> <span class="value">Invalid_argument</span> <p>if bad index.</p></li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-set" class="anchored"><a href="#val-set" class="anchor"></a><code><span><span class="keyword">val</span> set : <span><span><span>( <span class="type-var">'a</span>, <a href="#type-rw">rw</a> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> <span>int <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Modify element at given index, or</p><ul class="at-tags"><li class="raises"><span class="at-tag">raises</span> <span class="value">Invalid_argument</span> <p>if the index is invalid (i.e. not in <code>[0.. length v-1]</code>).</p></li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-remove_and_shift" class="anchored"><a href="#val-remove_and_shift" class="anchor"></a><code><span><span class="keyword">val</span> remove_and_shift : <span><span><span>( <span class="type-var">'a</span>, <a href="#type-rw">rw</a> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> <span>int <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p><code>remove_and_shift v i</code> remove the <code>i-th</code> element from <code>v</code>. Move elements that are after the <code>i-th</code> in <code>v</code>, in linear time. Preserve the order of the elements in <code>v</code>. See <a href="#val-remove_unordered"><code>remove_unordered</code></a> for constant time removal function that doesn't preserve the order of elements.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 3.0</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-remove_unordered" class="anchored"><a href="#val-remove_unordered" class="anchor"></a><code><span><span class="keyword">val</span> remove_unordered : <span><span><span>( <span class="type-var">'a</span>, <a href="#type-rw">rw</a> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> <span>int <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p><code>remove_unordered v i</code> remove the <code>i-th</code> element from <code>v</code>. Does <b>NOT</b> preserve the order of the elements in <code>v</code> (might swap with the last element). See <a href="#val-remove_and_shift"><code>remove_and_shift</code></a> if you want to keep the ordering.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-insert" class="anchored"><a href="#val-insert" class="anchor"></a><code><span><span class="keyword">val</span> insert : <span><span><span>( <span class="type-var">'a</span>, <a href="#type-rw">rw</a> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> <span>int <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p><code>insert v i x</code> insert the given element at index i. Elements at location <code>i</code> and later are first shifted over in linear time before inserting <code>x</code>. Preserve the order of elements in <code>v</code>.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 3.7</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-rev" class="anchored"><a href="#val-rev" class="anchor"></a><code><span><span class="keyword">val</span> rev : <span><span><span>( <span class="type-var">'a</span>, <span class="type-var">_</span> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> <span><span>( <span class="type-var">'a</span>, <span class="type-var">'mut</span> )</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p>Reverse the vector.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-rev_in_place" class="anchored"><a href="#val-rev_in_place" class="anchor"></a><code><span><span class="keyword">val</span> rev_in_place : <span><span><span>( <span class="type-var">'a</span>, <a href="#type-rw">rw</a> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Reverse the vector in place.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.14</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-rev_iter" class="anchored"><a href="#val-rev_iter" class="anchor"></a><code><span><span class="keyword">val</span> rev_iter : <span><span>( <span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> unit )</span> <span class="arrow">&#45;&gt;</span></span> <span><span><span>( <span class="type-var">'a</span>, <span class="type-var">_</span> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p><code>rev_iter f a</code> is the same as <code>iter f (rev a)</code>, only more efficient.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.14</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-size" class="anchored"><a href="#val-size" class="anchor"></a><code><span><span class="keyword">val</span> size : <span><span><span>( <span class="type-var">'a</span>, <span class="type-var">_</span> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> int</span></code></div><div class="spec-doc"><p>Number of elements in the vector.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-length" class="anchored"><a href="#val-length" class="anchor"></a><code><span><span class="keyword">val</span> length : <span><span><span>( <span class="type-var">_</span>, <span class="type-var">_</span> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> int</span></code></div><div class="spec-doc"><p>Synonym for <a href="#val-size"><code>size</code></a>.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-capacity" class="anchored"><a href="#val-capacity" class="anchor"></a><code><span><span class="keyword">val</span> capacity : <span><span><span>( <span class="type-var">_</span>, <span class="type-var">_</span> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> int</span></code></div><div class="spec-doc"><p>Number of elements the vector can contain without being resized.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-unsafe_get_array" class="anchored"><a href="#val-unsafe_get_array" class="anchor"></a><code><span><span class="keyword">val</span> unsafe_get_array : <span><span><span>( <span class="type-var">'a</span>, <a href="#type-rw">rw</a> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'a</span> array</span></span></code></div><div class="spec-doc"><p>Access the underlying <b>shared</b> array (do not modify!). <code>unsafe_get_array v</code> is longer than <code>size v</code>, but elements at higher index than <code>size v</code> are undefined (do not access!).</p></div></div><div class="odoc-spec"><div class="spec value" id="val-(--)" class="anchored"><a href="#val-(--)" class="anchor"></a><code><span><span class="keyword">val</span> (--) : <span>int <span class="arrow">&#45;&gt;</span></span> <span>int <span class="arrow">&#45;&gt;</span></span> <span><span>( int, <span class="type-var">'mut</span> )</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p>Range of integers, either ascending or descending (both included, therefore the result is never empty). Example: <code>1 -- 10</code> returns the vector <code>[1;2;3;4;5;6;7;8;9;10]</code>.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-(--^)" class="anchored"><a href="#val-(--^)" class="anchor"></a><code><span><span class="keyword">val</span> (--^) : <span>int <span class="arrow">&#45;&gt;</span></span> <span>int <span class="arrow">&#45;&gt;</span></span> <span><span>( int, <span class="type-var">'mut</span> )</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p>Range of integers, either ascending or descending, but excluding right. Example: <code>1 --^ 10</code> returns the vector <code>[1;2;3;4;5;6;7;8;9]</code>.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.17</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-of_array" class="anchored"><a href="#val-of_array" class="anchor"></a><code><span><span class="keyword">val</span> of_array : <span><span><span class="type-var">'a</span> array</span> <span class="arrow">&#45;&gt;</span></span> <span><span>( <span class="type-var">'a</span>, <span class="type-var">'mut</span> )</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>of_array a</code> returns a vector corresponding to the array <code>a</code>. Operates in <code>O(n)</code> time.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-of_list" class="anchored"><a href="#val-of_list" class="anchor"></a><code><span><span class="keyword">val</span> of_list : <span><span><span class="type-var">'a</span> list</span> <span class="arrow">&#45;&gt;</span></span> <span><span>( <span class="type-var">'a</span>, <span class="type-var">'mut</span> )</span> <a href="#type-t">t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-to_array" class="anchored"><a href="#val-to_array" class="anchor"></a><code><span><span class="keyword">val</span> to_array : <span><span><span>( <span class="type-var">'a</span>, <span class="type-var">_</span> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'a</span> array</span></span></code></div><div class="spec-doc"><p><code>to_array v</code> returns an array corresponding to the vector <code>v</code>.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-to_list" class="anchored"><a href="#val-to_list" class="anchor"></a><code><span><span class="keyword">val</span> to_list : <span><span><span>( <span class="type-var">'a</span>, <span class="type-var">_</span> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'a</span> list</span></span></code></div><div class="spec-doc"><p>Return a list with the elements contained in the vector.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-of_iter" class="anchored"><a href="#val-of_iter" class="anchor"></a><code><span><span class="keyword">val</span> of_iter : <span>?init:<span><span>( <span class="type-var">'a</span>, <a href="#type-rw">rw</a> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> <span><span><span class="type-var">'a</span> <a href="#type-iter">iter</a></span> <span class="arrow">&#45;&gt;</span></span> <span><span>( <span class="type-var">'a</span>, <a href="#type-rw">rw</a> )</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p>Convert an Iterator to a vector.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 2.8.1</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-of_seq" class="anchored"><a href="#val-of_seq" class="anchor"></a><code><span><span class="keyword">val</span> of_seq : <span>?init:<span><span>( <span class="type-var">'a</span>, <a href="#type-rw">rw</a> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> <span><span><span class="type-var">'a</span> <span class="xref-unresolved">Stdlib</span>.Seq.t</span> <span class="arrow">&#45;&gt;</span></span> <span><span>( <span class="type-var">'a</span>, <a href="#type-rw">rw</a> )</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p>Convert an Iterator to a vector. Renamed from <code>of_std_seq</code> since 3.0.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 3.0</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-to_iter" class="anchored"><a href="#val-to_iter" class="anchor"></a><code><span><span class="keyword">val</span> to_iter : <span><span><span>( <span class="type-var">'a</span>, <span class="type-var">_</span> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'a</span> <a href="#type-iter">iter</a></span></span></code></div><div class="spec-doc"><p>Return a <code>iter</code> with the elements contained in the vector.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 2.8</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-to_iter_rev" class="anchored"><a href="#val-to_iter_rev" class="anchor"></a><code><span><span class="keyword">val</span> to_iter_rev : <span><span><span>( <span class="type-var">'a</span>, <span class="type-var">_</span> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'a</span> <a href="#type-iter">iter</a></span></span></code></div><div class="spec-doc"><p><code>to_iter_rev v</code> returns the sequence of elements of <code>v</code> in reverse order, that is, the last elements of <code>v</code> are iterated on first.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 2.8</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-to_seq" class="anchored"><a href="#val-to_seq" class="anchor"></a><code><span><span class="keyword">val</span> to_seq : <span><span><span>( <span class="type-var">'a</span>, <span class="type-var">_</span> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'a</span> <span class="xref-unresolved">Stdlib</span>.Seq.t</span></span></code></div><div class="spec-doc"><p>Return an iterator with the elements contained in the vector. Renamed from <code>to_std_seq</code> since 3.0.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 3.0</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-to_seq_rev" class="anchored"><a href="#val-to_seq_rev" class="anchor"></a><code><span><span class="keyword">val</span> to_seq_rev : <span><span><span>( <span class="type-var">'a</span>, <span class="type-var">_</span> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'a</span> <span class="xref-unresolved">Stdlib</span>.Seq.t</span></span></code></div><div class="spec-doc"><p><code>to_seq v</code> returns the sequence of elements of <code>v</code> in reverse order, that is, the last elements of <code>v</code> are iterated on first. Renamed from <code>to_std_seq</code> since 3.0.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 3.0</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-slice" class="anchored"><a href="#val-slice" class="anchor"></a><code><span><span class="keyword">val</span> slice : <span><span><span>( <span class="type-var">'a</span>, <a href="#type-rw">rw</a> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'a</span> array</span> * int * int</span></code></div><div class="spec-doc"><p>Vector as an array slice. By doing it we expose the internal array, so be careful!.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-slice_iter" class="anchored"><a href="#val-slice_iter" class="anchor"></a><code><span><span class="keyword">val</span> slice_iter : <span><span><span>( <span class="type-var">'a</span>, <span class="type-var">_</span> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> <span>int <span class="arrow">&#45;&gt;</span></span> <span>int <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'a</span> <a href="#type-iter">iter</a></span></span></code></div><div class="spec-doc"><p><code>slice_iter v start len</code> is the sequence of elements from <code>v.(start)</code> to <code>v.(start+len-1)</code>.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 3.0</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-of_gen" class="anchored"><a href="#val-of_gen" class="anchor"></a><code><span><span class="keyword">val</span> of_gen : <span>?init:<span><span>( <span class="type-var">'a</span>, <a href="#type-rw">rw</a> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> <span><span><span class="type-var">'a</span> <a href="#type-gen">gen</a></span> <span class="arrow">&#45;&gt;</span></span> <span><span>( <span class="type-var">'a</span>, <a href="#type-rw">rw</a> )</span> <a href="#type-t">t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-to_gen" class="anchored"><a href="#val-to_gen" class="anchor"></a><code><span><span class="keyword">val</span> to_gen : <span><span><span>( <span class="type-var">'a</span>, <span class="type-var">_</span> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'a</span> <a href="#type-gen">gen</a></span></span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-to_string" class="anchored"><a href="#val-to_string" class="anchor"></a><code><span><span class="keyword">val</span> to_string :
<span>?start:string <span class="arrow">&#45;&gt;</span></span>
<span>?stop:string <span class="arrow">&#45;&gt;</span></span>
<span>?sep:string <span class="arrow">&#45;&gt;</span></span>
<span><span>( <span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> string )</span> <span class="arrow">&#45;&gt;</span></span>
<span><span><span>( <span class="type-var">'a</span>, <span class="type-var">_</span> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span>
string</span></code></div><div class="spec-doc"><p>Print the vector in a string</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 2.7</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-pp" class="anchored"><a href="#val-pp" class="anchor"></a><code><span><span class="keyword">val</span> pp :
<span>?pp_start:<span>unit <a href="#type-printer">printer</a></span> <span class="arrow">&#45;&gt;</span></span>
<span>?pp_stop:<span>unit <a href="#type-printer">printer</a></span> <span class="arrow">&#45;&gt;</span></span>
<span>?pp_sep:<span>unit <a href="#type-printer">printer</a></span> <span class="arrow">&#45;&gt;</span></span>
<span><span><span class="type-var">'a</span> <a href="#type-printer">printer</a></span> <span class="arrow">&#45;&gt;</span></span>
<span><span><span>( <span class="type-var">'a</span>, <span class="type-var">_</span> )</span> <a href="#type-t">t</a></span> <a href="#type-printer">printer</a></span></span></code></div><div class="spec-doc"><p><code>pp ~pp_start ~pp_stop ~pp_sep pp_item ppf v</code> formats the vector <code>v</code> on <code>ppf</code>. Each element is formatted with <code>pp_item</code>, <code>pp_start</code> is called at the beginning, <code>pp_stop</code> is called at the end, <code>pp_sep</code> is called between each elements. By defaults <code>pp_start</code> and <code>pp_stop</code> does nothing and <code>pp_sep</code> defaults to (fun out -&gt; Format.fprintf out &quot;,@ &quot;).</p></div></div><div class="odoc-spec"><div class="spec value" id="val-let+" class="anchored"><a href="#val-let+" class="anchor"></a><code><span><span class="keyword">val</span> let+ : <span><span><span>( <span class="type-var">'a</span>, <span class="type-var">'e</span> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> <span><span>( <span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'b</span> )</span> <span class="arrow">&#45;&gt;</span></span> <span><span>( <span class="type-var">'b</span>, <span class="type-var">'e</span> )</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 2.8</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-and+" class="anchored"><a href="#val-and+" class="anchor"></a><code><span><span class="keyword">val</span> and+ : <span><span><span>( <span class="type-var">'a</span>, <span class="type-var">'e</span> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> <span><span><span>( <span class="type-var">'b</span>, <span class="type-var">'e</span> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> <span><span>( <span class="type-var">'a</span> * <span class="type-var">'b</span>, <span class="type-var">'e</span> )</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 2.8</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-let*" class="anchored"><a href="#val-let*" class="anchor"></a><code><span><span class="keyword">val</span> let* : <span><span><span>( <span class="type-var">'a</span>, <span class="type-var">'e</span> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> <span><span>( <span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> <span><span>( <span class="type-var">'b</span>, <span class="type-var">'e</span> )</span> <a href="#type-t">t</a></span> )</span> <span class="arrow">&#45;&gt;</span></span> <span><span>( <span class="type-var">'b</span>, <span class="type-var">'e</span> )</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 2.8</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-and*" class="anchored"><a href="#val-and*" class="anchor"></a><code><span><span class="keyword">val</span> and* : <span><span><span>( <span class="type-var">'a</span>, <span class="type-var">'e</span> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> <span><span><span>( <span class="type-var">'b</span>, <span class="type-var">'e</span> )</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> <span><span>( <span class="type-var">'a</span> * <span class="type-var">'b</span>, <span class="type-var">'e</span> )</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 2.8</li></ul></div></div></div></body></html>