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

skew heap More...

#include <skew_heap.hpp>

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

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 mpl::if_c< is_mutable,
typename
implementation_defined::handle_type,
void * >::type 
handle_type
 

Public Member Functions

 skew_heap (value_compare const &cmp=value_compare())
 Effects: constructs an empty priority queue. More...
 
 skew_heap (skew_heap const &rhs)
 Effects: copy-constructs priority queue from rhs. More...
 
skew_heapoperator= (skew_heap const &rhs)
 Effects: Assigns priority queue from rhs. More...
 
 skew_heap (skew_heap &&rhs)
 Effects: C++11-style move constructor. More...
 
skew_heapoperator= (skew_heap &&rhs)
 Effects: C++11-style move assignment. More...
 
 ~skew_heap (void)
 
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<typename... Args>
mpl::if_c< is_mutable,
handle_type, void >::type 
emplace (Args &&...args)
 Effects: Adds a new element to the priority queue. 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...
 
void swap (skew_heap &rhs)
 Effects: Swaps two priority queues. More...
 
const_reference top (void) const
 Effects: Returns a const_reference to the maximum element. More...
 
void pop (void)
 Effects: Removes the top element from the priority queue. More...
 
iterator begin (void) const
 Effects: Returns an iterator to the first element contained in the priority queue. More...
 
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 first element contained in the priority queue. More...
 
void merge (skew_heap &rhs)
 Effects: Merge all elements from rhs into this More...
 
value_compare const & value_comp (void) const
 Effect: Returns the value_compare object used by 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 erase (handle_type object)
 Effects: Removes the element handled by handle from the priority_queue. 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...
 

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 = super_t::constant_time_size
 
static const bool has_ordered_iterators = true
 
static const bool is_mergable = true
 
static const bool is_stable = detail::extract_stable<bound_args>::value
 
static const bool has_reserve = false
 
static const bool is_mutable = detail::extract_mutable<bound_args>::value
 

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 A6 = boost::parameter::void_>
class boost::heap::skew_heap< T, A0, A1, A2, A3, A4, A5, A6 >

skew heap

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::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::constant_time_size<>, defaults to constant_time_size<true>
  • boost::heap::store_parent_pointer<>, defaults to store_parent_pointer<true>. Maintaining a parent pointer adds some maintenance and size overhead, but iterating a heap is more efficient.
  • 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_, class A6 = boost::parameter::void_>
typedef implementation_defined::allocator_type boost::heap::skew_heap< T, A0, A1, A2, A3, A4, A5, A6 >::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_, class A6 = boost::parameter::void_>
typedef implementation_defined::const_iterator boost::heap::skew_heap< T, A0, A1, A2, A3, A4, A5, A6 >::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_, class A6 = boost::parameter::void_>
typedef implementation_defined::const_pointer boost::heap::skew_heap< T, A0, A1, A2, A3, A4, A5, A6 >::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_, class A6 = boost::parameter::void_>
typedef implementation_defined::const_reference boost::heap::skew_heap< T, A0, A1, A2, A3, A4, A5, A6 >::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_, class A6 = boost::parameter::void_>
typedef implementation_defined::difference_type boost::heap::skew_heap< T, A0, A1, A2, A3, A4, A5, A6 >::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_, class A6 = boost::parameter::void_>
typedef mpl::if_c<is_mutable, typename implementation_defined::handle_type, void*>::type boost::heap::skew_heap< T, A0, A1, A2, A3, A4, A5, A6 >::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_, class A6 = boost::parameter::void_>
typedef implementation_defined::iterator boost::heap::skew_heap< T, A0, A1, A2, A3, A4, A5, A6 >::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_, class A6 = boost::parameter::void_>
typedef implementation_defined::ordered_iterator boost::heap::skew_heap< T, A0, A1, A2, A3, A4, A5, A6 >::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_, class A6 = boost::parameter::void_>
typedef implementation_defined::pointer boost::heap::skew_heap< T, A0, A1, A2, A3, A4, A5, A6 >::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_, class A6 = boost::parameter::void_>
typedef implementation_defined::reference boost::heap::skew_heap< T, A0, A1, A2, A3, A4, A5, A6 >::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_, class A6 = boost::parameter::void_>
typedef implementation_defined::size_type boost::heap::skew_heap< T, A0, A1, A2, A3, A4, A5, A6 >::size_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_, class A6 = boost::parameter::void_>
typedef implementation_defined::value_compare boost::heap::skew_heap< T, A0, A1, A2, A3, A4, A5, A6 >::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_, class A6 = boost::parameter::void_>
typedef T boost::heap::skew_heap< T, A0, A1, A2, A3, A4, A5, A6 >::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_, class A6 = boost::parameter::void_>
boost::heap::skew_heap< T, A0, A1, A2, A3, A4, A5, A6 >::skew_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_, class A6 = boost::parameter::void_>
boost::heap::skew_heap< T, A0, A1, A2, A3, A4, A5, A6 >::skew_heap ( skew_heap< T, A0, A1, A2, A3, A4, A5, A6 > const &  rhs)
inline

