50#ifndef GUM_PRIORITY_QUEUE_H
51#define GUM_PRIORITY_QUEUE_H
63#include <initializer_list>
68#define GUM_PRIORITY_QUEUE_DEFAULT_CAPACITY 10
71 template <
typename Val,
typename Priority,
typename Cmp >
73 template <
typename Val,
typename Priority,
typename Cmp >
99 template <
typename Val,
typename Priority,
typename Cmp,
bool Gen >
282 template < typename... Args >
444#ifndef DOXYGEN_SHOULD_SKIP_THIS
469 template <
typename Val,
typename Priority,
typename Cmp >
586 bool empty()
const noexcept;
597 const Val&
top()
const;
653 template <
typename... Args >
726 void setPriority(Val elt,
const Priority& new_priority);
734 void setPriority(Val elt, Priority&& new_priority);
745 const Priority&
priority(Val elt)
const;
803 std::vector< std::pair< Priority, Val > >
_heap_;
882 template <
typename Val,
typename Priority =
int,
typename Cmp = std::less< Priority > >
924 explicit PriorityQueue(std::initializer_list< std::pair< Val, Priority > > list);
974#ifndef GUM_NO_EXTERN_TEMPLATE_CLASS
The class for generic Hash Tables.
The internal class for representing priority queues.
const Val & operator[](Size index_elt) const
Returns the element at index "index_elt" from the priority queue.
void erase(const Val &val)
std::ptrdiff_t difference_type
Types for STL compliance.
Size emplace(Args &&... args)
void setPriority(const Val &elt, const Priority &new_priority)
Size size() const noexcept
Returns the number of elements in the priority queue.
PriorityQueueImplementation(PriorityQueueImplementation< Val, Priority, Cmp, Gen > &&from)
Move constructor.
PriorityQueueImplementation< Val, Priority, Cmp, Gen > & operator=(PriorityQueueImplementation< Val, Priority, Cmp, Gen > &&from)
Move operator.
~PriorityQueueImplementation()
Class destructor.
const Val * const_pointer
Types for STL compliance.
PriorityQueueImplementation(std::initializer_list< std::pair< Val, Priority > > list)
Initializer list constructor.
bool empty() const noexcept
const Priority & priority(const Val &elt) const
void eraseByPos(Size index)
std::string toString() const
void resize(Size new_size)
PriorityQueueImplementation< Val, Priority, Cmp, Gen > & operator=(const PriorityQueueImplementation< Val, Priority, Cmp, Gen > &from)
Copy operator.
Size insert(const Val &val, const Priority &priority)
const Priority & priorityByPos(Size index) const
Size capacity() const noexcept
Val value_type
Types for STL compliance.
PriorityQueueImplementation(const PriorityQueueImplementation< Val, Priority, Cmp, Gen > &from)
Copy constructor.
Val & reference
Types for STL compliance.
PriorityQueueImplementation(Cmp compare, Size capacity)
Basic constructor.
HashTable< Val, Size > _indices_
std::vector< std::pair< Priority, const Val * > > _heap_
friend class PriorityQueue< Val, Priority, Cmp >
bool contains(const Val &val) const
const HashTable< Val, Size > & allValues() const noexcept
Size setPriorityByPos(Size index, const Priority &new_priority)
const Val & const_reference
Types for STL compliance.
Val * pointer
Types for STL compliance.
const Priority & topPriority() const
A priorityQueue is a heap in which each element has a mutable priority.
PriorityQueue< Val, Priority, Cmp > & operator=(const PriorityQueue< Val, Priority, Cmp > &from)
Copy operator.
PriorityQueue(Cmp compare=Cmp(), Size capacity=GUM_PRIORITY_QUEUE_DEFAULT_CAPACITY)
Basic constructor.
PriorityQueueImplementation< Val, Priority, Cmp, std::is_scalar< Val >::value > Implementation
const Val * const_pointer
Types for STL compliance.
Val & reference
Types for STL compliance.
const Val & const_reference
Types for STL compliance.
std::ptrdiff_t difference_type
Types for STL compliance.
~PriorityQueue()
Class destructor.
Val value_type
Types for STL compliance.
Val * pointer
Types for STL compliance.
std::size_t Size
In aGrUM, hashed values are unsigned long int.
Class hash tables iterators.
gum is the global namespace for all aGrUM entities
std::ostream & operator<<(std::ostream &stream, const AVLTree< Val, Cmp > &tree)
display the content of a tree
#define GUM_PRIORITY_QUEUE_DEFAULT_CAPACITY
template implementations of priority queues
static constexpr Size default_size
The default number of slots in hashtables.