22 #ifndef ELM_GENSTRUCT_SORTEDBINMAP_H
23 #define ELM_GENSTRUCT_SORTEDBINMAP_H
25 #include <elm/utility.h>
26 #include <elm/util/Pair.h>
27 #include <elm/genstruct/SortedBinTree.h>
29 namespace elm {
namespace genstruct {
32 template <
class K,
class T,
class C = Comparator<K> >
42 inline bool contains(
const K &item)
const {
return tree.
look(item); }
44 inline operator bool(
void)
const {
return !
isEmpty(); }
51 inline bool ended(
void)
const {
return iter.ended(); }
52 inline void next(
void) { iter.next(); }
53 const T &
item(
void)
const {
return iter.item().snd; }
55 typename tree_t::Iterator iter;
59 inline const T&
get(
const K &key,
const T &def)
const {
61 return val ? val->
snd : def;
67 inline bool hasKey(
const K &key)
const {
return tree.
look(key); }
74 inline bool ended(
void)
const {
return iter.ended(); }
75 inline void next(
void) { iter.next(); }
76 const K &
item(
void)
const {
return iter.item().fst; }
78 typename tree_t::Iterator iter;
86 inline bool ended(
void)
const {
return iter.ended(); }
87 inline void next(
void) { iter.next(); }
90 typename tree_t::Iterator iter;
96 inline void remove(
const K& key)
98 inline void remove(
const PairIterator& iter)
99 { tree.
remove(iter.iter); }
107 #endif // ELM_GENSTRUCT_SORTEDBINMAP_H
void add(const T &value)
Definition: SortedBinTree.h:93
Definition: SortedBinTree.h:38
SortedBinMap(const SortedBinMap &map)
Definition: SortedBinMap.h:38
int count(void) const
Definition: SortedBinMap.h:41
const T & item(void) const
Definition: SortedBinMap.h:53
PairIterator(const SortedBinMap &map)
Definition: SortedBinMap.h:84
bool isEmpty(void) const
Definition: SortedBinMap.h:43
Definition: PreIterator.h:29
bool hasKey(const K &key) const
Definition: SortedBinMap.h:67
Definition: SortedBinMap.h:47
Definition: SortedBinMap.h:82
Iterator(const SortedBinMap &map)
Definition: SortedBinMap.h:49
bool ended(void) const
Definition: SortedBinMap.h:74
const K & item(void) const
Definition: SortedBinMap.h:76
Definition: SortedBinMap.h:70
AutoStringStartup & _
Definition: debug_CrashHandler.cpp:221
bool contains(const K &item) const
Definition: SortedBinMap.h:42
KeyIterator(const KeyIterator &_)
Definition: SortedBinMap.h:73
value_t value(CString name, int value)
Definition: rtti.h:40
void next(void)
Definition: SortedBinMap.h:52
PairIterator(const PairIterator &_)
Definition: SortedBinMap.h:85
bool ended(void) const
Definition: SortedBinMap.h:51
bool isEmpty(void) const
Definition: SortedBinTree.h:55
void remove(const T &value)
Definition: SortedBinTree.h:125
T2 snd
Definition: Pair.h:19
void next(void)
Definition: SortedBinMap.h:87
void put(const K &key, const T &value)
Definition: SortedBinMap.h:94
const T * look(const typename K::key_t &key) const
Definition: SortedBinTree.h:161
Iterator(const Iterator &_)
Definition: SortedBinMap.h:50
int count(void) const
Definition: SortedBinTree.h:53
Definition: SortedBinMap.h:33
bool ended(void) const
Definition: SortedBinMap.h:86
const OptionalNone none
Definition: util_Option.cpp:134
KeyIterator(const SortedBinMap &map)
Definition: SortedBinMap.h:72
SortedBinMap(void)
Definition: SortedBinMap.h:37
void next(void)
Definition: SortedBinMap.h:75
const value_t & item(void) const
Definition: SortedBinMap.h:88