Effects: copy-constructs priority queue from rhs.

Complexity: Linear.

References boost::heap::skew_heap< T, A0, A1, A2, A3, A4, A5, A6 >::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_, class A6 = boost::parameter::void_>
boost::heap::skew_heap< T, A0, A1, A2, A3, A4, A5, A6 >::skew_heap ( skew_heap< T, A0, A1, A2, A3, A4, A5, A6 > &&  rhs)
inline

Effects: C++11-style move constructor.

Complexity: Constant.

Note: Only available, if BOOST_NO_CXX11_RVALUE_REFERENCES is not defined

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 A6 = boost::parameter::void_>
boost::heap::skew_heap< T, A0, A1, A2, A3, A4, A5, A6 >::~skew_heap ( void  )
inline

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_, class A6 = boost::parameter::void_>
iterator boost::heap::skew_heap< T, A0, A1, A2, A3, A4, A5, A6 >::begin ( void  ) const
inline

Effects: Returns an iterator to the first element contained in the 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_, class A6 = boost::parameter::void_>
void boost::heap::skew_heap< T, A0, A1, A2, A3, A4, A5, A6 >::clear ( void  )
inline
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 A6 = boost::parameter::void_>
void boost::heap::skew_heap< T, A0, A1, A2, A3, A4, A5, A6 >::decrease ( handle_type  handle,
const_reference  v 
)
inline

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

Complexity: Logarithmic (amortized).

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

References boost::BOOST_STATIC_ASSERT().

Referenced by boost::heap::skew_heap< T, A0, A1, A2, A3, A4, A5, A6 >::update().

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 A6 = boost::parameter::void_>
void boost::heap::skew_heap< T, A0, A1, A2, A3, A4, A5, A6 >::decrease ( handle_type  handle)
inline

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

Complexity: Logarithmic (amortized).

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!

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_, class A6 = boost::parameter::void_>
template<typename... Args>
mpl::if_c<is_mutable, handle_type, void>::type boost::heap::skew_heap< T, A0, A1, A2, A3, A4, A5, A6 >::emplace ( Args &&...  args)
inline

Effects: Adds a new element to the priority queue.

The element is directly constructed in-place.

Complexity: Logarithmic (amortized).

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_, class A6 = boost::parameter::void_>
bool boost::heap::skew_heap< T, A0, A1, A2, A3, A4, A5, A6 >::empty ( void  ) const
inline
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 A6 = boost::parameter::void_>
iterator boost::heap::skew_heap< T, A0, A1, A2, A3, A4, A5, A6 >::end ( void  ) const
inline

Effects: Returns an iterator to the end of the 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_, class A6 = boost::parameter::void_>
void boost::heap::skew_heap< T, A0, A1, A2, A3, A4, A5, A6 >::erase ( handle_type  object)
inline

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

