Iros
 
Loading...
Searching...
No Matches
di::PriorityQueue< Value, Con, Comp > Class Template Reference

#include <di/container/queue/priority_queue.h>

Public Member Functions

 PriorityQueue ()=default
 
constexpr PriorityQueue (Comp const &compare)
 
constexpr PriorityQueue (Comp const &compare, Con &&container)
 
constexpr auto top () -> Optional< Value & >
 
constexpr auto top () const -> Optional< Value const & >
 
constexpr auto empty () const -> bool
 
constexpr auto size () const
 
constexpr auto push (Value const &value) -> decltype(auto) requires(concepts::CopyConstructible< Value >)
 
constexpr auto push (Value &&value) -> decltype(auto)
 
template<typename... Args>
requires (concepts::ConstructibleFrom<Value, Args...>)
constexpr auto emplace (Args &&... args) -> decltype(auto)
 
template<concepts::ContainerCompatible< Value > Other>
constexpr auto push_container (Other &&container)
 
constexpr auto pop () -> Optional< Value >
 
constexpr auto begin ()
 
constexpr auto end ()
 
constexpr auto base () const -> Con const &
 
constexpr auto comparator () const -> Comp const &
 
constexpr void clear ()
 

Friends

template<concepts::InputContainer Other>
requires (concepts::ContainerCompatible<Other, Value>)
constexpr friend auto tag_invoke (types::Tag< util::create_in_place >, InPlaceType< PriorityQueue >, Other &&other, Comp const &comp={})
 
constexpr friend auto tag_invoke (types::Tag< util::clone >, PriorityQueue const &self)
 

Constructor & Destructor Documentation

◆ PriorityQueue() [1/3]

template<typename Value, detail::PriorityQueueCompatible< Value > Con = container::Vector<Value>, concepts::StrictWeakOrder< Value > Comp = function::Compare>
di::container::PriorityQueue< Value, Con, Comp >::PriorityQueue ( )
default

◆ PriorityQueue() [2/3]

template<typename Value, detail::PriorityQueueCompatible< Value > Con = container::Vector<Value>, concepts::StrictWeakOrder< Value > Comp = function::Compare>
di::container::PriorityQueue< Value, Con, Comp >::PriorityQueue ( Comp const & compare)
inlineexplicitconstexpr

◆ PriorityQueue() [3/3]

template<typename Value, detail::PriorityQueueCompatible< Value > Con = container::Vector<Value>, concepts::StrictWeakOrder< Value > Comp = function::Compare>
di::container::PriorityQueue< Value, Con, Comp >::PriorityQueue ( Comp const & compare,
Con && container )
inlineexplicitconstexpr

Member Function Documentation

◆ base()

template<typename Value, detail::PriorityQueueCompatible< Value > Con = container::Vector<Value>, concepts::StrictWeakOrder< Value > Comp = function::Compare>
auto di::container::PriorityQueue< Value, Con, Comp >::base ( ) const -> Con const&
inlineconstexpr

◆ begin()

template<typename Value, detail::PriorityQueueCompatible< Value > Con = container::Vector<Value>, concepts::StrictWeakOrder< Value > Comp = function::Compare>
auto di::container::PriorityQueue< Value, Con, Comp >::begin ( )
inlineconstexpr

◆ clear()

template<typename Value, detail::PriorityQueueCompatible< Value > Con = container::Vector<Value>, concepts::StrictWeakOrder< Value > Comp = function::Compare>
void di::container::PriorityQueue< Value, Con, Comp >::clear ( )
inlineconstexpr

◆ comparator()

template<typename Value, detail::PriorityQueueCompatible< Value > Con = container::Vector<Value>, concepts::StrictWeakOrder< Value > Comp = function::Compare>
auto di::container::PriorityQueue< Value, Con, Comp >::comparator ( ) const -> Comp const&
inlineconstexpr

◆ emplace()

