4.36. kink/container/TREE_MAP¶
Provides an ordered_map implementation which stores contents in a balanced binary tree.
This map implementation is a safe default choice, because it guarantees logarithmic worst-case computational complexity for .get, .set and so on.
Worst case computational orders of each operations are as follows:
* .get and .get_or: O(log N)
* .have_key?: O(log N)
* .pop_at: O(log N)
* .size and .empty?: O(1)
Where N is the size of the map.
4.36.1. TREE_MAP.of(K0 V0 K1 V1 ,,,)¶
Makes a tree ordered_map with the given keys and vals, with the natural ordering.
In the natural ordering, X precedes Y if and only if X < Y.
4.36.2. TREE_MAP.from_pairs(Pair_eacher)¶
`from_pairs` makes a tree ordered_map with the given pairs, with the natural ordering.
In the natural ordering, X precedes Y if and only if X < Y.
Precondition:
• `Pair_eacher` must be a sequence which support .each($consume) method. `each` method must call $consume for each pair of a key and the corresponding val.
4.36.3. kink/container/TREE_MAP.new(...[$config_fun = {}])¶
Makes an empty ordered_map of the tree map implementation.
$config_fun takes a Conf as an arg. Conf has the following method.
Conf.precede_fun($_precede?): sets $_precede? to be used to determine the strict weak ordering of keys. $_precede? must take two parameters, and returns true if the first parameter precedes the second one in the ordering, or false otherwise.
If Conf.precede_fun is not called, the map uses the natural ordering.