Boost  v1.57.0
doxygen for www.boost.org
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
boost::heap::d_ary_heap< T, A0, A1, A2, A3, A4, A5 > Class Template Reference

d-ary heap class More...

#include <d_ary_heap.hpp>

Inheritance diagram for boost::heap::d_ary_heap< T, A0, A1, A2, A3, A4, A5 >:
Collaboration diagram for boost::heap::d_ary_heap< T, A0, A1, A2, A3, A4, A5 >:

Public Types

typedef T value_type
 
typedef
implementation_defined::size_type 
size_type
 
typedef
implementation_defined::difference_type 
difference_type
 
typedef
implementation_defined::value_compare 
value_compare
 
typedef
implementation_defined::allocator_type 
allocator_type
 
typedef
implementation_defined::reference 
reference
 
typedef
implementation_defined::const_reference 
const_reference
 
typedef
implementation_defined::pointer 
pointer
 
typedef
implementation_defined::const_pointer 
const_pointer
 
typedef
implementation_defined::iterator 
iterator
 Note: The iterator does not traverse the priority queue in order of the priorities. More...
 
typedef
implementation_defined::const_iterator 
const_iterator
 
typedef
implementation_defined::ordered_iterator 
ordered_iterator
 
typedef
implementation_defined::handle_type 
handle_type
 
typedef T type
 

Public Member Functions

 d_ary_heap (value_compare const &cmp=value_compare())
 Effects: constructs an empty priority queue. More...
 
 d_ary_heap (d_ary_heap const &rhs)
 Effects: copy-constructs priority queue from rhs. More...
 
 d_ary_heap (d_ary_heap &&rhs)
 Effects: C++11-style move constructor. More...
 
d_ary_heapoperator= (d_ary_heap &&rhs)
 Effects: C++11-style move assignment. More...
 
d_ary_heapoperator= (d_ary_heap const &rhs)
 Effects: Assigns priority queue from rhs. More...
 
bool empty (void) const
 Effects: Returns true, if the priority queue contains no elements. More...
 
size_type size (void) const
 Effects: Returns the number of elements contained in the priority queue. More...
 
size_type max_size (void) const
 Effects: Returns the maximum number of elements the priority queue can contain. More...
 
void clear (void)
 Effects: Removes all elements from the priority queue. More...
 
allocator_type get_allocator (void) const
 Effects: Returns allocator. More...
 
value_type const & top (void) const
 Effects: Returns a const_reference to the maximum element. More...
 
mpl::if_c< is_mutable,
handle_type, void >::type 
push (value_type const &v)
 Effects: Adds a new element to the priority queue. More...
 
template<class... Args>
mpl::if_c< is_mutable,
handle_type, void >::type 
emplace (Args &&...args)
 Effects: Adds a new element to the priority queue. More...
 
template<typename HeapType >
bool operator< (HeapType const &rhs) const
 Returns: Element-wise comparison of heap data structures More...
 
template<typename HeapType >
bool operator> (HeapType const &rhs) const
 Returns: Element-wise comparison of heap data structures More...
 
template<typename HeapType >
bool operator>= (HeapType const &rhs) const
 Returns: Element-wise comparison of heap data structures More...
 
template<typename HeapType >
bool operator<= (HeapType const &rhs) const
 Returns: Element-wise comparison of heap data structures More...
 
template<typename HeapType >
bool operator== (HeapType const &rhs) const
 Equivalent comparison Returns: True, if both heap data structures are equivalent. More...
 
template<typename HeapType >
bool operator!= (HeapType const &rhs) const
 Equivalent comparison Returns: True, if both heap data structures are not equivalent. More...
 
void update (handle_type handle, const_reference v)
 Effects: Assigns v to the element handled by handle & updates the priority queue. More...
 
void update (handle_type handle)
 Effects: Updates the heap after the element handled by handle has been changed. More...
 
void increase (handle_type handle, const_reference v)
 Effects: Assigns v to the element handled by handle & updates the priority queue. More...
 
void increase (handle_type handle)
 Effects: Updates the heap after the element handled by handle has been changed. More...
 
void decrease (handle_type handle, const_reference v)
 Effects: Assigns v to the element handled by handle & updates the priority queue. More...
 
void decrease (handle_type handle)
 Effects: Updates the heap after the element handled by handle has been changed. More...
 