template<typename Value, detail::PriorityQueueCompatible< Value > Con = container::Vector<Value>, concepts::StrictWeakOrder< Value > Comp = function::Compare>
template<typename... Args>
requires (concepts::ConstructibleFrom<Value, Args...>)
auto di::container::PriorityQueue< Value, Con, Comp >::emplace ( Args &&... args) -> decltype(auto)
inlineconstexpr

◆ empty()

template<typename Value, detail::PriorityQueueCompatible< Value > Con = container::Vector<Value>, concepts::StrictWeakOrder< Value > Comp = function::Compare>
auto di::container::PriorityQueue< Value, Con, Comp >::empty ( ) const -> bool
inlineconstexpr

◆ end()

template<typename Value, detail::PriorityQueueCompatible< Value > Con = container::Vector<Value>, concepts::StrictWeakOrder< Value > Comp = function::Compare>
auto di::container::PriorityQueue< Value, Con, Comp >::end ( )
inlineconstexpr

◆ pop()

template<typename Value, detail::PriorityQueueCompatible< Value > Con = container::Vector<Value>, concepts::StrictWeakOrder< Value > Comp = function::Compare>
auto di::container::PriorityQueue< Value, Con, Comp >::pop ( ) -> Optional<Value>
inlineconstexpr

◆ push() [1/2]

template<typename Value, detail::PriorityQueueCompatible< Value > Con = container::Vector<Value>, concepts::StrictWeakOrder< Value > Comp = function::Compare>
auto di::container::PriorityQueue< Value, Con, Comp >::push ( Value && value) -> decltype(auto)
inlineconstexpr

◆ push() [2/2]

template<typename Value, detail::PriorityQueueCompatible< Value > Con = container::Vector<Value>, concepts::StrictWeakOrder< Value > Comp = function::Compare>
auto di::container::PriorityQueue< Value, Con, Comp >::push ( Value const & value) -> decltype(auto) requires(concepts::CopyConstructible<Value>)
inlineconstexpr

◆ push_container()

template<typename Value, detail::PriorityQueueCompatible< Value > Con = container::Vector<Value>, concepts::StrictWeakOrder< Value > Comp = function::Compare>
template<concepts::ContainerCompatible< Value > Other>
auto di::container::PriorityQueue< Value, Con, Comp >::push_container ( Other && container)
inlineconstexpr

◆ size()

template<typename Value, detail::PriorityQueueCompatible< Value > Con = container::Vector<Value>, concepts::StrictWeakOrder< Value > Comp = function::Compare>
auto di::container::PriorityQueue< Value, Con, Comp >::size ( ) const
inlineconstexpr

◆ top() [1/2]

template<typename Value, detail::PriorityQueueCompatible< Value > Con = container::Vector<Value>, concepts::StrictWeakOrder< Value > Comp = function::Compare>
auto di::container::PriorityQueue< Value, Con, Comp >::top ( ) -> Optional<Value&>
inlineconstexpr

◆ top() [2/2]

template<typename Value, detail::PriorityQueueCompatible< Value > Con = container::Vector<Value>, concepts::StrictWeakOrder< Value > Comp = function::Compare>
auto di::container::PriorityQueue< Value, Con, Comp >::top ( ) const -> Optional<Value const&>
inlineconstexpr

Friends And Related Symbol Documentation

◆ tag_invoke [1/2]

template<typename Value, detail::PriorityQueueCompatible< Value > Con = container::Vector<Value>, concepts::StrictWeakOrder< Value > Comp = function::Compare>
friend auto tag_invoke ( types::Tag< util::clone > ,
PriorityQueue< Value, Con, Comp > const & self )
friend

◆ tag_invoke [2/2]

template<typename Value, detail::PriorityQueueCompatible< Value > Con = container::Vector<Value>, concepts::StrictWeakOrder< Value > Comp = function::Compare>
template<concepts::InputContainer Other>
requires (concepts::ContainerCompatible<Other, Value>)
friend auto tag_invoke ( types::Tag< util::create_in_place > ,
InPlaceType< PriorityQueue< Value, Con, Comp > > ,
Other && other,
Comp const & comp = {} )
friend

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