13 _citer(isReversed ? own._map.rbegin(key) : own._map.begin(key)),
14 _end(isReversed ? own._map.rend() : own._map.end()) {}
16 nbool isEnd()
const override {
return _citer == _end; }
18 void rel()
override { _citer = _end; }
23 ncnt
stepForward(ncnt step)
override {
return _step(
false, step); }
25 ncnt stepBackward(ncnt step)
override {
return _step(
true, step); }
27 const K* getKey()
const override {
28 WHEN(isEnd()) .ret(
nullptr);
29 return _citer.getKey();
34 V* getVal()
override {
35 WHEN(isEnd()) .ret(
nullptr);
36 return _citer.getVal()
TO(get());
41 void setVal(
const V& new1)
override {
46 using super::getContainer;
48 tbicontainable<K, V>* getContainer()
override {
return &_own; }
51 nbool _onSame(
const typeProvidable& rhs)
const override {
52 const me& cast = (
const me&) rhs;
53 return this->isFrom(cast.getContainer()) && _citer == cast._citer;
57 ncnt _step(nbool isReversed, ncnt step) {
58 WHEN(isEnd()) .ret(0);
59 for(
int n = 0; n < step; n++) {
60 isReversed ? (this->isReversed() ? ++_citer : --_citer) : (this->isReversed() ? --_citer : ++_citer);
61 WHEN(isEnd()) .ret(n);
Definition: biteration.hpp:5
Definition: nmapIteration.hpp:5
ncnt stepForward(ncnt step) override
Definition: nmapIteration.hpp:23
#define TO(fn)
Definition: to.hpp:171