void erase (handle_type handle)
 Effects: Removes the element handled by handle from the priority_queue. More...
 
void pop (void)
 Effects: Removes the top element from the priority queue. More...
 
void swap (d_ary_heap &rhs)
 Effects: Swaps two priority queues. More...
 
const_iterator begin (void) const
 Effects: Returns an iterator to the first element contained in the priority queue. More...
 
iterator begin (void)
 Effects: Returns an iterator to the first element contained in the priority queue. More...
 
iterator end (void)
 Effects: Returns an iterator to the end of the priority queue. More...
 
const_iterator end (void) const
 Effects: Returns an iterator to the end of the priority queue. More...
 
ordered_iterator ordered_begin (void) const
 Effects: Returns an ordered iterator to the first element contained in the priority queue. More...
 
ordered_iterator ordered_end (void) const
 Effects: Returns an ordered iterator to the end of the priority queue. More...
 
void reserve (size_type element_count)
 Effects: Reserves memory for element_count elements More...
 
value_compare const & value_comp (void) const
 Effect: Returns the value_compare object used by the priority queue More...
 

Static Public Member Functions

static handle_type s_handle_from_iterator (iterator const &it)
 Effects: Casts an iterator to a node handle. More...
 

Static Public Attributes

static const bool constant_time_size = true
 
static const bool has_ordered_iterators = true
 
static const bool is_mergable = false
 
static const bool has_reserve = true
 
static const bool is_stable = super_t::is_stable
 

Friends

template<typename Heap1 , typename Heap2 >
struct heap_merge_emulate
 

Detailed Description

template<typename T, class A0 = boost::parameter::void_, class A1 = boost::parameter::void_, class A2 = boost::parameter::void_, class A3 = boost::parameter::void_, class A4 = boost::parameter::void_, class A5 = boost::parameter::void_>
class boost::heap::d_ary_heap< T, A0, A1, A2, A3, A4, A5 >

d-ary heap class

This class implements an immutable priority queue. Internally, the d-ary heap is represented as dynamically sized array (std::vector), that directly stores the values.

The template parameter T is the type to be managed by the container. The user can specify additional options and if no options are provided default options are used.

The container supports the following options:

  • boost::heap::arity<>, required
  • boost::heap::compare<>, defaults to compare<std::less<T> >
  • boost::heap::stable<>, defaults to stable<false>
  • boost::heap::stability_counter_type<>, defaults to stability_counter_type<boost::uintmax_t>
  • boost::heap::allocator<>, defaults to allocator<std::allocator<T> >
  • boost::heap::mutable_<>, defaults to mutable_<false>

Member Typedef Documentation

template<typename T , class A0 = boost::parameter::void_, class A1 = boost::parameter::void_, class A2 = boost::parameter::void_, class A3 = boost::parameter::void_, class A4 = boost::parameter::void_, class A5 = boost::parameter::void_>
typedef implementation_defined::allocator_type boost::heap::d_ary_heap< T, A0, A1, A2, A3, A4, A5 >::allocator_type
template<typename T , class A0 = boost::parameter::void_, class A1 = boost::parameter::void_, class A2 = boost::parameter::void_, class A3 = boost::parameter::void_, class A4 = boost::parameter::void_, class A5 = boost::parameter::void_>
typedef implementation_defined::const_iterator boost::heap::d_ary_heap< T, A0, A1, A2, A3, A4, A5 >::const_iterator
template<typename T , class A0 = boost::parameter::void_, class A1 = boost::parameter::void_, class A2 = boost::parameter::void_, class A3 = boost::parameter::void_, class A4 = boost::parameter::void_, class A5 = boost::parameter::void_>
typedef implementation_defined::const_pointer boost::heap::d_ary_heap< T, A0, A1, A2, A3, A4, A5 >::const_pointer
template<typename T , class A0 = boost::parameter::void_, class A1 = boost::parameter::void_, class A2 = boost::parameter::void_, class A3 = boost::parameter::void_, class A4 = boost::parameter::void_, class A5 = boost::parameter::void_>
typedef implementation_defined::const_reference boost::heap::d_ary_heap< T, A0, A1, A2, A3, A4, A5 >::const_reference
template<typename T , class A0 = boost::parameter::void_, class A1 = boost::parameter::void_, class A2 = boost::parameter::void_, class A3 = boost::parameter::void_, class A4 = boost::parameter::void_, class A5 = boost::parameter::void_>
typedef implementation_defined::difference_type boost::heap::d_ary_heap< T, A0, A1, A2, A3, A4, A5 >::difference_type
template<typename T , class A0 = boost::parameter::void_, class A1 = boost::parameter::void_, class A2 = boost::parameter::void_, class A3 = boost::parameter::void_, class A4 = boost::parameter::void_, class A5 = boost::parameter::void_>
typedef implementation_defined::handle_type boost::heap::d_ary_heap< T, A0, A1, A2, A3, A4, A5 >::handle_type
template<typename T , class A0 = boost::parameter::void_, class A1 = boost::parameter::void_, class A2 = boost::parameter::void_, class A3 = boost::parameter::void_, class A4 = boost::parameter::void_, class A5 = boost::parameter::void_>
typedef implementation_defined::iterator boost::heap::d_ary_heap< T, A0, A1, A2, A3, A4, A5 >::iterator

