15#include <l4/cxx/std_alloc>
16#include <l4/cxx/std_ops>
24template<
typename KEY_TYPE>
27 typedef KEY_TYPE Key_type;
28 template<
typename NODE>
29 static Key_type
const &key_of(NODE
const *n)
30 {
return n->item.first; }
42template<
typename KEY_TYPE,
typename DATA_TYPE,
43 template<
typename A>
class COMPARE =
Lt_functor,
47 COMPARE<KEY_TYPE>, ALLOC,
48 Bits::Avl_map_get_key<KEY_TYPE> >
102 template<
typename... Args>
104 {
return Base_type::emplace(cxx::forward<Args>(args)...); }
Avl_map(Node_allocator const &alloc=Node_allocator())
Create an empty AVL-tree based map.
cxx::Lt_functor< Region > Key_compare
Base_type::Node_allocator Node_allocator
cxx::Pair< Iterator, int > insert(Key_type const &key, Data_type const &data)
Insert a <key, data> pair into the map.
Data_type const & operator[](Key_type const &key) const
Get the data for the given key.
A smart pointer to a tree item.
Internal: AVL set with internally managed nodes.
Avl_set_iter< _Node, Item_type, Fwd > Iterator
Forward iterator for the set.
Node find_node(Key_type const &item) const
Avl_set_iter< _Node, Item_type, Rev > Rev_iterator
Backward iterator for the set.
ALLOC< _Node > Node_allocator
Type for the node allocator.
Avl_set_iter< _Node, Const_item_type, Rev > Const_rev_iterator
Constant backward iterator for the set.
cxx::Pair< Iterator, int > insert(Item_type const &item)
Avl_set_iter< _Node, Const_item_type, Fwd > Const_iterator
Constant forward iterator for the set.
Standard allocator based on operator new () .
Internal helpers for the cxx package.
Generic comparator class that defaults to the less-than operator.
Second second
Second value.