21 #ifndef ELM_DATA_LISTMAP_H_
22 #define ELM_DATA_LISTMAP_H_
24 #include "SortedList.h"
28 template <
class K,
class T,
class C = Comparator<K>,
class E = Equiv<T>,
class A = DefaultAlloc >
68 inline const K&
item(
void)
const {
return (*i).fst; }
80 {
for(
const auto& i: *
this)
if(E::isEqual(i, v))
return true;
return false; }
81 template <
class CC>
inline bool containsAll(
const CC& c)
const
82 {
for(
const auto i: c)
if(!
contains(i))
return false;
return true; }
87 inline operator Iter(
void)
const {
return begin(); }
100 inline const T &
get(
const K &k,
const T &d)
const
101 {
PairIter i = lookup(k);
if(i())
return (*i).snd;
else return d; }
102 inline bool hasKey(
const K &k)
const {
return lookup(k)(); }
110 void put(
const K& k,
const T& v) {
134 template <
class K,
class T,
class M>
const T & item() const
Definition: ListMap.h:54
void next(void)
Definition: ListMap.h:69
bool equals(const KeyIter &ii)
Definition: ListMap.h:70
KeyIter(void)
Definition: ListMap.h:65
KeyIter(const ListMap< K, T > &l)
Definition: ListMap.h:66
const K & item(void) const
Definition: ListMap.h:68
bool ended(void) const
Definition: ListMap.h:67
T & item() const
Definition: ListMap.h:60
PreIter(const self_t &l)
Definition: ListMap.h:43
bool equals(const PreIter &ii) const
Definition: ListMap.h:46
PairIter i
Definition: ListMap.h:48
void next(void)
Definition: ListMap.h:45
PreIter()
Definition: ListMap.h:42
bool ended(void) const
Definition: ListMap.h:44
bool contains(const self_t &m) const
Definition: ListMap.h:91
void remove(const MutIter &i)
Definition: ListMap.h:117
bool equals(const self_t &m) const
Definition: ListMap.h:88
Iterable< PairIter > pairs() const
Definition: ListMap.h:105
Iterable< KeyIter > keys() const
Definition: ListMap.h:104
ListMap< K, T, C, E, A > self_t
Definition: ListMap.h:32
MutIter begin()
Definition: ListMap.h:108
void remove(const K &k)
Definition: ListMap.h:118
bool hasKey(const K &k) const
Definition: ListMap.h:102
MutIter end()
Definition: ListMap.h:109
bool operator!=(const self_t &m) const
Definition: ListMap.h:90
Iter begin() const
Definition: ListMap.h:76
E & equivalence()
Definition: ListMap.h:37
int count(void) const
Definition: ListMap.h:78
bool contains(const T &v) const
Definition: ListMap.h:79
ListMap()
Definition: ListMap.h:35
bool operator>(const self_t &m) const
Definition: ListMap.h:95
bool operator>=(const self_t &m) const
Definition: ListMap.h:94
base_t::Iter PairIter
Definition: ListMap.h:33
Option< T > get(const K &k) const
Definition: ListMap.h:98
bool operator==(const self_t &m) const
Definition: ListMap.h:89
void put(const K &k, const T &v)
Definition: ListMap.h:110
Iter operator*(void) const
Definition: ListMap.h:86
bool containsAll(const CC &c) const
Definition: ListMap.h:81
bool operator<=(const self_t &m) const
Definition: ListMap.h:92
Iter end() const
Definition: ListMap.h:77
Iter items(void) const
Definition: ListMap.h:85
bool isEmpty(void) const
Definition: ListMap.h:83
const T & get(const K &k, const T &d) const
Definition: ListMap.h:100
ListMap(const self_t &l)
Definition: ListMap.h:36
bool operator<(const self_t &m) const
Definition: ListMap.h:93
void next(void)
Definition: List.h:72
bool ended(void) const
Definition: List.h:70
bool equals(const Iter &i) const
Definition: List.h:73
T2 snd
Definition: Pair.h:36
Definition: SortedList.h:60
Definition: SortedList.h:34
bool contains(const T &item) const
Definition: SortedList.h:53
Iter end(void) const
Definition: SortedList.h:69
C & comparator()
Definition: SortedList.h:43
bool equals(const SortedList< T > &l) const
Definition: SortedList.h:71
Iter begin(void) const
Definition: SortedList.h:68
int count(void) const
Definition: SortedList.h:51
void add(const T &value)
Definition: SortedList.h:85
void remove(const T &item)
Definition: SortedList.h:96
void set(Iter i, const T &val)
Definition: SortedList.h:125
bool isEmpty(void) const
Definition: SortedList.h:57
Pair< T1, T2 > pair(const T1 &v1, const T2 &v2)
Definition: Pair.h:63
bool operator<=(const T &v, const FragTable< T, E, A > &t)
Definition: FragTable.h:158
Iterable< I > subiter(const I &b, const I &e)
Definition: util.h:231
const OptionalNone none
Definition: util_Option.cpp:154
Option< T > some(const T &val)
Definition: Option.h:81