Note: The iterator does not traverse the priority queue in order of the priorities.

template<typename T , class A0 = boost::parameter::void_, class A1 = boost::parameter::void_, class A2 = boost::parameter::void_, class A3 = boost::parameter::void_, class A4 = boost::parameter::void_, class A5 = boost::parameter::void_>
typedef implementation_defined::ordered_iterator boost::heap::d_ary_heap< T, A0, A1, A2, A3, A4, A5 >::ordered_iterator
template<typename T , class A0 = boost::parameter::void_, class A1 = boost::parameter::void_, class A2 = boost::parameter::void_, class A3 = boost::parameter::void_, class A4 = boost::parameter::void_, class A5 = boost::parameter::void_>
typedef implementation_defined::pointer boost::heap::d_ary_heap< T, A0, A1, A2, A3, A4, A5 >::pointer
template<typename T , class A0 = boost::parameter::void_, class A1 = boost::parameter::void_, class A2 = boost::parameter::void_, class A3 = boost::parameter::void_, class A4 = boost::parameter::void_, class A5 = boost::parameter::void_>
typedef implementation_defined::reference boost::heap::d_ary_heap< T, A0, A1, A2, A3, A4, A5 >::reference
template<typename T , class A0 = boost::parameter::void_, class A1 = boost::parameter::void_, class A2 = boost::parameter::void_, class A3 = boost::parameter::void_, class A4 = boost::parameter::void_, class A5 = boost::parameter::void_>
typedef implementation_defined::size_type boost::heap::d_ary_heap< T, A0, A1, A2, A3, A4, A5 >::size_type
typedef T boost::mpl::identity< BOOST_MPL_AUX_NA_PARAM >::type
inherited
template<typename T , class A0 = boost::parameter::void_, class A1 = boost::parameter::void_, class A2 = boost::parameter::void_, class A3 = boost::parameter::void_, class A4 = boost::parameter::void_, class A5 = boost::parameter::void_>
typedef implementation_defined::value_compare boost::heap::d_ary_heap< T, A0, A1, A2, A3, A4, A5 >::value_compare
template<typename T , class A0 = boost::parameter::void_, class A1 = boost::parameter::void_, class A2 = boost::parameter::void_, class A3 = boost::parameter::void_, class A4 = boost::parameter::void_, class A5 = boost::parameter::void_>
typedef T boost::heap::d_ary_heap< T, A0, A1, A2, A3, A4, A5 >::value_type

Constructor & Destructor Documentation

template<typename T , class A0 = boost::parameter::void_, class A1 = boost::parameter::void_, class A2 = boost::parameter::void_, class A3 = boost::parameter::void_, class A4 = boost::parameter::void_, class A5 = boost::parameter::void_>
boost::heap::d_ary_heap< T, A0, A1, A2, A3, A4, A5 >::d_ary_heap ( value_compare const &  cmp = value_compare())
inlineexplicit

Effects: constructs an empty priority queue.

Complexity: Constant.

template<typename T , class A0 = boost::parameter::void_, class A1 = boost::parameter::void_, class A2 = boost::parameter::void_, class A3 = boost::parameter::void_, class A4 = boost::parameter::void_, class A5 = boost::parameter::void_>
boost::heap::d_ary_heap< T, A0, A1, A2, A3, A4, A5 >::d_ary_heap ( d_ary_heap< T, A0, A1, A2, A3, A4, A5 > const &  rhs)
inline

Effects: copy-constructs priority queue from rhs.