Complexity: Logarithmic (amortized).

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_, class A6 = boost::parameter::void_>
allocator_type boost::heap::skew_heap< T, A0, A1, A2, A3, A4, A5, A6 >::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_, class A6 = boost::parameter::void_>
void boost::heap::skew_heap< T, A0, A1, A2, A3, A4, A5, A6 >::increase ( handle_type  handle,
const_reference  v 
)
inline

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

Complexity: Logarithmic (amortized).

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

References boost::BOOST_STATIC_ASSERT().

Referenced by boost::heap::skew_heap< T, A0, A1, A2, A3, A4, A5, A6 >::update().

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 A6 = boost::parameter::void_>
void boost::heap::skew_heap< T, A0, A1, A2, A3, A4, A5, A6 >::increase ( handle_type  handle)
inline

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

Complexity: Logarithmic (amortized).

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

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_, class A6 = boost::parameter::void_>
size_type boost::heap::skew_heap< T, A0, A1, A2, A3, A4, A5, A6 >::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_, class A6 = boost::parameter::void_>
void boost::heap::skew_heap< T, A0, A1, A2, A3, A4, A5, A6 >::merge ( skew_heap< T, A0, A1, A2, A3, A4, A5, A6 > &  rhs)
inline

Effects: Merge all elements from rhs into this

Complexity: Logarithmic (amortized).

References boost::icl::add(), boost::heap::skew_heap< T, A0, A1, A2, A3, A4, A5, A6 >::empty(), and boost::accumulators::extract::max.

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 A6 = boost::parameter::void_>
template<typename HeapType >
bool boost::heap::skew_heap< T, A0, A1, A2, A3, A4, A5, A6 >::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_, class A6 = boost::parameter::void_>
template<typename HeapType >
bool boost::heap::skew_heap< T, A0, A1, A2, A3, A4, A5, A6 >::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::skew_heap< T, A0, A1, A2, A3, A4, A5, A6 >::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_, class A6 = boost::parameter::void_>
template<typename HeapType >
bool boost::heap::skew_heap< T, A0, A1, A2, A3, A4, A5, A6 >::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::skew_heap< T, A0, A1, A2, A3, A4, A5, A6 >::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_, class A6 = boost::parameter::void_>
skew_heap& boost::heap::skew_heap< T, A0, A1, A2, A3, A4, A5, A6 >::operator= ( skew_heap< T, A0, A1, A2, A3, A4, A5, A6 > const &  rhs)
inline

Effects: Assigns priority queue from rhs.

Complexity: Linear.

