From d26f4f9e8c3f8552f53ae563248260f4ad27e568 Mon Sep 17 00:00:00 2001 From: Itamar Date: Sat, 19 Jun 2021 11:23:02 +0300 Subject: [PATCH] AK: Add RedBlackTree::find_largest_not_above_iterator It's a version of find_largest_not_above that returns an iterator. --- AK/RedBlackTree.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/AK/RedBlackTree.h b/AK/RedBlackTree.h index dbfebbad27..b02c97952c 100644 --- a/AK/RedBlackTree.h +++ b/AK/RedBlackTree.h @@ -464,6 +464,12 @@ public: ConstIterator end() const { return {}; } ConstIterator begin_from(K key) const { return ConstIterator(static_cast(BaseTree::find(this->m_root, key))); } + ConstIterator find_largest_not_above_iterator(K key) const + { + auto node = static_cast(BaseTree::find_largest_not_above(this->m_root, key)); + return ConstIterator(node, static_cast(BaseTree::predecessor(node))); + } + V unsafe_remove(K key) { auto* node = BaseTree::find(this->m_root, key);