Complexity: Linear.

template<typename T , class A0 = boost::parameter::void_, class A1 = boost::parameter::void_, class A2 = boost::parameter::void_, class A3 = boost::parameter::void_, class A4 = boost::parameter::void_, class A5 = boost::parameter::void_>
boost::heap::d_ary_heap< T, A0, A1, A2, A3, A4, A5 >::d_ary_heap ( d_ary_heap< T, A0, A1, A2, A3, A4, A5 > &&  rhs)
inline

Effects: C++11-style move constructor.

Complexity: Constant.

Note: Only available, if BOOST_NO_CXX11_RVALUE_REFERENCES is not defined

Member Function Documentation

template<typename T , class A0 = boost::parameter::void_, class A1 = boost::parameter::void_, class A2 = boost::parameter::void_, class A3 = boost::parameter::void_, class A4 = boost::parameter::void_, class A5 = boost::parameter::void_>
const_iterator boost::heap::d_ary_heap< T, A0, A1, A2, A3, A4, A5 >::begin ( void  ) const
inline

Effects: Returns an iterator to the first element contained in the priority queue.

Complexity: Constant.

References boost::asio::begin.

template<typename T , class A0 = boost::parameter::void_, class A1 = boost::parameter::void_, class A2 = boost::parameter::void_, class A3 = boost::parameter::void_, class A4 = boost::parameter::void_, class A5 = boost::parameter::void_>
iterator boost::heap::d_ary_heap< T, A0, A1, A2, A3, A4, A5 >::begin ( void  )
inline

Effects: Returns an iterator to the first element contained in the priority queue.

Complexity: Constant.

References boost::asio::begin.

template<typename T , class A0 = boost::parameter::void_, class A1 = boost::parameter::void_, class A2 = boost::parameter::void_, class A3 = boost::parameter::void_, class A4 = boost::parameter::void_, class A5 = boost::parameter::void_>
void boost::heap::d_ary_heap< T, A0, A1, A2, A3, A4, A5 >::clear ( void  )
inline

Effects: Removes all elements from the priority queue.

Complexity: Linear.

References boost::fusion::clear().

template<typename T , class A0 = boost::parameter::void_, class A1 = boost::parameter::void_, class A2 = boost::parameter::void_, class A3 = boost::parameter::void_, class A4 = boost::parameter::void_, class A5 = boost::parameter::void_>
void boost::heap::d_ary_heap< T, A0, A1, A2, A3, A4, A5 >::decrease ( handle_type  handle,
const_reference  v 
)
inline

Effects: Assigns v to the element handled by handle & updates the priority queue.

Complexity: Logarithmic.

Note: The new value is expected to be less than the current one

Requirement: data structure must be configured as mutable

References boost::BOOST_STATIC_ASSERT().

template<typename T , class A0 = boost::parameter::void_, class A1 = boost::parameter::void_, class A2 = boost::parameter::void_, class A3 = boost::parameter::void_, class A4 = boost::parameter::void_, class A5 = boost::parameter::void_>
void boost::heap::d_ary_heap< T, A0, A1, A2, A3, A4, A5 >::decrease ( handle_type  handle)
inline

Effects: Updates the heap after the element handled by handle has been changed.

Complexity: Logarithmic.

Note: The new value is expected to be less than the current one. If this is not called, after a handle has been updated, the behavior of the data structure is undefined!

Requirement: data structure must be configured as mutable

References boost::BOOST_STATIC_ASSERT().

template<typename T , class A0 = boost::parameter::void_, class A1 = boost::parameter::void_, class A2 = boost::parameter::void_, class A3 = boost::parameter::void_, class A4 = boost::parameter::void_, class A5 = boost::parameter::void_>
template<class... Args>
mpl::if_c<is_mutable, handle_type, void>::type boost::heap::d_ary_heap< T, A0, A1, A2, A3, A4, A5 >::emplace ( Args &&...  args)
inline

Effects: Adds a new element to the priority queue.

The element is directly constructed in-place.

Complexity: Logarithmic (amortized). Linear (worst case).

References boost::python::args().

template<typename T , class A0 = boost::parameter::void_, class A1 = boost::parameter::void_, class A2 = boost::parameter::void_, class A3 = boost::parameter::void_, class A4 = boost::parameter::void_, class A5 = boost::parameter::void_>
bool boost::heap::d_ary_heap< T, A0, A1, A2, A3, A4, A5 >::empty ( void  ) const
inline

