Iros
 
Loading...
Searching...
No Matches
di::container::TreeMultiMap< Key, Value, Comp, Alloc > Class Template Reference

#include <di/container/tree/tree_multimap.h>

Inheritance diagram for di::container::TreeMultiMap< Key, Value, Comp, Alloc >:
[legend]

Public Member Functions

 TreeMultiMap ()=default
 
 TreeMultiMap (Comp const &comparator)
 
- Public Member Functions inherited from di::container::OwningRBTree< Tuple< Key, Value >, detail::TreeMapCompAdapter< function::Compare, Key >, detail::TreeMapTag< Key, Value >, DefaultAllocator, MapInterface< TreeMultiMap< Key, Value, function::Compare, DefaultAllocator >, Tuple< Key, Value >, Key, Value, RBTreeIterator< Tuple< Key, Value >, detail::TreeMapTag< Key, Value > >, container::ConstIteratorImpl< RBTreeIterator< Tuple< Key, Value >, detail::TreeMapTag< Key, Value > > >, detail::RBTreeValidForLookup< Tuple< Key, Value >, detail::TreeMapCompAdapter< function::Compare, Key > >::template Type, true >, true >
constexpr auto allocator () -> Alloc &
 
constexpr auto insert_with_factory (U &&needle, F &&factory)
 
constexpr auto insert_with_factory (ConstIterator, U &&needle, F &&factory)
 
- Public Member Functions inherited from di::container::RBTree< Value, detail::TreeMapCompAdapter< function::Compare, Key >, detail::TreeMapTag< Key, Value >, MapInterface< TreeMultiMap< Key, Value, function::Compare, DefaultAllocator >, Tuple< Key, Value >, Key, Value, RBTreeIterator< Tuple< Key, Value >, detail::TreeMapTag< Key, Value > >, container::ConstIteratorImpl< RBTreeIterator< Tuple< Key, Value >, detail::TreeMapTag< Key, Value > > >, detail::RBTreeValidForLookup< Tuple< Key, Value >, detail::TreeMapCompAdapter< function::Compare, Key > >::template Type, true >, is_multi, OwningRBTree< Value, detail::TreeMapCompAdapter< function::Compare, Key >, detail::TreeMapTag< Key, Value >, Alloc, MapInterface< TreeMultiMap< Key, Value, function::Compare, DefaultAllocator >, Tuple< Key, Value >, Key, Value, RBTreeIterator< Tuple< Key, Value >, detail::TreeMapTag< Key, Value > >, container::ConstIteratorImpl< RBTreeIterator< Tuple< Key, Value >, detail::TreeMapTag< Key, Value > > >, detail::RBTreeValidForLookup< Tuple< Key, Value >, detail::TreeMapCompAdapter< function::Compare, Key > >::template Type, true >, is_multi > >
 RBTree ()=default
 
 RBTree (RBTree const &)=delete
 
constexpr RBTree (detail::TreeMapCompAdapter< function::Compare, Key > comparator)
 
constexpr RBTree (RBTree &&other)
 
auto operator= (RBTree const &) -> RBTree &=delete
 
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
 
constexpr auto equal_range_impl (U &&needle) const
 
constexpr auto lower_bound_impl (U &&needle) const -> ConstIterator
 
constexpr auto upper_bound_impl (U &&needle) const -> ConstIterator
 
constexpr auto find_impl (U &&needle) const -> ConstIterator
 
constexpr void merge_impl (RBTree &&other)
 
- Public Member Functions inherited from di::container::MapInterface< TreeMultiMap< Key, Value, function::Compare, DefaultAllocator >, Tuple< Key, Value >, Key, Value, RBTreeIterator< Tuple< Key, Value >, detail::TreeMapTag< Key, Value > >, container::ConstIteratorImpl< RBTreeIterator< Tuple< Key, Value >, detail::TreeMapTag< Key, Value > > >, detail::RBTreeValidForLookup< Tuple< Key, Value >, detail::TreeMapCompAdapter< function::Compare, Key > >::template Type, true >
constexpr auto empty () const -> bool
 
constexpr void clear ()
 
constexpr auto operator[] (Key const &needle) -> decltype(auto) requires(!is_multi &&concepts::Clonable< Key > &&concepts::DefaultConstructible< Value >)
 
constexpr auto operator[] (Key &&needle) -> decltype(auto) requires(!is_multi &&concepts::DefaultConstructible< Value >)
 
constexpr auto operator[] (K &&needle) -> decltype(auto)
 
constexpr auto insert (Value const &value)
 
constexpr auto insert (Value &&value)
 
constexpr auto insert (U &&value)
 
constexpr auto insert (container::ConstIteratorImpl< RBTreeIterator< Tuple< Key, Value >, detail::TreeMapTag< Key, Value > > > hint, Value const &value)
 
constexpr auto insert (container::ConstIteratorImpl< RBTreeIterator< Tuple< Key, Value >, detail::TreeMapTag< Key, Value > > > hint, Value &&value)
 
