28 V& operator[](
const K& key);
30 const V& operator[](
const K& key)
const;
33 virtual ncnt len()
const = 0;
38 virtual nbool in(
const K& key)
const = 0;
43 template <
typename V1>
nbool in(std::function<
nbool(
const K& key,
const V1&
val)> l)
const;
46 virtual V* get(
const K& key) = 0;
49 template <
typename V1>
V1* get();
51 template <
typename V1>
V1* get(
const K& key);
55 template <
typename V1>
V1* get(std::function<
nbool(
const K&,
const V1&)> l);
56 V* get(std::function<
nbool(
const K&,
const V&)> l);
66 template <
typename V1>
void each(std::function<
nbool(
const K&,
V1&)> l);
67 void each(std::function<
nbool(
const K&,
V&)> l);
68 template <
typename V1>
void each(std::function<
nbool(
const K&,
const V1&)> l)
const BY_CONST_FUNC(each(l))
73 iter begin(
const K& key)
const;
77 iter rbegin(
const K& key)
const;
80 virtual iter end()
const;
82 virtual iter rend()
const;
84 virtual iter last()
const;
101 iter iterate(
const K& key)
const;
103 iter iterate(
const K& key,
nbool isBoundary)
const;
104 iter iterate(
const K* key,
nbool isBoundary)
const
105 BY_SIDE_FUNC(key, iterate(*key, isBoundary), iterate(0, isBoundary));
108 iter riterate(
const K& key)
const;
110 iter riterate(
const K& key,
nbool isBoundary)
const;
111 iter riterate(
const K* key,
nbool isBoundary)
const
112 BY_SIDE_FUNC(key, riterate(*key, isBoundary), riterate(0, isBoundary));
114 virtual nbool add(
const K& key,
const V&
val) = 0;
139 virtual void rel() = 0;
143 virtual void _getAll(
const K& key,
narr&
tray)
const = 0;