Effects: Returns true, if the priority queue contains no elements.

Complexity: Constant.

References empty().

template<typename T , class A0 = boost::parameter::void_, class A1 = boost::parameter::void_, class A2 = boost::parameter::void_, class A3 = boost::parameter::void_, class A4 = boost::parameter::void_, class A5 = boost::parameter::void_>
iterator boost::heap::d_ary_heap< T, A0, A1, A2, A3, A4, A5 >::end ( void  )
inline

Effects: Returns an iterator to the end of the priority queue.

Complexity: Constant.

References boost::asio::end.

template<typename T , class A0 = boost::parameter::void_, class A1 = boost::parameter::void_, class A2 = boost::parameter::void_, class A3 = boost::parameter::void_, class A4 = boost::parameter::void_, class A5 = boost::parameter::void_>
const_iterator boost::heap::d_ary_heap< T, A0, A1, A2, A3, A4, A5 >::end ( void  ) const
inline

Effects: Returns an iterator to the end of the priority queue.

Complexity: Constant.

References boost::asio::end.

template<typename T , class A0 = boost::parameter::void_, class A1 = boost::parameter::void_, class A2 = boost::parameter::void_, class A3 = boost::parameter::void_, class A4 = boost::parameter::void_, class A5 = boost::parameter::void_>
void boost::heap::d_ary_heap< T, A0, A1, A2, A3, A4, A5 >::erase ( handle_type  handle)
inline

Effects: Removes the element handled by handle from the priority_queue.

Complexity: Logarithmic.

Requirement: data structure must be configured as mutable

References boost::BOOST_STATIC_ASSERT(), and boost::fusion::erase().

template<typename T , class A0 = boost::parameter::void_, class A1 = boost::parameter::void_, class A2 = boost::parameter::void_, class A3 = boost::parameter::void_, class A4 = boost::parameter::void_, class A5 = boost::parameter::void_>
allocator_type boost::heap::d_ary_heap< T, A0, A1, A2, A3, A4, A5 >::get_allocator ( void  ) const
inline

Effects: Returns allocator.

Complexity: Constant.

template<typename T , class A0 = boost::parameter::void_, class A1 = boost::parameter::void_, class A2 = boost::parameter::void_, class A3 = boost::parameter::void_, class A4 = boost::parameter::void_, class A5 = boost::parameter::void_>
void boost::heap::d_ary_heap< T, A0, A1, A2, A3, A4, A5 >::increase ( handle_type  handle,
const_reference  v 
)
inline

Effects: Assigns v to the element handled by handle & updates the priority queue.

Complexity: Logarithmic.

Note: The new value is expected to be greater than the current one

Requirement: data structure must be configured as mutable

References boost::BOOST_STATIC_ASSERT().

template<typename T , class A0 = boost::parameter::void_, class A1 = boost::parameter::void_, class A2 = boost::parameter::void_, class A3 = boost::parameter::void_, class A4 = boost::parameter::void_, class A5 = boost::parameter::void_>
void boost::heap::d_ary_heap< T, A0, A1, A2, A3, A4, A5 >::increase ( handle_type  handle)
inline

Effects: Updates the heap after the element handled by handle has been changed.

Complexity: Logarithmic.

Note: The new value is expected to be greater than the current one. If this is not called, after a handle has been updated, the behavior of the data structure is undefined!

Requirement: data structure must be configured as mutable

References boost::BOOST_STATIC_ASSERT().

template<typename T , class A0 = boost::parameter::void_, class A1 = boost::parameter::void_, class A2 = boost::parameter::void_, class A3 = boost::parameter::void_, class A4 = boost::parameter::void_, class A5 = boost::parameter::void_>
size_type boost::heap::d_ary_heap< T, A0, A1, A2, A3, A4, A5 >::max_size ( void  ) const
inline

Effects: Returns the maximum number of elements the priority queue can contain.

Complexity: Constant.

template<typename T , class A0 = boost::parameter::void_, class A1 = boost::parameter::void_, class A2 = boost::parameter::void_, class A3 = boost::parameter::void_, class A4 = boost::parameter::void_, class A5 = boost::parameter::void_>
template<typename HeapType >
bool boost::heap::d_ary_heap< T, A0, A1, A2, A3, A4, A5 >::operator!= ( HeapType const &  rhs) const
inline