constexpr auto insert (container::ConstIteratorImpl< RBTreeIterator< Tuple< Key, Value >, detail::TreeMapTag< Key, Value > > > hint, U &&value)
 
constexpr auto insert_or_assign (Key const &needle, U &&value)
 
constexpr auto insert_or_assign (Key &&needle, U &&value)
 
constexpr auto insert_or_assign (K &&needle, U &&value)
 
constexpr auto insert_or_assign (container::ConstIteratorImpl< RBTreeIterator< Tuple< Key, Value >, detail::TreeMapTag< Key, Value > > > hint, Key const &needle, U &&value)
 
constexpr auto insert_or_assign (container::ConstIteratorImpl< RBTreeIterator< Tuple< Key, Value >, detail::TreeMapTag< Key, Value > > > hint, Key &&needle, U &&value)
 
constexpr auto insert_or_assign (container::ConstIteratorImpl< RBTreeIterator< Tuple< Key, Value >, detail::TreeMapTag< Key, Value > > >, K &&needle, U &&value)
 
constexpr auto try_emplace (Key const &needle, Args &&... args)
 
constexpr auto try_emplace (Key &&needle, Args &&... args)
 
constexpr auto try_emplace (K &&needle, Args &&... args)
 
constexpr auto try_emplace (container::ConstIteratorImpl< RBTreeIterator< Tuple< Key, Value >, detail::TreeMapTag< Key, Value > > > hint, Key const &needle, Args &&... args)
 
constexpr auto try_emplace (container::ConstIteratorImpl< RBTreeIterator< Tuple< Key, Value >, detail::TreeMapTag< Key, Value > > > hint, Key &&needle, Args &&... args)
 
constexpr auto try_emplace (container::ConstIteratorImpl< RBTreeIterator< Tuple< Key, Value >, detail::TreeMapTag< Key, Value > > > hint, K &&needle, Args &&... args)
 
constexpr auto emplace (Args &&... args)
 
constexpr auto emplace_hint (container::ConstIteratorImpl< RBTreeIterator< Tuple< Key, Value >, detail::TreeMapTag< Key, Value > > > hint, Args &&... args)
 
constexpr auto insert_container (Con &&container)
 
constexpr void insert_container (container::ConstIteratorImpl< RBTreeIterator< Tuple< Key, Value >, detail::TreeMapTag< Key, Value > > > hint, Con &&container)
 
constexpr auto merge (TreeMultiMap< Key, Value, function::Compare, DefaultAllocator > &self)
 
constexpr auto merge (TreeMultiMap< Key, Value, function::Compare, DefaultAllocator > &&self)
 
constexpr auto erase (RBTreeIterator< Tuple< Key, Value >, detail::TreeMapTag< Key, Value > > position)
 
constexpr auto erase (RBTreeIterator< Tuple< Key, Value >, detail::TreeMapTag< Key, Value > > first, RBTreeIterator< Tuple< Key, Value >, detail::TreeMapTag< Key, Value > > last) -> RBTreeIterator< Tuple< Key, Value >, detail::TreeMapTag< Key, Value > >
 
constexpr auto erase (Key const &needle) -> size_t
 
constexpr auto erase (U &&needle) -> size_t
 
constexpr auto front () -> Optional< Value & >
 
constexpr auto front () const -> Optional< Value const & >
 
constexpr auto back () -> Optional< Value & >
 
constexpr auto back () const -> Optional< Value const & >
 
constexpr auto at (Key const &needle) -> Optional< Value & >
 
constexpr auto at (Key const &needle) const -> Optional< Value const & >
 
constexpr auto at (U &&needle) -> Optional< Value & >
 
constexpr auto at (U &&needle) const -> Optional< Value const & >
 
constexpr auto find (Key const &needle) -> RBTreeIterator< Tuple< Key, Value >, detail::TreeMapTag< Key, Value > >
 
constexpr auto find (Key const &needle) const -> container::ConstIteratorImpl< RBTreeIterator< Tuple< Key, Value >, detail::TreeMapTag< Key, Value > > >
 
constexpr auto find (U &&needle) -> RBTreeIterator< Tuple< Key, Value >, detail::TreeMapTag< Key, Value > >
 
constexpr auto find (U &&needle) const -> container::ConstIteratorImpl< RBTreeIterator< Tuple< Key, Value >, detail::TreeMapTag< Key, Value > > >
 
constexpr auto contains (Key const &needle) const -> bool
 
constexpr auto contains (U &&needle) const -> bool
 
constexpr auto count (Key const &needle) const -> size_t
 
constexpr auto count (U &&needle) const -> size_t
 
constexpr auto equal_range (Key const &needle)
 
constexpr auto equal_range (U &&needle)
 
constexpr auto equal_range (Key const &needle) const
 
constexpr auto equal_range (U &&needle) const
 