References boost::heap::skew_heap< T, A0, A1, A2, A3, A4, A5, A6 >::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_, class A6 = boost::parameter::void_>
skew_heap& boost::heap::skew_heap< T, A0, A1, A2, A3, A4, A5, A6 >::operator= ( skew_heap< T, A0, A1, A2, A3, A4, A5, A6 > &&  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::heap::detail::make_skew_heap_base< T, BoundArgs >::type::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_, class A6 = boost::parameter::void_>
template<typename HeapType >
bool boost::heap::skew_heap< T, A0, A1, A2, A3, A4, A5, A6 >::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_, class A6 = boost::parameter::void_>
template<typename HeapType >
bool boost::heap::skew_heap< T, A0, A1, A2, A3, A4, A5, A6 >::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::skew_heap< T, A0, A1, A2, A3, A4, A5, A6 >::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_, class A6 = boost::parameter::void_>
template<typename HeapType >
bool boost::heap::skew_heap< T, A0, A1, A2, A3, A4, A5, A6 >::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::skew_heap< T, A0, A1, A2, A3, A4, A5, A6 >::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_, class A6 = boost::parameter::void_>
ordered_iterator boost::heap::skew_heap< T, A0, A1, A2, A3, A4, A5, A6 >::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_, class A6 = boost::parameter::void_>
ordered_iterator boost::heap::skew_heap< T, A0, A1, A2, A3, A4, A5, A6 >::ordered_end ( 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_, class A6 = boost::parameter::void_>
void boost::heap::skew_heap< T, A0, A1, A2, A3, A4, A5, A6 >::pop ( void  )
inline

Effects: Removes the top element from the priority queue.

Complexity: Logarithmic (amortized).

References BOOST_ASSERT, BOOST_HEAP_ASSERT, boost::heap::skew_heap< T, A0, A1, A2, A3, A4, A5, A6 >::empty(), and boost::heap::skew_heap< T, A0, A1, A2, A3, A4, A5, A6 >::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_, class A6 = boost::parameter::void_>
mpl::if_c<is_mutable, handle_type, void>::type boost::heap::skew_heap< T, A0, A1, A2, A3, A4, A5, A6 >::push ( value_type const &  v)
inline

Effects: Adds a new element to the priority queue.

Complexity: Logarithmic (amortized).

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_, class A6 = boost::parameter::void_>
static handle_type boost::heap::skew_heap< T, A0, A1, A2, A3, A4, A5, A6 >::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::python::ptr().

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 A6 = boost::parameter::void_>
size_type boost::heap::skew_heap< T, A0, A1, A2, A3, A4, A5, A6 >::size ( void  ) const
inline

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

Complexity: Constant, if configured with constant_time_size<true>, otherwise 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_, class A6 = boost::parameter::void_>
void boost::heap::skew_heap< T, A0, A1, A2, A3, A4, A5, A6 >::swap ( skew_heap< T, A0, A1, A2, A3, A4, A5, A6 > &  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_, class A6 = boost::parameter::void_>
const_reference boost::heap::skew_heap< T, A0, A1, A2, A3, A4, A5, A6 >::top ( void  ) const
inline

Effects: Returns a const_reference to the maximum element.

Complexity: Constant.

References BOOST_ASSERT, and boost::heap::skew_heap< T, A0, A1, A2, A3, A4, A5, A6 >::empty().

Referenced by boost::heap::skew_heap< T, A0, A1, A2, A3, A4, A5, A6 >::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_, class A6 = boost::parameter::void_>
void boost::heap::skew_heap< T, A0, A1, A2, A3, A4, A5, A6 >::update ( handle_type  handle,
const_reference  v 
)
inline

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

Complexity: Logarithmic (amortized).

References boost::BOOST_STATIC_ASSERT(), boost::heap::skew_heap< T, A0, A1, A2, A3, A4, A5, A6 >::decrease(), and boost::heap::skew_heap< T, A0, A1, A2, A3, A4, A5, A6 >::increase().

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 A6 = boost::parameter::void_>
void boost::heap::skew_heap< T, A0, A1, A2, A3, A4, A5, A6 >::update ( handle_type  handle)
inline

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

Complexity: Logarithmic (amortized).

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

References boost::BOOST_STATIC_ASSERT(), boost::heap::skew_heap< T, A0, A1, A2, A3, A4, A5, A6 >::decrease(), and boost::heap::skew_heap< T, A0, A1, A2, A3, A4, A5, A6 >::increase().

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 A6 = boost::parameter::void_>
value_compare const& boost::heap::skew_heap< T, A0, A1, A2, A3, A4, A5, A6 >::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_, class A6 = 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_, class A6 = boost::parameter::void_>
const bool boost::heap::skew_heap< T, A0, A1, A2, A3, A4, A5, A6 >::constant_time_size = super_t::constant_time_size
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_, class A6 = boost::parameter::void_>
const bool boost::heap::skew_heap< T, A0, A1, A2, A3, A4, A5, A6 >::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_, class A6 = boost::parameter::void_>
const bool boost::heap::skew_heap< T, A0, A1, A2, A3, A4, A5, A6 >::has_reserve = 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_, class A6 = boost::parameter::void_>
const bool boost::heap::skew_heap< T, A0, A1, A2, A3, A4, A5, A6 >::is_mergable = 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_, class A6 = boost::parameter::void_>
const bool boost::heap::skew_heap< T, A0, A1, A2, A3, A4, A5, A6 >::is_mutable = detail::extract_mutable<bound_args>::value
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_, class A6 = boost::parameter::void_>
const bool boost::heap::skew_heap< T, A0, A1, A2, A3, A4, A5, A6 >::is_stable = detail::extract_stable<bound_args>::value
static

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