Equivalent comparison Returns: True, if both heap data structures are not equivalent.

Requirement: the value_compare object of both heaps must match.

template<typename T , class A0 = boost::parameter::void_, class A1 = boost::parameter::void_, class A2 = boost::parameter::void_, class A3 = boost::parameter::void_, class A4 = boost::parameter::void_, class A5 = boost::parameter::void_>
template<typename HeapType >
bool boost::heap::d_ary_heap< T, A0, A1, A2, A3, A4, A5 >::operator< ( HeapType const &  rhs) const
inline

Returns: Element-wise comparison of heap data structures

Requirement: the value_compare object of both heaps must match.

Referenced by boost::heap::d_ary_heap< T, A0, A1, A2, A3, A4, A5 >::operator>=().

template<typename T , class A0 = boost::parameter::void_, class A1 = boost::parameter::void_, class A2 = boost::parameter::void_, class A3 = boost::parameter::void_, class A4 = boost::parameter::void_, class A5 = boost::parameter::void_>
template<typename HeapType >
bool boost::heap::d_ary_heap< T, A0, A1, A2, A3, A4, A5 >::operator<= ( HeapType const &  rhs) const
inline

Returns: Element-wise comparison of heap data structures

Requirement: the value_compare object of both heaps must match.

References boost::heap::d_ary_heap< T, A0, A1, A2, A3, A4, A5 >::operator>().

template<typename T , class A0 = boost::parameter::void_, class A1 = boost::parameter::void_, class A2 = boost::parameter::void_, class A3 = boost::parameter::void_, class A4 = boost::parameter::void_, class A5 = boost::parameter::void_>
d_ary_heap& boost::heap::d_ary_heap< T, A0, A1, A2, A3, A4, A5 >::operator= ( d_ary_heap< T, A0, A1, A2, A3, A4, A5 > &&  rhs)
inline

Effects: C++11-style move assignment.

Complexity: Constant.

Note: Only available, if BOOST_NO_CXX11_RVALUE_REFERENCES is not defined

References boost::fusion::move(), and boost::multiprecision::backends::operator=().

template<typename T , class A0 = boost::parameter::void_, class A1 = boost::parameter::void_, class A2 = boost::parameter::void_, class A3 = boost::parameter::void_, class A4 = boost::parameter::void_, class A5 = boost::parameter::void_>
d_ary_heap& boost::heap::d_ary_heap< T, A0, A1, A2, A3, A4, A5 >::operator= ( d_ary_heap< T, A0, A1, A2, A3, A4, A5 > const &  rhs)
inline

Effects: Assigns priority queue from rhs.

Complexity: Linear.

References boost::multiprecision::backends::operator=().

template<typename T , class A0 = boost::parameter::void_, class A1 = boost::parameter::void_, class A2 = boost::parameter::void_, class A3 = boost::parameter::void_, class A4 = boost::parameter::void_, class A5 = boost::parameter::void_>
template<typename HeapType >
bool boost::heap::d_ary_heap< T, A0, A1, A2, A3, A4, A5 >::operator== ( HeapType const &  rhs) const
inline

Equivalent comparison Returns: True, if both heap data structures are equivalent.

Requirement: the value_compare object of both heaps must match.

template<typename T , class A0 = boost::parameter::void_, class A1 = boost::parameter::void_, class A2 = boost::parameter::void_, class A3 = boost::parameter::void_, class A4 = boost::parameter::void_, class A5 = boost::parameter::void_>
template<typename HeapType >
bool boost::heap::d_ary_heap< T, A0, A1, A2, A3, A4, A5 >::operator> ( HeapType const &  rhs) const
inline

Returns: Element-wise comparison of heap data structures

Requirement: the value_compare object of both heaps must match.

Referenced by boost::heap::d_ary_heap< T, A0, A1, A2, A3, A4, A5 >::operator<=().

template<typename T , class A0 = boost::parameter::void_, class A1 = boost::parameter::void_, class A2 = boost::parameter::void_, class A3 = boost::parameter::void_, class A4 = boost::parameter::void_, class A5 = boost::parameter::void_>
template<typename HeapType >
bool boost::heap::d_ary_heap< T, A0, A1, A2, A3, A4, A5 >::operator>= ( HeapType const &  rhs) const
inline

Returns: Element-wise comparison of heap data structures

Requirement: the value_compare object of both heaps must match.