constexpr auto lower_bound (Key const &needle) -> RBTreeIterator< Tuple< Key, Value >, detail::TreeMapTag< Key, Value > > requires(
 
constexpr auto lower_bound (Key const &needle) const -> container::ConstIteratorImpl< RBTreeIterator< Tuple< Key, Value >, detail::TreeMapTag< Key, Value > > > requires(
 
constexpr auto lower_bound (U &&needle) -> RBTreeIterator< Tuple< Key, Value >, detail::TreeMapTag< Key, Value > > requires(
 
constexpr auto lower_bound (U &&needle) const -> container::ConstIteratorImpl< RBTreeIterator< Tuple< Key, Value >, detail::TreeMapTag< Key, Value > > > requires(
 
constexpr auto upper_bound (Key const &needle) -> RBTreeIterator< Tuple< Key, Value >, detail::TreeMapTag< Key, Value > > requires(
 
constexpr auto upper_bound (Key const &needle) const -> container::ConstIteratorImpl< RBTreeIterator< Tuple< Key, Value >, detail::TreeMapTag< Key, Value > > > requires(
 
constexpr auto upper_bound (U &&needle) -> RBTreeIterator< Tuple< Key, Value >, detail::TreeMapTag< Key, Value > > requires(
 
constexpr auto upper_bound (U &&needle) const -> container::ConstIteratorImpl< RBTreeIterator< Tuple< Key, Value >, detail::TreeMapTag< Key, Value > > > requires(
 

Additional Inherited Members

- Protected Member Functions inherited from di::container::RBTree< Value, detail::TreeMapCompAdapter< function::Compare, Key >, detail::TreeMapTag< Key, Value >, MapInterface< TreeMultiMap< Key, Value, function::Compare, DefaultAllocator >, Tuple< Key, Value >, Key, Value, RBTreeIterator< Tuple< Key, Value >, detail::TreeMapTag< Key, Value > >, container::ConstIteratorImpl< RBTreeIterator< Tuple< Key, Value >, detail::TreeMapTag< Key, Value > > >, detail::RBTreeValidForLookup< Tuple< Key, Value >, detail::TreeMapCompAdapter< function::Compare, Key > >::template Type, true >, is_multi, OwningRBTree< Value, detail::TreeMapCompAdapter< function::Compare, Key >, detail::TreeMapTag< Key, Value >, Alloc, MapInterface< TreeMultiMap< Key, Value, function::Compare, DefaultAllocator >, Tuple< Key, Value >, Key, Value, RBTreeIterator< Tuple< Key, Value >, detail::TreeMapTag< Key, Value > >, container::ConstIteratorImpl< RBTreeIterator< Tuple< Key, Value >, detail::TreeMapTag< Key, Value > > >, detail::RBTreeValidForLookup< Tuple< Key, Value >, detail::TreeMapCompAdapter< function::Compare, Key > >::template Type, true >, is_multi > >
constexpr void insert_node (InsertPosition position, Node &to_insert)
 
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)
 
constexpr auto insert_position (U &&needle) const -> InsertPosition
 
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
 
constexpr auto compare (T const &a, U &&b) const
 
- Protected Attributes inherited from di::container::RBTree< Value, detail::TreeMapCompAdapter< function::Compare, Key >, detail::TreeMapTag< Key, Value >, MapInterface< TreeMultiMap< Key, Value, function::Compare, DefaultAllocator >, Tuple< Key, Value >, Key, Value, RBTreeIterator< Tuple< Key, Value >, detail::TreeMapTag< Key, Value > >, container::ConstIteratorImpl< RBTreeIterator< Tuple< Key, Value >, detail::TreeMapTag< Key, Value > > >, detail::RBTreeValidForLookup< Tuple< Key, Value >, detail::TreeMapCompAdapter< function::Compare, Key > >::template Type, true >, is_multi, OwningRBTree< Value, detail::TreeMapCompAdapter< function::Compare, Key >, detail::TreeMapTag< Key, Value >, Alloc, MapInterface< TreeMultiMap< Key, Value, function::Compare, DefaultAllocator >, Tuple< Key, Value >, Key, Value, RBTreeIterator< Tuple< Key, Value >, detail::TreeMapTag< Key, Value > >, container::ConstIteratorImpl< RBTreeIterator< Tuple< Key, Value >, detail::TreeMapTag< Key, Value > > >, detail::RBTreeValidForLookup< Tuple< Key, Value >, detail::TreeMapCompAdapter< function::Compare, Key > >::template Type, true >, is_multi > >
Nodem_root
 
Nodem_minimum
 
Nodem_maximum
 
usize m_size
 
detail::TreeMapCompAdapter< function::Compare, Key > m_comparator
 

Constructor & Destructor Documentation

◆ TreeMultiMap() [1/2]

template<typename Key, typename Value, concepts::StrictWeakOrder< Key > Comp = function::Compare, concepts::Allocator Alloc = DefaultAllocator>
di::container::TreeMultiMap< Key, Value, Comp, Alloc >::TreeMultiMap ( )
default

◆ TreeMultiMap() [2/2]

template<typename Key, typename Value, concepts::StrictWeakOrder< Key > Comp = function::Compare, concepts::Allocator Alloc = DefaultAllocator>
di::container::TreeMultiMap< Key, Value, Comp, Alloc >::TreeMultiMap ( Comp const & comparator)
inline

The documentation for this class was generated from the following file: