21 #ifndef ELM_AVL_MAP_CPP_
22 #define ELM_AVL_MAP_CPP_
24 #include <elm/util/Option.h>
25 #include <elm/avl/GenTree.h>
27 namespace elm {
namespace avl {
30 template <
class K,
class T,
class C = Comparator<K> >
45 {
const pair_t *p = tree.
get(key);
return p; }
58 inline bool ended(
void)
const {
return it.ended(); }
59 inline void next(
void) { it.next(); }
60 inline key_t item(
void)
const {
return it.item().fst; }
62 typename tree_t::Iterator it;
97 inline bool ended(
void)
const {
return it.ended(); }
98 inline void next(
void) { it.next(); }
99 inline val_t item(
void)
const {
return it.item().snd; }
101 typename tree_t::Iterator it;
108 inline T &
get(
const K &key, T& def)
109 {
const pair_t *p = tree.
get(key);
if(!p)
return def;
else return one(p->
snd); }
111 inline void remove(
const K &key) { tree.
remove(key); }
112 inline void remove(
const PairIterator &iter) { tree.
remove(iter.item().fst); }
Map< K, T, C > & operator=(const Map< K, T, C > &map)
Definition: Map.h:115
MutableIterator(Map< K, T, C > &map)
Definition: Map.h:76
void clear(void)
Definition: GenTree.h:148
Definition: PreIterator.h:29
bool hasKey(key_t key) const
Definition: Map.h:44
val_t item(void) const
Definition: Map.h:99
Option< T > some(T val)
Definition: Option.h:49
T embed_t
Definition: type_info.h:43
bool ended(void) const
Definition: Map.h:58
int count(void) const
Definition: GenTree.h:103
static const T & get(const T &v)
Definition: type_info.h:49
void remove(const typename K::key_t &item)
Definition: GenTree.h:231
void clear(void)
Definition: Map.h:113
T in_t
Definition: type_info.h:44
Iterator(const Iterator &iter)
Definition: Map.h:95
void copy(const GenTree< T, K, C > &tree)
Definition: GenTree.h:163
bool ended(void) const
Definition: Map.h:97
T & out_t
Definition: type_info.h:45
value_t value(CString name, int value)
Definition: rtti.h:40
bool operator!=(const Map< K, T, C > &map) const
Definition: Map.h:50
KeyIterator(const KeyIterator &iter)
Definition: Map.h:56
PairIterator(const PairIterator &iter)
Definition: Map.h:69
void next(void)
Definition: Map.h:98
PairIterator(const Map< K, T, C > &map)
Definition: Map.h:68
void put(const K &key, const T &value)
Definition: Map.h:110
MutableIterator(const MutableIterator &iter)
Definition: Map.h:77
void copy(const Map< K, T, C > &map)
Definition: Map.h:114
bool equals(const Map< K, T, C > &map) const
Definition: Map.h:48
key_t item(void) const
Definition: Map.h:60
void set(const T &value)
Definition: Map.h:79
T * get(const typename K::key_t &key)
Definition: GenTree.h:97
bool isEmpty(void) const
Definition: GenTree.h:105
PairIterator & operator=(const PairIterator &iter)
Definition: Map.h:70
T2 snd
Definition: Pair.h:19
int count(void) const
Definition: Map.h:46
void set(const T &item)
Definition: GenTree.h:203
bool equals(const GenTree< T, K, C > &tree) const
Definition: GenTree.h:261
void next(void)
Definition: Map.h:59
T & data(void)
Definition: GenTree.h:132
KeyIterator & operator=(const KeyIterator &iter)
Definition: Map.h:57
MutableIterator & operator=(const MutableIterator &iter)
Definition: Map.h:78
Iterator & operator=(const Iterator &iter)
Definition: Map.h:96
Iterator(const Map< K, T, C > &map)
Definition: Map.h:94
const OptionalNone none
Definition: util_Option.cpp:134
KeyIterator(const Map< K, T, C > &map)
Definition: Map.h:55
Definition: type_info.h:230
bool operator==(const Map< K, T, C > &map) const
Definition: Map.h:49
bool isEmpty(void) const
Definition: Map.h:47