Update interval_tree with bugfixes for rbeing() and the like

This commit is contained in:
Stepland 2022-04-15 12:53:16 +02:00
parent 5a6855564f
commit bd8a9e7b4f

View File

@ -150,7 +150,7 @@ public:
if(n) if(n)
n = tree->next(n); n = tree->next(n);
else else
n = tree->leftest(n); n = tree->root ? tree->leftest(tree->root) : nullptr;
return *this; return *this;
} }
@ -167,7 +167,7 @@ public:
if(n) if(n)
n = tree->prev(n); n = tree->prev(n);
else else
n = tree->rightest(n); n = tree->root ? tree->rightest(tree->root) : nullptr;
return *this; return *this;
} }
@ -224,7 +224,7 @@ public:
if(n) if(n)
n = tree->next(n); n = tree->next(n);
else else
n = tree->leftest(n); n = tree->root ? tree->leftest(tree->root) : nullptr;
return *this; return *this;
} }
@ -241,7 +241,7 @@ public:
if(n) if(n)
n = tree->prev(n); n = tree->prev(n);
else else
n = tree->rightest(n); n = tree->root ? tree->rightest(tree->root) : nullptr;
return *this; return *this;
} }
@ -358,32 +358,32 @@ public:
inline reverse_iterator rbegin() noexcept inline reverse_iterator rbegin() noexcept
{ {
return reverse_iterator(begin()); return reverse_iterator(end());
} }
inline reverse_const_iterator rbegin() const noexcept inline reverse_const_iterator rbegin() const noexcept
{ {
return reverse_const_iterator(begin()); return reverse_const_iterator(end());
} }
inline reverse_const_iterator crbegin() const noexcept inline reverse_const_iterator crbegin() const noexcept
{ {
return reverse_const_iterator(cbegin()); return reverse_const_iterator(cend());
} }
inline reverse_iterator rend() noexcept inline reverse_iterator rend() noexcept
{ {
return reverse_iterator(end()); return reverse_iterator(begin());
} }
inline reverse_const_iterator rend() const noexcept inline reverse_const_iterator rend() const noexcept
{ {
return reverse_const_iterator(end()); return reverse_const_iterator(begin());
} }
inline reverse_const_iterator crend() const noexcept inline reverse_const_iterator crend() const noexcept
{ {
return reverse_const_iterator(cend()); return reverse_const_iterator(cbegin());
} }