|
| | RBTree ()=default |
| | RBTree (RBTree const &)=delete |
| auto | operator= (RBTree const &) -> RBTree &=delete |
| constexpr | RBTree (Comp comparator) |
| constexpr | RBTree (RBTree &&other) |
| constexpr auto | operator= (RBTree &&other) -> RBTree & |
| constexpr | ~RBTree () |
| constexpr auto | size () const -> usize |
| constexpr auto | empty () const -> bool |
| constexpr auto | begin () -> Iterator |
| constexpr auto | begin () const -> ConstIterator |
| constexpr auto | end () -> Iterator |
| constexpr auto | end () const -> ConstIterator |
| constexpr auto | unconst_iterator (ConstIterator it) -> Iterator |
| constexpr auto | insert_node (Node &node) |
| constexpr auto | insert_node (ConstIterator, Node &node) |
| constexpr auto | erase_impl (ConstIterator position) -> Iterator |
template<typename U>
requires (concepts::StrictWeakOrder<Comp&, Value, U>) |
| constexpr auto | equal_range_impl (U &&needle) const |
template<typename U>
requires (concepts::StrictWeakOrder<Comp&, Value, U>) |
| constexpr auto | lower_bound_impl (U &&needle) const -> ConstIterator |
template<typename U>
requires (concepts::StrictWeakOrder<Comp&, Value, U>) |
| constexpr auto | upper_bound_impl (U &&needle) const -> ConstIterator |
template<typename U>
requires (concepts::StrictWeakOrder<Comp&, Value, U>) |
| constexpr auto | find_impl (U &&needle) const -> ConstIterator |
| constexpr void | merge_impl (RBTree &&other) |
|
| constexpr auto | node_value (Node &node) const -> Value & |
| constexpr auto | node_value (Node const &node) const -> Value const & |
| constexpr auto | node_color (Node *node) const -> Node::Color |
| constexpr void | rotate_left (Node &x) |
| constexpr void | rotate_right (Node &y) |
template<typename U>
requires (concepts::StrictWeakOrder<Comp&, Value, U>) |
| constexpr auto | insert_position (U &&needle) const -> InsertPosition |
| constexpr void | insert_node (InsertPosition position, Node &to_insert) |
| constexpr void | do_insert_node (InsertPosition position, Node &to_insert) |
| constexpr void | do_insert_rebalancing (Node *node) |
| constexpr void | transplant (Node &u, Node *v) |
| constexpr void | erase_node (Node &to_delete) |
| constexpr void | do_erase_rebalancing (Node *x) |
| constexpr auto | compare (Node const &a, Node const &b) const |
template<typename T, typename U>
requires (concepts::StrictWeakOrder<Comp&, T, U>) |
| constexpr auto | compare (T const &a, U &&b) const |
template<typename Value, typename Comp, typename
Tag, typename Interface, bool is_multi, typename Self = Void>
class di::container::RBTree< Value, Comp, Tag, Interface, is_multi, Self >
General implementation of the Red-Black self-balancing binary tree.
The book Introduction to Algorithms, Third Edition (by Thomas H. Cormen, et al.) was heavily referenced in this class's implementation of a Red-Black tree. See here.