References boost::heap::d_ary_heap< T, A0, A1, A2, A3, A4, A5 >::operator<().

template<typename T , class A0 = boost::parameter::void_, class A1 = boost::parameter::void_, class A2 = boost::parameter::void_, class A3 = boost::parameter::void_, class A4 = boost::parameter::void_, class A5 = boost::parameter::void_>
ordered_iterator boost::heap::d_ary_heap< T, A0, A1, A2, A3, A4, A5 >::ordered_begin ( void  ) const
inline

Effects: Returns an ordered iterator to the first element contained in the priority queue.

Note: Ordered iterators traverse the priority queue in heap order.

template<typename T , class A0 = boost::parameter::void_, class A1 = boost::parameter::void_, class A2 = boost::parameter::void_, class A3 = boost::parameter::void_, class A4 = boost::parameter::void_, class A5 = boost::parameter::void_>
ordered_iterator boost::heap::d_ary_heap< T, A0, A1, A2, A3, A4, A5 >::ordered_end ( void  ) const
inline

Effects: Returns an ordered iterator to the end of the priority queue.

Note: Ordered iterators traverse the priority queue in heap order.

template<typename T , class A0 = boost::parameter::void_, class A1 = boost::parameter::void_, class A2 = boost::parameter::void_, class A3 = boost::parameter::void_, class A4 = boost::parameter::void_, class A5 = boost::parameter::void_>
void boost::heap::d_ary_heap< T, A0, A1, A2, A3, A4, A5 >::pop ( void  )
inline

Effects: Removes the top element from the priority queue.

Complexity: Logarithmic (amortized). Linear (worst case).

References boost::xpressive::pop.

template<typename T , class A0 = boost::parameter::void_, class A1 = boost::parameter::void_, class A2 = boost::parameter::void_, class A3 = boost::parameter::void_, class A4 = boost::parameter::void_, class A5 = boost::parameter::void_>
mpl::if_c<is_mutable, handle_type, void>::type boost::heap::d_ary_heap< T, A0, A1, A2, A3, A4, A5 >::push ( value_type const &  v)
inline

Effects: Adds a new element to the priority queue.

Complexity: Logarithmic (amortized). Linear (worst case).

References boost::xpressive::push.

template<typename T , class A0 = boost::parameter::void_, class A1 = boost::parameter::void_, class A2 = boost::parameter::void_, class A3 = boost::parameter::void_, class A4 = boost::parameter::void_, class A5 = boost::parameter::void_>
void boost::heap::d_ary_heap< T, A0, A1, A2, A3, A4, A5 >::reserve ( size_type  element_count)
inline

Effects: Reserves memory for element_count elements

Complexity: Linear.

Node: Invalidates iterators

template<typename T , class A0 = boost::parameter::void_, class A1 = boost::parameter::void_, class A2 = boost::parameter::void_, class A3 = boost::parameter::void_, class A4 = boost::parameter::void_, class A5 = boost::parameter::void_>
static handle_type boost::heap::d_ary_heap< T, A0, A1, A2, A3, A4, A5 >::s_handle_from_iterator ( iterator const &  it)
inlinestatic

Effects: Casts an iterator to a node handle.

Complexity: Constant.

Requirement: data structure must be configured as mutable

References boost::BOOST_STATIC_ASSERT().

template<typename T , class A0 = boost::parameter::void_, class A1 = boost::parameter::void_, class A2 = boost::parameter::void_, class A3 = boost::parameter::void_, class A4 = boost::parameter::void_, class A5 = boost::parameter::void_>
size_type boost::heap::d_ary_heap< T, A0, A1, A2, A3, A4, A5 >::size ( void  ) const
inline

Effects: Returns the number of elements contained in the priority queue.

Complexity: Constant.

References boost::fusion::size().

template<typename T , class A0 = boost::parameter::void_, class A1 = boost::parameter::void_, class A2 = boost::parameter::void_, class A3 = boost::parameter::void_, class A4 = boost::parameter::void_, class A5 = boost::parameter::void_>
void boost::heap::d_ary_heap< T, A0, A1, A2, A3, A4, A5 >::swap ( d_ary_heap< T, A0, A1, A2, A3, A4, A5 > &  rhs)
inline

Effects: Swaps two priority queues.

Complexity: Constant.

References boost::swap.

