MeshLib C++ Docs
Loading...
Searching...
No Matches
MR::PriorityQueue< T, P > Class Template Reference

similar to std::priority_queue, but with ability to access underlying vector to custom modify its elements More...

#include <MRPriorityQueue.h>

Public Types

using value_type = T
 
using Container = std::vector<T>
 
using size_type = typename Container::size_type
 

Public Member Functions

 PriorityQueue ()
 constructs empty queue
 
 PriorityQueue (const P &pred)
 
 PriorityQueue (const P &pred, Container &&v)
 initializes queue elements from given vector
 
bool empty () const
 checks if the queue has no elements
 
size_type size () const
 returns the number of elements
 
const T & top () const
 accesses the top element
 
void push (const value_type &value)
 inserts element in the queue
 
void push (value_type &&value)
 
template<class... Args>
void emplace (Args &&... args)
 
void pop ()
 removes the top element from the priority queue
 

Public Attributes

Container c
 

Detailed Description

template<typename T, typename P = std::less<T>>
class MR::PriorityQueue< T, P >

similar to std::priority_queue, but with ability to access underlying vector to custom modify its elements

Member Typedef Documentation

◆ Container

template<typename T , typename P = std::less<T>>
using MR::PriorityQueue< T, P >::Container = std::vector<T>

◆ size_type

template<typename T , typename P = std::less<T>>
using MR::PriorityQueue< T, P >::size_type = typename Container::size_type

◆ value_type

template<typename T , typename P = std::less<T>>
using MR::PriorityQueue< T, P >::value_type = T

Constructor & Destructor Documentation

◆ PriorityQueue() [1/3]

template<typename T , typename P = std::less<T>>
MR::PriorityQueue< T, P >::PriorityQueue ( )
inline

constructs empty queue

◆ PriorityQueue() [2/3]

template<typename T , typename P = std::less<T>>
MR::PriorityQueue< T, P >::PriorityQueue ( const P & pred)
inlineexplicit

◆ PriorityQueue() [3/3]

template<typename T , typename P >
MR::PriorityQueue< T, P >::PriorityQueue ( const P & pred,
Container && v )
explicit

initializes queue elements from given vector

Member Function Documentation

◆ emplace()

template<typename T , typename P = std::less<T>>
template<class... Args>
void MR::PriorityQueue< T, P >::emplace ( Args &&... args)
inline

◆ empty()

template<typename T , typename P = std::less<T>>
bool MR::PriorityQueue< T, P >::empty ( ) const
inline

checks if the queue has no elements

◆ pop()

template<typename T , typename P = std::less<T>>
void MR::PriorityQueue< T, P >::pop ( )
inline

removes the top element from the priority queue

◆ push() [1/2]

template<typename T , typename P = std::less<T>>
void MR::PriorityQueue< T, P >::push ( const value_type & value)
inline

inserts element in the queue

◆ push() [2/2]

template<typename T , typename P = std::less<T>>
void MR::PriorityQueue< T, P >::push ( value_type && value)
inline

◆ size()

template<typename T , typename P = std::less<T>>
size_type MR::PriorityQueue< T, P >::size ( ) const
inline

returns the number of elements

◆ top()

template<typename T , typename P = std::less<T>>
const T & MR::PriorityQueue< T, P >::top ( ) const
inline

accesses the top element

Member Data Documentation

◆ c

template<typename T , typename P = std::less<T>>
Container MR::PriorityQueue< T, P >::c

intentionally left public to allow user access to it, but the user is responsible for restore heap-property of this vector before calling of any method


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