template<typename T , class A0 = boost::parameter::void_, class A1 = boost::parameter::void_, class A2 = boost::parameter::void_, class A3 = boost::parameter::void_, class A4 = boost::parameter::void_, class A5 = boost::parameter::void_>
value_type const& boost::heap::d_ary_heap< T, A0, A1, A2, A3, A4, A5 >::top ( void  ) const
inline

Effects: Returns a const_reference to the maximum element.

Complexity: Constant.

References boost::xpressive::top.

template<typename T , class A0 = boost::parameter::void_, class A1 = boost::parameter::void_, class A2 = boost::parameter::void_, class A3 = boost::parameter::void_, class A4 = boost::parameter::void_, class A5 = boost::parameter::void_>
void boost::heap::d_ary_heap< T, A0, A1, A2, A3, A4, A5 >::update ( handle_type  handle,
const_reference  v 
)
inline

Effects: Assigns v to the element handled by handle & updates the priority queue.

Complexity: Logarithmic.

Requirement: data structure must be configured as mutable

References boost::BOOST_STATIC_ASSERT().

template<typename T , class A0 = boost::parameter::void_, class A1 = boost::parameter::void_, class A2 = boost::parameter::void_, class A3 = boost::parameter::void_, class A4 = boost::parameter::void_, class A5 = boost::parameter::void_>
void boost::heap::d_ary_heap< T, A0, A1, A2, A3, A4, A5 >::update ( handle_type  handle)
inline

Effects: Updates the heap after the element handled by handle has been changed.

Complexity: Logarithmic.

Note: If this is not called, after a handle has been updated, the behavior of the data structure is undefined!

Requirement: data structure must be configured as mutable

References boost::BOOST_STATIC_ASSERT().

template<typename T , class A0 = boost::parameter::void_, class A1 = boost::parameter::void_, class A2 = boost::parameter::void_, class A3 = boost::parameter::void_, class A4 = boost::parameter::void_, class A5 = boost::parameter::void_>
value_compare const& boost::heap::d_ary_heap< T, A0, A1, A2, A3, A4, A5 >::value_comp ( void  ) const
inline

Effect: Returns the value_compare object used by the priority queue

Friends And Related Function Documentation

template<typename T , class A0 = boost::parameter::void_, class A1 = boost::parameter::void_, class A2 = boost::parameter::void_, class A3 = boost::parameter::void_, class A4 = boost::parameter::void_, class A5 = boost::parameter::void_>
template<typename Heap1 , typename Heap2 >
friend struct heap_merge_emulate
friend

Member Data Documentation

template<typename T , class A0 = boost::parameter::void_, class A1 = boost::parameter::void_, class A2 = boost::parameter::void_, class A3 = boost::parameter::void_, class A4 = boost::parameter::void_, class A5 = boost::parameter::void_>
const bool boost::heap::d_ary_heap< T, A0, A1, A2, A3, A4, A5 >::constant_time_size = true
static
template<typename T , class A0 = boost::parameter::void_, class A1 = boost::parameter::void_, class A2 = boost::parameter::void_, class A3 = boost::parameter::void_, class A4 = boost::parameter::void_, class A5 = boost::parameter::void_>
const bool boost::heap::d_ary_heap< T, A0, A1, A2, A3, A4, A5 >::has_ordered_iterators = true
static
template<typename T , class A0 = boost::parameter::void_, class A1 = boost::parameter::void_, class A2 = boost::parameter::void_, class A3 = boost::parameter::void_, class A4 = boost::parameter::void_, class A5 = boost::parameter::void_>
const bool boost::heap::d_ary_heap< T, A0, A1, A2, A3, A4, A5 >::has_reserve = true
static
template<typename T , class A0 = boost::parameter::void_, class A1 = boost::parameter::void_, class A2 = boost::parameter::void_, class A3 = boost::parameter::void_, class A4 = boost::parameter::void_, class A5 = boost::parameter::void_>
const bool boost::heap::d_ary_heap< T, A0, A1, A2, A3, A4, A5 >::is_mergable = false
static
template<typename T , class A0 = boost::parameter::void_, class A1 = boost::parameter::void_, class A2 = boost::parameter::void_, class A3 = boost::parameter::void_, class A4 = boost::parameter::void_, class A5 = boost::parameter::void_>
const bool boost::heap::d_ary_heap< T, A0, A1, A2, A3, A4, A5 >::is_stable = super_t::is_stable
static

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