<?xml version="1.0" standalone="yes"?>
<library-reference><header id="doxygen.binomial__heap_8hpp" name="boost/heap/binomial_heap.hpp">
<namespace name="boost">
<namespace name="heap">
<class id="doxygen.classboost_1_1heap_1_1binomial__heap" name="binomial_heap"><template>
      <template-type-parameter name="T"/>
      <template-nontype-parameter name="Options"><type>class...</type></template-nontype-parameter>
    </template><purpose>binomial heap </purpose><description><para>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.</para><para>The container supports the following options:<itemizedlist>
<listitem><para><computeroutput><link linkend="doxygen.structboost_1_1heap_1_1stable">boost::heap::stable&lt;&gt;</link></computeroutput>, defaults to <computeroutput><link linkend="doxygen.structboost_1_1heap_1_1stable">stable&lt;false&gt;</link></computeroutput> </para>
</listitem><listitem><para><computeroutput><link linkend="doxygen.structboost_1_1heap_1_1compare">boost::heap::compare&lt;&gt;</link></computeroutput>, defaults to <computeroutput>compare&lt;std::less&lt;T&gt;</computeroutput> &gt;</para>
</listitem><listitem><para><computeroutput><link linkend="doxygen.structboost_1_1heap_1_1allocator">boost::heap::allocator&lt;&gt;</link></computeroutput>, defaults to <computeroutput>allocator&lt;std::allocator&lt;T&gt;</computeroutput> &gt;</para>
</listitem><listitem><para><computeroutput><link linkend="doxygen.structboost_1_1heap_1_1constant__time__size">boost::heap::constant_time_size&lt;&gt;</link></computeroutput>, defaults to <computeroutput><link linkend="doxygen.structboost_1_1heap_1_1constant__time__size">constant_time_size&lt;true&gt;</link></computeroutput> </para>
</listitem><listitem><para><computeroutput><link linkend="doxygen.structboost_1_1heap_1_1stability__counter__type">boost::heap::stability_counter_type&lt;&gt;</link></computeroutput>, defaults to <computeroutput><link linkend="doxygen.structboost_1_1heap_1_1stability__counter__type">stability_counter_type&lt;boost::uintmax_t&gt;</link></computeroutput> </para>
</listitem></itemizedlist>
</para></description><typedef id="doxygen.classboost_1_1heap_1_1binomial__heap_1ae3f972d41240468b674af81199c0732f" name="value_type"><type>T</type></typedef>
<typedef id="doxygen.classboost_1_1heap_1_1binomial__heap_1a8b62d83b028075a2c235d18a21586de6" name="size_type"><type>implementation_defined::size_type</type></typedef>
<typedef id="doxygen.classboost_1_1heap_1_1binomial__heap_1ae446e57c97ecd737ab45f2e5da63cdb3" name="difference_type"><type>implementation_defined::difference_type</type></typedef>
<typedef id="doxygen.classboost_1_1heap_1_1binomial__heap_1a1a0e20fb1cd3590c5f01b19ee8e7853e" name="value_compare"><type>implementation_defined::value_compare</type></typedef>
<typedef id="doxygen.classboost_1_1heap_1_1binomial__heap_1a5058f74a95fc1dac29f6bb5c23a5adba" name="allocator_type"><type>implementation_defined::allocator_type</type></typedef>
<typedef id="doxygen.classboost_1_1heap_1_1binomial__heap_1aa9e5550a5fe9b5cbef6f94f3d5850b11" name="reference"><type>implementation_defined::reference</type></typedef>
<typedef id="doxygen.classboost_1_1heap_1_1binomial__heap_1acd4fc863d759f286f2d1e14968585949" name="const_reference"><type>implementation_defined::const_reference</type></typedef>
<typedef id="doxygen.classboost_1_1heap_1_1binomial__heap_1aec18155c1161cddc63251c15f2ff2545" name="pointer"><type>implementation_defined::pointer</type></typedef>
<typedef id="doxygen.classboost_1_1heap_1_1binomial__heap_1ade0987cbc2caf96e6b9925b734c83123" name="const_pointer"><type>implementation_defined::const_pointer</type></typedef>
<typedef id="doxygen.classboost_1_1heap_1_1binomial__heap_1a1ca11b5d21daeb8145cdb1391928f882" name="iterator"><description><para><emphasis role="bold">Note:</emphasis> The iterator does not traverse the priority queue in order of the priorities.    </para></description><type>implementation_defined::iterator</type></typedef>
<typedef id="doxygen.classboost_1_1heap_1_1binomial__heap_1a348b3d12e193b19eb148d70945510f9e" name="const_iterator"><type>implementation_defined::const_iterator</type></typedef>
<typedef id="doxygen.classboost_1_1heap_1_1binomial__heap_1a08a294ec715ba3b1fc5a51351781bdf7" name="ordered_iterator"><type>implementation_defined::ordered_iterator</type></typedef>
<typedef id="doxygen.classboost_1_1heap_1_1binomial__heap_1a7b229c4f93e4d6d85466c50977df5f55" name="handle_type"><type>implementation_defined::handle_type</type></typedef>
<data-member id="doxygen.classboost_1_1heap_1_1binomial__heap_1aebc78fc189608bd2f0cf3982030fa229" name="constant_time_size" specifiers="static"><type>const bool</type></data-member>
<data-member id="doxygen.classboost_1_1heap_1_1binomial__heap_1a70e67720d974a90279dd078ca970f70c" name="has_ordered_iterators" specifiers="static"><type>const bool</type></data-member>
<data-member id="doxygen.classboost_1_1heap_1_1binomial__heap_1ab1659c8e0b05a179c410c6732f233906" name="is_mergable" specifiers="static"><type>const bool</type></data-member>
<data-member id="doxygen.classboost_1_1heap_1_1binomial__heap_1af6d0b371964a5fd253c9864db638ddd6" name="is_stable" specifiers="static"><type>const bool</type></data-member>
<data-member id="doxygen.classboost_1_1heap_1_1binomial__heap_1a5dc0e5ec9392309bb9739e2d895ac7ea" name="has_reserve" specifiers="static"><type>const bool</type></data-member>
<method-group name="public member functions">
<constructor id="doxygen.classboost_1_1heap_1_1binomial__heap_1ae232948e6e82fa9cc24ff380c18db64b" specifiers="explicit"><parameter name="cmp"><paramtype>value_compare const &amp;</paramtype><default>value_compare()</default></parameter><description><para><emphasis role="bold">Effects:</emphasis> constructs an empty priority queue.</para><para><emphasis role="bold">Complexity:</emphasis> Constant.    </para></description></constructor>
<constructor id="doxygen.classboost_1_1heap_1_1binomial__heap_1a05531c8595eef1d2484cf013a36913f0" specifiers="explicit"><parameter name="alloc"><paramtype>allocator_type const &amp;</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> constructs an empty priority queue.</para><para><emphasis role="bold">Complexity:</emphasis> Constant.    </para></description></constructor>
<constructor id="doxygen.classboost_1_1heap_1_1binomial__heap_1a79e390595bc5c4a4393a8346c3b7572d"><parameter name="rhs"><paramtype><classname>binomial_heap</classname> const &amp;</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> copy-constructs priority queue from rhs.</para><para><emphasis role="bold">Complexity:</emphasis> Linear.    </para></description></constructor>
<copy-assignment id="doxygen.classboost_1_1heap_1_1binomial__heap_1a322572635ae09a2ecc0cb18d5e813b7d"><type><classname>binomial_heap</classname> &amp;</type><parameter name="rhs"><paramtype><classname>binomial_heap</classname> const &amp;</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Assigns priority queue from rhs.</para><para><emphasis role="bold">Complexity:</emphasis> Linear.    </para></description></copy-assignment>
<constructor id="doxygen.classboost_1_1heap_1_1binomial__heap_1a07a2a5921bb4a450c880cf1ea4f3f271"><parameter name="rhs"><paramtype><classname>binomial_heap</classname> &amp;&amp;</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> C++11-style move constructor.</para><para><emphasis role="bold">Complexity:</emphasis> Constant.    </para></description></constructor>
<copy-assignment id="doxygen.classboost_1_1heap_1_1binomial__heap_1a4f1588ab0339e616d04b9efcfb967a35"><type><classname>binomial_heap</classname> &amp;</type><parameter name="rhs"><paramtype><classname>binomial_heap</classname> &amp;&amp;</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> C++11-style move assignment.</para><para><emphasis role="bold">Complexity:</emphasis> Constant.    </para></description></copy-assignment>
<destructor id="doxygen.classboost_1_1heap_1_1binomial__heap_1abdabe5dfa31e283ab3ce2da926cf1f52"><parameter name=""><paramtype>void</paramtype></parameter></destructor>
<method id="doxygen.classboost_1_1heap_1_1binomial__heap_1a7f211fee124e44228fe0c731bab4b4f6" name="empty" cv="const"><type>bool</type><parameter name=""><paramtype>void</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Returns true, if the priority queue contains no elements.</para><para><emphasis role="bold">Complexity:</emphasis> Constant.    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1binomial__heap_1a29b04bb5a37912fe785f7b93bb81b509" name="size" cv="const"><type>size_type</type><parameter name=""><paramtype>void</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Returns the number of elements contained in the priority queue.</para><para><emphasis role="bold">Complexity:</emphasis> Constant, if configured with <link linkend="doxygen.structboost_1_1heap_1_1constant__time__size">constant_time_size&lt;true&gt;</link>, otherwise linear. </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1binomial__heap_1adce97b12a391424afaa5daeba8708ec5" name="max_size" cv="const"><type>size_type</type><parameter name=""><paramtype>void</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Returns the maximum number of elements the priority queue can contain.</para><para><emphasis role="bold">Complexity:</emphasis> Constant.    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1binomial__heap_1a5c71e95449b53590b44582bc224047d8" name="clear"><type>void</type><parameter name=""><paramtype>void</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Removes all elements from the priority queue.</para><para><emphasis role="bold">Complexity:</emphasis> Linear.    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1binomial__heap_1a5553e34f68546011b7ac3e7aee9a1d6b" name="get_allocator" cv="const"><type>allocator_type</type><parameter name=""><paramtype>void</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Returns allocator.</para><para><emphasis role="bold">Complexity:</emphasis> Constant.    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1binomial__heap_1a45bfe75a564cd79f0d6817fbfa4e4ae5" name="swap"><type>void</type><parameter name="rhs"><paramtype><classname>binomial_heap</classname> &amp;</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Swaps two priority queues.</para><para><emphasis role="bold">Complexity:</emphasis> Constant.</para><para><xrefsect id="deprecated_1_deprecated000001"><xreftitle>Deprecated</xreftitle><xrefdescription><para>Use <computeroutput>std::swap</computeroutput> instead. </para>
</xrefdescription></xrefsect></para></description></method>
<method id="doxygen.classboost_1_1heap_1_1binomial__heap_1ae212aec6a17ad4d58d20e9579c467eef" name="top" cv="const"><type>const_reference</type><parameter name=""><paramtype>void</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Returns a const_reference to the maximum element.</para><para><emphasis role="bold">Complexity:</emphasis> Constant.    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1binomial__heap_1a9314f1269b1af42ab6a88d9081f02af5" name="push"><type>handle_type</type><parameter name="v"><paramtype>value_type const &amp;</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Adds a new element to the priority queue. Returns handle to element</para><para><emphasis role="bold">Complexity:</emphasis> Logarithmic. </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1binomial__heap_1a3d713e4b25524f801f5730095af7ad03" name="emplace"><type>handle_type</type><template>
          <template-nontype-parameter name="Args"><type>class...</type></template-nontype-parameter>
        </template><parameter name="args"><paramtype>Args &amp;&amp;...</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Adds a new element to the priority queue. The element is directly constructed in-place. Returns handle to element.</para><para><emphasis role="bold">Complexity:</emphasis> Logarithmic. </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1binomial__heap_1a8cf51a590e58db35214f6757d27a3fc9" name="pop"><type>void</type><parameter name=""><paramtype>void</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Removes the top element from the priority queue.</para><para><emphasis role="bold">Complexity:</emphasis> Logarithmic. </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1binomial__heap_1a2accbe0de36efc10fb22c030ce4b7e27" name="update"><type>void</type><parameter name="handle"><paramtype>handle_type</paramtype></parameter><parameter name="v"><paramtype>const_reference</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Assigns <computeroutput>v</computeroutput> to the element handled by <computeroutput>handle</computeroutput> &amp; updates the priority queue.</para><para><emphasis role="bold">Complexity:</emphasis> Logarithmic. </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1binomial__heap_1a09e13142b9575800495fa08dd88a7c41" name="update"><type>void</type><parameter name="handle"><paramtype>handle_type</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Updates the heap after the element handled by <computeroutput>handle</computeroutput> has been changed.</para><para><emphasis role="bold">Complexity:</emphasis> Logarithmic.</para><para><emphasis role="bold">Note:</emphasis> If this is not called, after a handle has been updated, the behavior of the data structure is undefined! </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1binomial__heap_1a0872cbdd14c1e4b758300b54b6303131" name="increase"><type>void</type><parameter name="handle"><paramtype>handle_type</paramtype></parameter><parameter name="v"><paramtype>const_reference</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Assigns <computeroutput>v</computeroutput> to the element handled by <computeroutput>handle</computeroutput> &amp; updates the priority queue.</para><para><emphasis role="bold">Complexity:</emphasis> Logarithmic.</para><para><emphasis role="bold">Note:</emphasis> The new value is expected to be greater than the current one </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1binomial__heap_1ab925b1bfd482e8e2d6fd81f61febd07e" name="increase"><type>void</type><parameter name="handle"><paramtype>handle_type</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Updates the heap after the element handled by <computeroutput>handle</computeroutput> has been changed.</para><para><emphasis role="bold">Complexity:</emphasis> Logarithmic.</para><para><emphasis role="bold">Note:</emphasis> If this is not called, after a handle has been updated, the behavior of the data structure is undefined! </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1binomial__heap_1a19935c2b5bb113dfcbaa53777ecdf801" name="decrease"><type>void</type><parameter name="handle"><paramtype>handle_type</paramtype></parameter><parameter name="v"><paramtype>const_reference</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Assigns <computeroutput>v</computeroutput> to the element handled by <computeroutput>handle</computeroutput> &amp; updates the priority queue.</para><para><emphasis role="bold">Complexity:</emphasis> Logarithmic.</para><para><emphasis role="bold">Note:</emphasis> The new value is expected to be less than the current one </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1binomial__heap_1a97836b1c9482f796e842cceccc69f629" name="decrease"><type>void</type><parameter name="handle"><paramtype>handle_type</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Updates the heap after the element handled by <computeroutput>handle</computeroutput> has been changed.</para><para><emphasis role="bold">Complexity:</emphasis> Logarithmic.</para><para><emphasis role="bold">Note:</emphasis> 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! </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1binomial__heap_1a40b27a7576f3e53da33e737918358619" name="merge"><type>void</type><parameter name="rhs"><paramtype><classname>binomial_heap</classname> &amp;</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Merge with priority queue rhs.</para><para><emphasis role="bold">Complexity:</emphasis> Logarithmic. </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1binomial__heap_1af1ea916ca94b7e2ab9163aa87cca0858" name="begin" cv="const"><type>iterator</type><parameter name=""><paramtype>void</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Returns an iterator to the first element contained in the priority queue.</para><para><emphasis role="bold">Complexity:</emphasis> Constant.    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1binomial__heap_1a77449a4cbfbdacd024ed31afc7f9c39e" name="end" cv="const"><type>iterator</type><parameter name=""><paramtype>void</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Returns an iterator to the end of the priority queue.</para><para><emphasis role="bold">Complexity:</emphasis> Constant.    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1binomial__heap_1ada29e12a62efd62cd0863babb8749ca1" name="ordered_begin" cv="const"><type>ordered_iterator</type><parameter name=""><paramtype>void</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Returns an ordered iterator to the first element contained in the priority queue.</para><para><emphasis role="bold">Note:</emphasis> Ordered iterators traverse the priority queue in heap order.    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1binomial__heap_1a141ea5b5f896837fe1596b846684322a" name="ordered_end" cv="const"><type>ordered_iterator</type><parameter name=""><paramtype>void</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Returns an ordered iterator to the end of the priority queue.</para><para><emphasis role="bold">Note:</emphasis> Ordered iterators traverse the priority queue in heap order.    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1binomial__heap_1aa327189ac3c1dae672bff9a017d79252" name="erase"><type>void</type><parameter name="handle"><paramtype>handle_type</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Removes the element handled by <computeroutput>handle</computeroutput> from the <link linkend="doxygen.classboost_1_1heap_1_1priority__queue">priority_queue</link>.</para><para><emphasis role="bold">Complexity:</emphasis> Logarithmic. </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1binomial__heap_1ab3bcc8ea5181dfd28ec3fe267aa3dd7b" name="value_comp" cv="const"><type>value_compare const &amp;</type><parameter name=""><paramtype>void</paramtype></parameter><description><para><emphasis role="bold">Effect:</emphasis> Returns the value_compare object used by the priority queue    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1binomial__heap_1a882a9d7686de1a51ffdcdbba66c3677b" name="operator&lt;" cv="const"><type>bool</type><template>
          <template-type-parameter name="HeapType"/>
        </template><parameter name="rhs"><paramtype>HeapType const &amp;</paramtype></parameter><description><para><emphasis role="bold">Returns:</emphasis> Element-wise comparison of heap data structures</para><para><emphasis role="bold">Requirement:</emphasis> the <computeroutput>value_compare</computeroutput> object of both heaps must match.    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1binomial__heap_1a49b6d6176bddc99b8c884b1617232c2d" name="operator&gt;" cv="const"><type>bool</type><template>
          <template-type-parameter name="HeapType"/>
        </template><parameter name="rhs"><paramtype>HeapType const &amp;</paramtype></parameter><description><para><emphasis role="bold">Returns:</emphasis> Element-wise comparison of heap data structures</para><para><emphasis role="bold">Requirement:</emphasis> the <computeroutput>value_compare</computeroutput> object of both heaps must match.    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1binomial__heap_1a07edc852886f2a93aa010b105fe979a3" name="operator&gt;=" cv="const"><type>bool</type><template>
          <template-type-parameter name="HeapType"/>
        </template><parameter name="rhs"><paramtype>HeapType const &amp;</paramtype></parameter><description><para><emphasis role="bold">Returns:</emphasis> Element-wise comparison of heap data structures</para><para><emphasis role="bold">Requirement:</emphasis> the <computeroutput>value_compare</computeroutput> object of both heaps must match.    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1binomial__heap_1afdd24120fefddcef1abb24fd9b7d8188" name="operator&lt;=" cv="const"><type>bool</type><template>
          <template-type-parameter name="HeapType"/>
        </template><parameter name="rhs"><paramtype>HeapType const &amp;</paramtype></parameter><description><para><emphasis role="bold">Returns:</emphasis> Element-wise comparison of heap data structures</para><para><emphasis role="bold">Requirement:</emphasis> the <computeroutput>value_compare</computeroutput> object of both heaps must match.    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1binomial__heap_1a65c5a0b5267cd82bed87af8d5d178873" name="operator==" cv="const"><type>bool</type><template>
          <template-type-parameter name="HeapType"/>
        </template><parameter name="rhs"><paramtype>HeapType const &amp;</paramtype></parameter><purpose>Equivalent comparison <emphasis role="bold">Returns:</emphasis> True, if both heap data structures are equivalent.    </purpose><description><para><emphasis role="bold">Requirement:</emphasis> the <computeroutput>value_compare</computeroutput> object of both heaps must match.    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1binomial__heap_1aaf3bdd6dec4ccf216e58c353eef15eed" name="operator!=" cv="const"><type>bool</type><template>
          <template-type-parameter name="HeapType"/>
        </template><parameter name="rhs"><paramtype>HeapType const &amp;</paramtype></parameter><purpose>Equivalent comparison <emphasis role="bold">Returns:</emphasis> True, if both heap data structures are not equivalent.    </purpose><description><para><emphasis role="bold">Requirement:</emphasis> the <computeroutput>value_compare</computeroutput> object of both heaps must match.    </para></description></method>
</method-group>
<method-group name="public static functions">
<method id="doxygen.classboost_1_1heap_1_1binomial__heap_1abfdd5e3045654dfbeaf3fb00b00e919b" name="s_handle_from_iterator" specifiers="static"><type>handle_type</type><parameter name="it"><paramtype>iterator const &amp;</paramtype></parameter></method>
</method-group>
</class>
</namespace>
</namespace>
</header>
<header id="doxygen.d__ary__heap_8hpp" name="boost/heap/d_ary_heap.hpp">
<namespace name="boost">
<namespace name="heap">
<class id="doxygen.classboost_1_1heap_1_1d__ary__heap" name="d_ary_heap"><template>
      <template-type-parameter name="T"/>
      <template-nontype-parameter name="Options"><type>class...</type></template-nontype-parameter>
    </template><purpose>d-ary heap class </purpose><description><para>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.</para><para>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.</para><para>The container supports the following options:<itemizedlist>
<listitem><para><computeroutput><link linkend="doxygen.structboost_1_1heap_1_1arity">boost::heap::arity&lt;&gt;</link></computeroutput>, required</para>
</listitem><listitem><para><computeroutput><link linkend="doxygen.structboost_1_1heap_1_1compare">boost::heap::compare&lt;&gt;</link></computeroutput>, defaults to <computeroutput>compare&lt;std::less&lt;T&gt;</computeroutput> &gt;</para>
</listitem><listitem><para><computeroutput><link linkend="doxygen.structboost_1_1heap_1_1stable">boost::heap::stable&lt;&gt;</link></computeroutput>, defaults to <computeroutput><link linkend="doxygen.structboost_1_1heap_1_1stable">stable&lt;false&gt;</link></computeroutput> </para>
</listitem><listitem><para><computeroutput><link linkend="doxygen.structboost_1_1heap_1_1stability__counter__type">boost::heap::stability_counter_type&lt;&gt;</link></computeroutput>, defaults to <computeroutput><link linkend="doxygen.structboost_1_1heap_1_1stability__counter__type">stability_counter_type&lt;boost::uintmax_t&gt;</link></computeroutput> </para>
</listitem><listitem><para><computeroutput><link linkend="doxygen.structboost_1_1heap_1_1allocator">boost::heap::allocator&lt;&gt;</link></computeroutput>, defaults to <computeroutput>allocator&lt;std::allocator&lt;T&gt;</computeroutput> &gt;</para>
</listitem><listitem><para><computeroutput><link linkend="doxygen.structboost_1_1heap_1_1mutable__">boost::heap::mutable_&lt;&gt;</link></computeroutput>, defaults to <computeroutput><link linkend="doxygen.structboost_1_1heap_1_1mutable__">mutable_&lt;false&gt;</link></computeroutput> </para>
</listitem></itemizedlist>
</para></description><typedef id="doxygen.classboost_1_1heap_1_1d__ary__heap_1a9a208f3ba55fe621a49981f783654e63" name="value_type"><type>T</type></typedef>
<typedef id="doxygen.classboost_1_1heap_1_1d__ary__heap_1a765ccc6835bad7390a32e29ae83bb47c" name="size_type"><type>implementation_defined::size_type</type></typedef>
<typedef id="doxygen.classboost_1_1heap_1_1d__ary__heap_1ac8e9b16ef0701f1bb599ee312019edaa" name="difference_type"><type>implementation_defined::difference_type</type></typedef>
<typedef id="doxygen.classboost_1_1heap_1_1d__ary__heap_1a6d1e11120e535a6d782a8af0182781ba" name="value_compare"><type>implementation_defined::value_compare</type></typedef>
<typedef id="doxygen.classboost_1_1heap_1_1d__ary__heap_1ac6e646277ac94f3024016ae83c6e6710" name="allocator_type"><type>implementation_defined::allocator_type</type></typedef>
<typedef id="doxygen.classboost_1_1heap_1_1d__ary__heap_1aab7009e96a5f68a282553c231eabdcaf" name="reference"><type>implementation_defined::reference</type></typedef>
<typedef id="doxygen.classboost_1_1heap_1_1d__ary__heap_1aab22f68abdd4c6a16d15e4fe04e55cf0" name="const_reference"><type>implementation_defined::const_reference</type></typedef>
<typedef id="doxygen.classboost_1_1heap_1_1d__ary__heap_1a05e5fbaf78bb7ceb059f5a8ed5cef6d1" name="pointer"><type>implementation_defined::pointer</type></typedef>
<typedef id="doxygen.classboost_1_1heap_1_1d__ary__heap_1ab02a2b7785dfb309aa3acf007a337dfa" name="const_pointer"><type>implementation_defined::const_pointer</type></typedef>
<typedef id="doxygen.classboost_1_1heap_1_1d__ary__heap_1a8d79ec1c8d745f4cebd1a5c48e49132b" name="iterator"><description><para><emphasis role="bold">Note:</emphasis> The iterator does not traverse the priority queue in order of the priorities.    </para></description><type>implementation_defined::iterator</type></typedef>
<typedef id="doxygen.classboost_1_1heap_1_1d__ary__heap_1a9ba5fef9bc3f4f780f26cddbadff9fb2" name="const_iterator"><type>implementation_defined::const_iterator</type></typedef>
<typedef id="doxygen.classboost_1_1heap_1_1d__ary__heap_1a6d1b9e54221e5a251fc2e5879c5bd506" name="ordered_iterator"><type>implementation_defined::ordered_iterator</type></typedef>
<typedef id="doxygen.classboost_1_1heap_1_1d__ary__heap_1a6b1edd6d4beeeabc986aab159746d54d" name="handle_type"><type>implementation_defined::handle_type</type></typedef>
<data-member id="doxygen.classboost_1_1heap_1_1d__ary__heap_1ada828650cef73026791e0ee16da0fbeb" name="constant_time_size" specifiers="static"><type>const bool</type></data-member>
<data-member id="doxygen.classboost_1_1heap_1_1d__ary__heap_1a91f51e9028437ab6be38e263f3db14db" name="has_ordered_iterators" specifiers="static"><type>const bool</type></data-member>
<data-member id="doxygen.classboost_1_1heap_1_1d__ary__heap_1a970a4a3651e1b9b420a44a59734f024d" name="is_mergable" specifiers="static"><type>const bool</type></data-member>
<data-member id="doxygen.classboost_1_1heap_1_1d__ary__heap_1ada08397707a157ba38a14e41cf05d4af" name="has_reserve" specifiers="static"><type>const bool</type></data-member>
<data-member id="doxygen.classboost_1_1heap_1_1d__ary__heap_1ae951a484c0db79d2dec852ae6e6dc834" name="is_stable" specifiers="static"><type>const bool</type></data-member>
<method-group name="public member functions">
<constructor id="doxygen.classboost_1_1heap_1_1d__ary__heap_1adba764f939634f5e6b73b76bb221d8c8" specifiers="explicit"><parameter name="cmp"><paramtype>value_compare const &amp;</paramtype><default>value_compare()</default></parameter><description><para><emphasis role="bold">Effects:</emphasis> constructs an empty priority queue.</para><para><emphasis role="bold">Complexity:</emphasis> Constant.    </para></description></constructor>
<constructor id="doxygen.classboost_1_1heap_1_1d__ary__heap_1af54020e833b8cda4ce690884059e945a" cv="= default"><parameter name="rhs"><paramtype><classname>d_ary_heap</classname> const &amp;</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> copy-constructs priority queue from rhs.</para><para><emphasis role="bold">Complexity:</emphasis> Linear.    </para></description></constructor>
<constructor id="doxygen.classboost_1_1heap_1_1d__ary__heap_1a6f3d63c074f1d1234f1fee1fd039dde7" cv="= default"><parameter name="rhs"><paramtype><classname>d_ary_heap</classname> &amp;&amp;</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> C++11-style move constructor.</para><para><emphasis role="bold">Complexity:</emphasis> Constant.    </para></description></constructor>
<copy-assignment id="doxygen.classboost_1_1heap_1_1d__ary__heap_1a9f225ad2ab6ff5df87f815945e245b15" cv="= default"><type><classname>d_ary_heap</classname> &amp;</type><parameter name="rhs"><paramtype><classname>d_ary_heap</classname> &amp;&amp;</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> C++11-style move assignment.</para><para><emphasis role="bold">Complexity:</emphasis> Constant.    </para></description></copy-assignment>
<copy-assignment id="doxygen.classboost_1_1heap_1_1d__ary__heap_1a0cad73a5f4c2259e3906ee4c63514847"><type><classname>d_ary_heap</classname> &amp;</type><parameter name="rhs"><paramtype><classname>d_ary_heap</classname> const &amp;</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Assigns priority queue from rhs.</para><para><emphasis role="bold">Complexity:</emphasis> Linear.    </para></description></copy-assignment>
<method id="doxygen.classboost_1_1heap_1_1d__ary__heap_1a5ecfe8563e4db23e8cb9bd717f99bb62" name="empty" cv="const"><type>bool</type><parameter name=""><paramtype>void</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Returns true, if the priority queue contains no elements.</para><para><emphasis role="bold">Complexity:</emphasis> Constant.    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1d__ary__heap_1a5cb9690ef67b6d87395956256b43a2d9" name="size" cv="const"><type>size_type</type><parameter name=""><paramtype>void</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Returns the number of elements contained in the priority queue.</para><para><emphasis role="bold">Complexity:</emphasis> Constant.    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1d__ary__heap_1a606b3e49c8f9bb59f94769d410b1340f" name="max_size" cv="const"><type>size_type</type><parameter name=""><paramtype>void</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Returns the maximum number of elements the priority queue can contain.</para><para><emphasis role="bold">Complexity:</emphasis> Constant.    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1d__ary__heap_1a81b258099544ac324437ca882ae88a84" name="clear"><type>void</type><parameter name=""><paramtype>void</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Removes all elements from the priority queue.</para><para><emphasis role="bold">Complexity:</emphasis> Linear.    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1d__ary__heap_1a95e8358334ce9e31dcb5123b050e664d" name="get_allocator" cv="const"><type>allocator_type</type><parameter name=""><paramtype>void</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Returns allocator.</para><para><emphasis role="bold">Complexity:</emphasis> Constant.    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1d__ary__heap_1a0410e641d357ffd3d4bdaec07618c999" name="top" cv="const"><type>value_type const &amp;</type><parameter name=""><paramtype>void</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Returns a const_reference to the maximum element.</para><para><emphasis role="bold">Complexity:</emphasis> Constant.    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1d__ary__heap_1a9c3ee8282045fd8170594a99c0ae1760" name="push"><type>std::conditional&lt; is_mutable, handle_type, void &gt;::type</type><parameter name="v"><paramtype>value_type const &amp;</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Adds a new element to the priority queue.</para><para><emphasis role="bold">Complexity:</emphasis> Logarithmic (amortized). Linear (worst case).    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1d__ary__heap_1ab6dd60787bb57667ac3bec41244c4587" name="emplace"><type>std::conditional&lt; is_mutable, handle_type, void &gt;::type</type><template>
          <template-nontype-parameter name="Args"><type>class...</type></template-nontype-parameter>
        </template><parameter name="args"><paramtype>Args &amp;&amp;...</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Adds a new element to the priority queue. The element is directly constructed in-place.</para><para><emphasis role="bold">Complexity:</emphasis> Logarithmic (amortized). Linear (worst case).    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1d__ary__heap_1a74521828957ad9aeab69ec5d0ccfc125" name="operator&lt;" cv="const"><type>bool</type><template>
          <template-type-parameter name="HeapType"/>
        </template><parameter name="rhs"><paramtype>HeapType const &amp;</paramtype></parameter><description><para><emphasis role="bold">Returns:</emphasis> Element-wise comparison of heap data structures</para><para><emphasis role="bold">Requirement:</emphasis> the <computeroutput>value_compare</computeroutput> object of both heaps must match.    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1d__ary__heap_1a615141efc0cd59a18143ddfa25361ceb" name="operator&gt;" cv="const"><type>bool</type><template>
          <template-type-parameter name="HeapType"/>
        </template><parameter name="rhs"><paramtype>HeapType const &amp;</paramtype></parameter><description><para><emphasis role="bold">Returns:</emphasis> Element-wise comparison of heap data structures</para><para><emphasis role="bold">Requirement:</emphasis> the <computeroutput>value_compare</computeroutput> object of both heaps must match.    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1d__ary__heap_1aafede81298985cc4b608680463f1918a" name="operator&gt;=" cv="const"><type>bool</type><template>
          <template-type-parameter name="HeapType"/>
        </template><parameter name="rhs"><paramtype>HeapType const &amp;</paramtype></parameter><description><para><emphasis role="bold">Returns:</emphasis> Element-wise comparison of heap data structures</para><para><emphasis role="bold">Requirement:</emphasis> the <computeroutput>value_compare</computeroutput> object of both heaps must match.    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1d__ary__heap_1a73c040da45f2bce1b69e1250b404ebb7" name="operator&lt;=" cv="const"><type>bool</type><template>
          <template-type-parameter name="HeapType"/>
        </template><parameter name="rhs"><paramtype>HeapType const &amp;</paramtype></parameter><description><para><emphasis role="bold">Returns:</emphasis> Element-wise comparison of heap data structures</para><para><emphasis role="bold">Requirement:</emphasis> the <computeroutput>value_compare</computeroutput> object of both heaps must match.    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1d__ary__heap_1a6b85fd3bfd4e6d072cf189f3b88b6f6e" name="operator==" cv="const"><type>bool</type><template>
          <template-type-parameter name="HeapType"/>
        </template><parameter name="rhs"><paramtype>HeapType const &amp;</paramtype></parameter><purpose>Equivalent comparison <emphasis role="bold">Returns:</emphasis> True, if both heap data structures are equivalent.    </purpose><description><para><emphasis role="bold">Requirement:</emphasis> the <computeroutput>value_compare</computeroutput> object of both heaps must match.    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1d__ary__heap_1ae35002bcc49ea41f60d862465cb5ea20" name="operator!=" cv="const"><type>bool</type><template>
          <template-type-parameter name="HeapType"/>
        </template><parameter name="rhs"><paramtype>HeapType const &amp;</paramtype></parameter><purpose>Equivalent comparison <emphasis role="bold">Returns:</emphasis> True, if both heap data structures are not equivalent.    </purpose><description><para><emphasis role="bold">Requirement:</emphasis> the <computeroutput>value_compare</computeroutput> object of both heaps must match.    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1d__ary__heap_1a5a40acdd88b4e0d4a2844eb2036e7652" name="update"><type>void</type><parameter name="handle"><paramtype>handle_type</paramtype></parameter><parameter name="v"><paramtype>const_reference</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Assigns <computeroutput>v</computeroutput> to the element handled by <computeroutput>handle</computeroutput> &amp; updates the priority queue.</para><para><emphasis role="bold">Complexity:</emphasis> Logarithmic.</para><para><emphasis role="bold">Requirement:</emphasis> data structure must be configured as mutable </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1d__ary__heap_1a0844e5f0a021d2dc274efc4f75f18e83" name="update"><type>void</type><parameter name="handle"><paramtype>handle_type</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Updates the heap after the element handled by <computeroutput>handle</computeroutput> has been changed.</para><para><emphasis role="bold">Complexity:</emphasis> Logarithmic.</para><para><emphasis role="bold">Note:</emphasis> If this is not called, after a handle has been updated, the behavior of the data structure is undefined!</para><para><emphasis role="bold">Requirement:</emphasis> data structure must be configured as mutable </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1d__ary__heap_1a28deeccf26e81dcd6cbe84c04e6592e9" name="increase"><type>void</type><parameter name="handle"><paramtype>handle_type</paramtype></parameter><parameter name="v"><paramtype>const_reference</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Assigns <computeroutput>v</computeroutput> to the element handled by <computeroutput>handle</computeroutput> &amp; updates the priority queue.</para><para><emphasis role="bold">Complexity:</emphasis> Logarithmic.</para><para><emphasis role="bold">Note:</emphasis> The new value is expected to be greater than the current one</para><para><emphasis role="bold">Requirement:</emphasis> data structure must be configured as mutable </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1d__ary__heap_1a47b8c52d86aa4d4b5a1205ce9377f24b" name="increase"><type>void</type><parameter name="handle"><paramtype>handle_type</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Updates the heap after the element handled by <computeroutput>handle</computeroutput> has been changed.</para><para><emphasis role="bold">Complexity:</emphasis> Logarithmic.</para><para><emphasis role="bold">Note:</emphasis> 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!</para><para><emphasis role="bold">Requirement:</emphasis> data structure must be configured as mutable </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1d__ary__heap_1a26f5e87cee72497faee3b41998d28843" name="decrease"><type>void</type><parameter name="handle"><paramtype>handle_type</paramtype></parameter><parameter name="v"><paramtype>const_reference</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Assigns <computeroutput>v</computeroutput> to the element handled by <computeroutput>handle</computeroutput> &amp; updates the priority queue.</para><para><emphasis role="bold">Complexity:</emphasis> Logarithmic.</para><para><emphasis role="bold">Note:</emphasis> The new value is expected to be less than the current one</para><para><emphasis role="bold">Requirement:</emphasis> data structure must be configured as mutable </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1d__ary__heap_1a9f481afa0044823d428f3596027fbdc0" name="decrease"><type>void</type><parameter name="handle"><paramtype>handle_type</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Updates the heap after the element handled by <computeroutput>handle</computeroutput> has been changed.</para><para><emphasis role="bold">Complexity:</emphasis> Logarithmic.</para><para><emphasis role="bold">Note:</emphasis> 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!</para><para><emphasis role="bold">Requirement:</emphasis> data structure must be configured as mutable </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1d__ary__heap_1a5d1b9fa9f2fb6c79b66c655427108347" name="erase"><type>void</type><parameter name="handle"><paramtype>handle_type</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Removes the element handled by <computeroutput>handle</computeroutput> from the <link linkend="doxygen.classboost_1_1heap_1_1priority__queue">priority_queue</link>.</para><para><emphasis role="bold">Complexity:</emphasis> Logarithmic.</para><para><emphasis role="bold">Requirement:</emphasis> data structure must be configured as mutable </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1d__ary__heap_1a5afcde76809638f928af3837a0573a8a" name="pop"><type>void</type><parameter name=""><paramtype>void</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Removes the top element from the priority queue.</para><para><emphasis role="bold">Complexity:</emphasis> Logarithmic (amortized). Linear (worst case).    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1d__ary__heap_1a13a3239b65057604ace276848ecc0f65" name="swap"><type>void</type><parameter name="rhs"><paramtype><classname>d_ary_heap</classname> &amp;</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Swaps two priority queues.</para><para><emphasis role="bold">Complexity:</emphasis> Constant.</para><para><xrefsect id="deprecated_1_deprecated000001"><xreftitle>Deprecated</xreftitle><xrefdescription><para>Use <computeroutput>std::swap</computeroutput> instead. </para>
</xrefdescription></xrefsect></para></description></method>
<method id="doxygen.classboost_1_1heap_1_1d__ary__heap_1a79515a98d2a28784bdeab74b77cd2e7b" name="begin" cv="const"><type>const_iterator</type><parameter name=""><paramtype>void</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Returns an iterator to the first element contained in the priority queue.</para><para><emphasis role="bold">Complexity:</emphasis> Constant.    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1d__ary__heap_1abb7de9c3c96705901f0bb2d78ad944e3" name="begin"><type>iterator</type><parameter name=""><paramtype>void</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Returns an iterator to the first element contained in the priority queue.</para><para><emphasis role="bold">Complexity:</emphasis> Constant.    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1d__ary__heap_1a8b85d2d0ecb2637b12e7997a7d18ecc7" name="end"><type>iterator</type><parameter name=""><paramtype>void</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Returns an iterator to the end of the priority queue.</para><para><emphasis role="bold">Complexity:</emphasis> Constant.    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1d__ary__heap_1ab913ab7aff6cea68331ca535f72a2bf2" name="end" cv="const"><type>const_iterator</type><parameter name=""><paramtype>void</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Returns an iterator to the end of the priority queue.</para><para><emphasis role="bold">Complexity:</emphasis> Constant.    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1d__ary__heap_1a29940c60e961250c3406bc878f226c85" name="ordered_begin" cv="const"><type>ordered_iterator</type><parameter name=""><paramtype>void</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Returns an ordered iterator to the first element contained in the priority queue.</para><para><emphasis role="bold">Note:</emphasis> Ordered iterators traverse the priority queue in heap order.    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1d__ary__heap_1ad8b99531e83c146743f01b7dcead12b4" name="ordered_end" cv="const"><type>ordered_iterator</type><parameter name=""><paramtype>void</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Returns an ordered iterator to the end of the priority queue.</para><para><emphasis role="bold">Note:</emphasis> Ordered iterators traverse the priority queue in heap order.    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1d__ary__heap_1a56f85b2c854c292646e075d47bd21949" name="reserve"><type>void</type><parameter name="element_count"><paramtype>size_type</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Reserves memory for element_count elements</para><para><emphasis role="bold">Complexity:</emphasis> Linear.</para><para><emphasis role="bold">Node:</emphasis> Invalidates iterators    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1d__ary__heap_1af44a5b27b7de1169cde0f208f6f796f2" name="value_comp" cv="const"><type>value_compare const &amp;</type><parameter name=""><paramtype>void</paramtype></parameter><description><para><emphasis role="bold">Effect:</emphasis> Returns the value_compare object used by the priority queue    </para></description></method>
</method-group>
<method-group name="public static functions">
<method id="doxygen.classboost_1_1heap_1_1d__ary__heap_1a6f8c114dba213a386c3454a6d2e91a06" name="s_handle_from_iterator" specifiers="static"><type>handle_type</type><parameter name="it"><paramtype>iterator const &amp;</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Casts an iterator to a node handle.</para><para><emphasis role="bold">Complexity:</emphasis> Constant.</para><para><emphasis role="bold">Requirement:</emphasis> data structure must be configured as mutable </para></description></method>
</method-group>
<method-group name="private member functions">
<method id="doxygen.classboost_1_1heap_1_1d__ary__heap_1acce10b5f7c5cee8b3611349a179580a6" name="do_swap"><type>void</type><parameter name="rhs"><paramtype><classname>d_ary_heap</classname> &amp;</paramtype></parameter></method>
</method-group>
</class>
</namespace>
</namespace>
</header>
<header id="doxygen.fibonacci__heap_8hpp" name="boost/heap/fibonacci_heap.hpp">
<namespace name="boost">
<namespace name="heap">
<class id="doxygen.classboost_1_1heap_1_1fibonacci__heap" name="fibonacci_heap"><template>
      <template-type-parameter name="T"/>
      <template-nontype-parameter name="Options"><type>class...</type></template-nontype-parameter>
    </template><purpose>fibonacci heap </purpose><description><para>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.</para><para>The container supports the following options:<itemizedlist>
<listitem><para><computeroutput><link linkend="doxygen.structboost_1_1heap_1_1stable">boost::heap::stable&lt;&gt;</link></computeroutput>, defaults to <computeroutput><link linkend="doxygen.structboost_1_1heap_1_1stable">stable&lt;false&gt;</link></computeroutput> </para>
</listitem><listitem><para><computeroutput><link linkend="doxygen.structboost_1_1heap_1_1compare">boost::heap::compare&lt;&gt;</link></computeroutput>, defaults to <computeroutput>compare&lt;std::less&lt;T&gt;</computeroutput> &gt;</para>
</listitem><listitem><para><computeroutput><link linkend="doxygen.structboost_1_1heap_1_1allocator">boost::heap::allocator&lt;&gt;</link></computeroutput>, defaults to <computeroutput>allocator&lt;std::allocator&lt;T&gt;</computeroutput> &gt;</para>
</listitem><listitem><para><computeroutput><link linkend="doxygen.structboost_1_1heap_1_1constant__time__size">boost::heap::constant_time_size&lt;&gt;</link></computeroutput>, defaults to <computeroutput><link linkend="doxygen.structboost_1_1heap_1_1constant__time__size">constant_time_size&lt;true&gt;</link></computeroutput> </para>
</listitem><listitem><para><computeroutput><link linkend="doxygen.structboost_1_1heap_1_1stability__counter__type">boost::heap::stability_counter_type&lt;&gt;</link></computeroutput>, defaults to <computeroutput><link linkend="doxygen.structboost_1_1heap_1_1stability__counter__type">stability_counter_type&lt;boost::uintmax_t&gt;</link></computeroutput> </para>
</listitem></itemizedlist>
</para></description><typedef id="doxygen.classboost_1_1heap_1_1fibonacci__heap_1ac1d2bf4e24bc5cd8aeb8e25e8e8706ca" name="value_type"><type>T</type></typedef>
<typedef id="doxygen.classboost_1_1heap_1_1fibonacci__heap_1a5679d6eed2a303db4cd1e66d65bade43" name="size_type"><type>implementation_defined::size_type</type></typedef>
<typedef id="doxygen.classboost_1_1heap_1_1fibonacci__heap_1af8c5ea02461436de26c69d85abf240b8" name="difference_type"><type>implementation_defined::difference_type</type></typedef>
<typedef id="doxygen.classboost_1_1heap_1_1fibonacci__heap_1ae475802332b6429267a04d9693089e3d" name="value_compare"><type>implementation_defined::value_compare</type></typedef>
<typedef id="doxygen.classboost_1_1heap_1_1fibonacci__heap_1af8e23ff472eb6fcefec42f502a8dc2ef" name="allocator_type"><type>implementation_defined::allocator_type</type></typedef>
<typedef id="doxygen.classboost_1_1heap_1_1fibonacci__heap_1a96d99f074d4c13c66c6abf66c67cb838" name="reference"><type>implementation_defined::reference</type></typedef>
<typedef id="doxygen.classboost_1_1heap_1_1fibonacci__heap_1a6cd47628430e2816a19c4d209a05d84e" name="const_reference"><type>implementation_defined::const_reference</type></typedef>
<typedef id="doxygen.classboost_1_1heap_1_1fibonacci__heap_1a1035f0c2df48bfd34febf2bfe384aa14" name="pointer"><type>implementation_defined::pointer</type></typedef>
<typedef id="doxygen.classboost_1_1heap_1_1fibonacci__heap_1a8bf86e91a3f312d652d68367badcc6e3" name="const_pointer"><type>implementation_defined::const_pointer</type></typedef>
<typedef id="doxygen.classboost_1_1heap_1_1fibonacci__heap_1ad668f602c85b4f4f62f87f7d007b8c55" name="iterator"><description><para><emphasis role="bold">Note:</emphasis> The iterator does not traverse the priority queue in order of the priorities.    </para></description><type>implementation_defined::iterator</type></typedef>
<typedef id="doxygen.classboost_1_1heap_1_1fibonacci__heap_1a617bb128b3a2f70e49069686c2e18010" name="const_iterator"><type>implementation_defined::const_iterator</type></typedef>
<typedef id="doxygen.classboost_1_1heap_1_1fibonacci__heap_1ad57e3a8061b9cd25967e0fadff6ab855" name="ordered_iterator"><type>implementation_defined::ordered_iterator</type></typedef>
<typedef id="doxygen.classboost_1_1heap_1_1fibonacci__heap_1ab3ca153240c2453b19a6f7193ea814f9" name="handle_type"><type>implementation_defined::handle_type</type></typedef>
<data-member id="doxygen.classboost_1_1heap_1_1fibonacci__heap_1a1d0b11254c820e5a4bd18f6e8fe2b263" name="constant_time_size" specifiers="static"><type>const bool</type></data-member>
<data-member id="doxygen.classboost_1_1heap_1_1fibonacci__heap_1a3c0caf3caa538c23a9e109fd0636ecf6" name="has_ordered_iterators" specifiers="static"><type>const bool</type></data-member>
<data-member id="doxygen.classboost_1_1heap_1_1fibonacci__heap_1aa0845d8cebd1cf82e8434381545fc2af" name="is_mergable" specifiers="static"><type>const bool</type></data-member>
<data-member id="doxygen.classboost_1_1heap_1_1fibonacci__heap_1a8b97bd80fe4e8560dea6beee61d251b5" name="is_stable" specifiers="static"><type>const bool</type></data-member>
<data-member id="doxygen.classboost_1_1heap_1_1fibonacci__heap_1a6837a216d491a341acbee9dfb6edc7e3" name="has_reserve" specifiers="static"><type>const bool</type></data-member>
<method-group name="public member functions">
<constructor id="doxygen.classboost_1_1heap_1_1fibonacci__heap_1a88de42c72d5b96168cd0072fa3f70296" specifiers="explicit"><parameter name="cmp"><paramtype>value_compare const &amp;</paramtype><default>value_compare()</default></parameter><description><para><emphasis role="bold">Effects:</emphasis> constructs an empty priority queue.</para><para><emphasis role="bold">Complexity:</emphasis> Constant.    </para></description></constructor>
<constructor id="doxygen.classboost_1_1heap_1_1fibonacci__heap_1a52fa17a9e41ca434489144d4f5108cf7" specifiers="explicit"><parameter name="alloc"><paramtype>allocator_type const &amp;</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> constructs an empty priority queue.</para><para><emphasis role="bold">Complexity:</emphasis> Constant.    </para></description></constructor>
<constructor id="doxygen.classboost_1_1heap_1_1fibonacci__heap_1a75c06a03d568de8fcdef3a10de3bbfd0"><parameter name="rhs"><paramtype><classname>fibonacci_heap</classname> const &amp;</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> copy-constructs priority queue from rhs.</para><para><emphasis role="bold">Complexity:</emphasis> Linear.    </para></description></constructor>
<constructor id="doxygen.classboost_1_1heap_1_1fibonacci__heap_1af14e5370f241b32d752bfc2e8fa3e899"><parameter name="rhs"><paramtype><classname>fibonacci_heap</classname> &amp;&amp;</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> C++11-style move constructor.</para><para><emphasis role="bold">Complexity:</emphasis> Constant.    </para></description></constructor>
<copy-assignment id="doxygen.classboost_1_1heap_1_1fibonacci__heap_1a4dcbfd052d59dc0b073189c171715a84"><type><classname>fibonacci_heap</classname> &amp;</type><parameter name="rhs"><paramtype><classname>fibonacci_heap</classname> &amp;&amp;</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> C++11-style move assignment.</para><para><emphasis role="bold">Complexity:</emphasis> Constant.    </para></description></copy-assignment>
<copy-assignment id="doxygen.classboost_1_1heap_1_1fibonacci__heap_1a76cd5ae2df69561c1c82a49c6d89c697"><type><classname>fibonacci_heap</classname> &amp;</type><parameter name="rhs"><paramtype><classname>fibonacci_heap</classname> const &amp;</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Assigns priority queue from rhs.</para><para><emphasis role="bold">Complexity:</emphasis> Linear.    </para></description></copy-assignment>
<destructor id="doxygen.classboost_1_1heap_1_1fibonacci__heap_1aba478cb4aa6276416d4eb03b94a89ae9"><parameter name=""><paramtype>void</paramtype></parameter></destructor>
<method id="doxygen.classboost_1_1heap_1_1fibonacci__heap_1a5df43f60440a737d36ab3d89c8a9d353" name="empty" cv="const"><type>bool</type><parameter name=""><paramtype>void</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Returns true, if the priority queue contains no elements.</para><para><emphasis role="bold">Complexity:</emphasis> Constant.    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1fibonacci__heap_1a806cbca4626df1ad6fbc727f035afca3" name="size" cv="const"><type>size_type</type><parameter name=""><paramtype>void</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Returns the number of elements contained in the priority queue.</para><para><emphasis role="bold">Complexity:</emphasis> Constant.    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1fibonacci__heap_1a83177e56d23af15aabee5684c9eb4c0b" name="max_size" cv="const"><type>size_type</type><parameter name=""><paramtype>void</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Returns the maximum number of elements the priority queue can contain.</para><para><emphasis role="bold">Complexity:</emphasis> Constant.    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1fibonacci__heap_1a66fac21a6e25ded5deee2873e3883a3d" name="clear"><type>void</type><parameter name=""><paramtype>void</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Removes all elements from the priority queue.</para><para><emphasis role="bold">Complexity:</emphasis> Linear.    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1fibonacci__heap_1ab7bb1b2560706a61cfffdb0111a3a908" name="get_allocator" cv="const"><type>allocator_type</type><parameter name=""><paramtype>void</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Returns allocator.</para><para><emphasis role="bold">Complexity:</emphasis> Constant.    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1fibonacci__heap_1a4c350ed4055868054dd3484fcbd83768" name="swap"><type>void</type><parameter name="rhs"><paramtype><classname>fibonacci_heap</classname> &amp;</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Swaps two priority queues.</para><para><emphasis role="bold">Complexity:</emphasis> Constant.</para><para><xrefsect id="deprecated_1_deprecated000001"><xreftitle>Deprecated</xreftitle><xrefdescription><para>Use <computeroutput>std::swap</computeroutput> instead. </para>
</xrefdescription></xrefsect></para></description></method>
<method id="doxygen.classboost_1_1heap_1_1fibonacci__heap_1a1da18a07438064f76464d0682ba53c62" name="top" cv="const"><type>value_type const &amp;</type><parameter name=""><paramtype>void</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Returns a const_reference to the maximum element.</para><para><emphasis role="bold">Complexity:</emphasis> Constant.    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1fibonacci__heap_1a2891b7ec20a2d980aca52d9876c89fe6" name="push"><type>handle_type</type><parameter name="v"><paramtype>value_type const &amp;</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Adds a new element to the priority queue. Returns handle to element</para><para><emphasis role="bold">Complexity:</emphasis> Constant.</para><para><emphasis role="bold">Note:</emphasis> Does not invalidate iterators. </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1fibonacci__heap_1a7c099a60a4f169bf7190c2a5e62dd339" name="emplace"><type>handle_type</type><template>
          <template-nontype-parameter name="Args"><type>class...</type></template-nontype-parameter>
        </template><parameter name="args"><paramtype>Args &amp;&amp;...</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Adds a new element to the priority queue. The element is directly constructed in-place. Returns handle to element.</para><para><emphasis role="bold">Complexity:</emphasis> Constant.</para><para><emphasis role="bold">Note:</emphasis> Does not invalidate iterators. </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1fibonacci__heap_1aff63e7833e6218378aa2c77e94904ab2" name="pop"><type>void</type><parameter name=""><paramtype>void</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Removes the top element from the priority queue.</para><para><emphasis role="bold">Complexity:</emphasis> Logarithmic (amortized). Linear (worst case). </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1fibonacci__heap_1ad11c90bb3720f20d359e03f95356a00b" name="update"><type>void</type><parameter name="handle"><paramtype>handle_type</paramtype></parameter><parameter name="v"><paramtype>const_reference</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Assigns <computeroutput>v</computeroutput> to the element handled by <computeroutput>handle</computeroutput> &amp; updates the priority queue.</para><para><emphasis role="bold">Complexity:</emphasis> Logarithmic if current value &lt; v, Constant otherwise. </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1fibonacci__heap_1a0dc0ce5d5c64f65865a0b734e03f3562" name="update_lazy"><type>void</type><parameter name="handle"><paramtype>handle_type</paramtype></parameter><parameter name="v"><paramtype>const_reference</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Assigns <computeroutput>v</computeroutput> to the element handled by <computeroutput>handle</computeroutput> &amp; updates the priority queue.</para><para><emphasis role="bold">Complexity:</emphasis> Logarithmic if current value &lt; v, Constant otherwise.   </para><para><emphasis role="bold">Rationale:</emphasis> The lazy update function is a modification of the traditional update, that just invalidates the iterator to the object referred to by the handle. </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1fibonacci__heap_1a039d6348a121f7154e2fd46379914a4c" name="update"><type>void</type><parameter name="handle"><paramtype>handle_type</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Updates the heap after the element handled by <computeroutput>handle</computeroutput> has been changed.</para><para><emphasis role="bold">Complexity:</emphasis> Logarithmic.</para><para><emphasis role="bold">Note:</emphasis> If this is not called, after a handle has been updated, the behavior of the data structure is undefined! </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1fibonacci__heap_1a087a328068e75c95fdb55300e7f2e207" name="update_lazy"><type>void</type><parameter name="handle"><paramtype>handle_type</paramtype></parameter><purpose>(handle_type handle) </purpose><description><para><emphasis role="bold">Effects:</emphasis> Assigns <computeroutput>v</computeroutput> to the element handled by <computeroutput>handle</computeroutput> &amp; updates the priority queue.</para><para><emphasis role="bold">Complexity:</emphasis> Logarithmic if current value &lt; v, Constant otherwise.    (handle_type handle)</para><para><emphasis role="bold">Rationale:</emphasis> The lazy update function is a modification of the traditional update, that just invalidates the iterator to the object referred to by the handle. </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1fibonacci__heap_1adb0b4c48903bec83dd2c6ccf227f9435" name="increase"><type>void</type><parameter name="handle"><paramtype>handle_type</paramtype></parameter><parameter name="v"><paramtype>const_reference</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Assigns <computeroutput>v</computeroutput> to the element handled by <computeroutput>handle</computeroutput> &amp; updates the priority queue.</para><para><emphasis role="bold">Complexity:</emphasis> Constant.</para><para><emphasis role="bold">Note:</emphasis> The new value is expected to be greater than the current one </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1fibonacci__heap_1abeb0399cc68e6ed53fc6593e22c1c4f7" name="increase"><type>void</type><parameter name="handle"><paramtype>handle_type</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Updates the heap after the element handled by <computeroutput>handle</computeroutput> has been changed.</para><para><emphasis role="bold">Complexity:</emphasis> Constant.</para><para><emphasis role="bold">Note:</emphasis> If this is not called, after a handle has been updated, the behavior of the data structure is undefined! </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1fibonacci__heap_1afa9cdfd03434edf112363623744f0c78" name="decrease"><type>void</type><parameter name="handle"><paramtype>handle_type</paramtype></parameter><parameter name="v"><paramtype>const_reference</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Assigns <computeroutput>v</computeroutput> to the element handled by <computeroutput>handle</computeroutput> &amp; updates the priority queue.</para><para><emphasis role="bold">Complexity:</emphasis> Logarithmic.</para><para><emphasis role="bold">Note:</emphasis> The new value is expected to be less than the current one </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1fibonacci__heap_1a4f87247adfac86270a70a0f099b1e908" name="decrease"><type>void</type><parameter name="handle"><paramtype>handle_type</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Updates the heap after the element handled by <computeroutput>handle</computeroutput> has been changed.</para><para><emphasis role="bold">Complexity:</emphasis> Logarithmic.</para><para><emphasis role="bold">Note:</emphasis> 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! </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1fibonacci__heap_1ac620f86e8937dfc495945d14395b06c4" name="erase"><type>void</type><parameter name="handle"><paramtype>handle_type const &amp;</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Removes the element handled by <computeroutput>handle</computeroutput> from the <link linkend="doxygen.classboost_1_1heap_1_1priority__queue">priority_queue</link>.</para><para><emphasis role="bold">Complexity:</emphasis> Logarithmic. </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1fibonacci__heap_1a441e8072e4889664214f34cfcebb3c17" name="begin" cv="const"><type>iterator</type><parameter name=""><paramtype>void</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Returns an iterator to the first element contained in the priority queue.</para><para><emphasis role="bold">Complexity:</emphasis> Constant.    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1fibonacci__heap_1a83501acc7c74d06e2f2bc9c89d9678b9" name="end" cv="const"><type>iterator</type><parameter name=""><paramtype>void</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Returns an iterator to the end of the priority queue.</para><para><emphasis role="bold">Complexity:</emphasis> Constant.    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1fibonacci__heap_1a4009addc28b9dd59d8d590f7b6e02daf" name="ordered_begin" cv="const"><type>ordered_iterator</type><parameter name=""><paramtype>void</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Returns an ordered iterator to the first element contained in the priority queue.</para><para><emphasis role="bold">Note:</emphasis> Ordered iterators traverse the priority queue in heap order. </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1fibonacci__heap_1a2aed53eadf7bfac3b7f9b1354a7e1762" name="ordered_end" cv="const"><type>ordered_iterator</type><parameter name=""><paramtype>void</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Returns an ordered iterator to the end of the priority queue.</para><para><emphasis role="bold">Note:</emphasis> Ordered iterators traverse the priority queue in heap order. </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1fibonacci__heap_1a5106042078e6c49373d82e365ddbd072" name="merge"><type>void</type><parameter name="rhs"><paramtype><classname>fibonacci_heap</classname> &amp;</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Merge with priority queue rhs.</para><para><emphasis role="bold">Complexity:</emphasis> Constant. </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1fibonacci__heap_1a2c877596491990414d5484d556feb4f1" name="value_comp" cv="const"><type>value_compare const &amp;</type><parameter name=""><paramtype>void</paramtype></parameter><description><para><emphasis role="bold">Effect:</emphasis> Returns the value_compare object used by the priority queue    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1fibonacci__heap_1a60d78aebabb45540d6b9b665b2ff9c42" name="operator&lt;" cv="const"><type>bool</type><template>
          <template-type-parameter name="HeapType"/>
        </template><parameter name="rhs"><paramtype>HeapType const &amp;</paramtype></parameter><description><para><emphasis role="bold">Returns:</emphasis> Element-wise comparison of heap data structures</para><para><emphasis role="bold">Requirement:</emphasis> the <computeroutput>value_compare</computeroutput> object of both heaps must match.    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1fibonacci__heap_1ae25be378304e9ada24549fe3a069eb3f" name="operator&gt;" cv="const"><type>bool</type><template>
          <template-type-parameter name="HeapType"/>
        </template><parameter name="rhs"><paramtype>HeapType const &amp;</paramtype></parameter><description><para><emphasis role="bold">Returns:</emphasis> Element-wise comparison of heap data structures</para><para><emphasis role="bold">Requirement:</emphasis> the <computeroutput>value_compare</computeroutput> object of both heaps must match.    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1fibonacci__heap_1a69ca5dd4f788bb6e4529c14910f7ca9b" name="operator&gt;=" cv="const"><type>bool</type><template>
          <template-type-parameter name="HeapType"/>
        </template><parameter name="rhs"><paramtype>HeapType const &amp;</paramtype></parameter><description><para><emphasis role="bold">Returns:</emphasis> Element-wise comparison of heap data structures</para><para><emphasis role="bold">Requirement:</emphasis> the <computeroutput>value_compare</computeroutput> object of both heaps must match.    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1fibonacci__heap_1af605a12639bc6c8f3dfe2179025d65df" name="operator&lt;=" cv="const"><type>bool</type><template>
          <template-type-parameter name="HeapType"/>
        </template><parameter name="rhs"><paramtype>HeapType const &amp;</paramtype></parameter><description><para><emphasis role="bold">Returns:</emphasis> Element-wise comparison of heap data structures</para><para><emphasis role="bold">Requirement:</emphasis> the <computeroutput>value_compare</computeroutput> object of both heaps must match.    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1fibonacci__heap_1a30ef68c10b49f994a9c3212c3983a28e" name="operator==" cv="const"><type>bool</type><template>
          <template-type-parameter name="HeapType"/>
        </template><parameter name="rhs"><paramtype>HeapType const &amp;</paramtype></parameter><purpose>Equivalent comparison <emphasis role="bold">Returns:</emphasis> True, if both heap data structures are equivalent.    </purpose><description><para><emphasis role="bold">Requirement:</emphasis> the <computeroutput>value_compare</computeroutput> object of both heaps must match.    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1fibonacci__heap_1a77412fa18342ac572042d8d2fea00cd0" name="operator!=" cv="const"><type>bool</type><template>
          <template-type-parameter name="HeapType"/>
        </template><parameter name="rhs"><paramtype>HeapType const &amp;</paramtype></parameter><purpose>Equivalent comparison <emphasis role="bold">Returns:</emphasis> True, if both heap data structures are not equivalent.    </purpose><description><para><emphasis role="bold">Requirement:</emphasis> the <computeroutput>value_compare</computeroutput> object of both heaps must match.    </para></description></method>
</method-group>
<method-group name="public static functions">
<method id="doxygen.classboost_1_1heap_1_1fibonacci__heap_1aae4d2240241a5e21bbbf6d1603e04be0" name="s_handle_from_iterator" specifiers="static"><type>handle_type</type><parameter name="it"><paramtype>iterator const &amp;</paramtype></parameter></method>
</method-group>
</class>
</namespace>
</namespace>
</header>
<header id="doxygen.heap__concepts_8hpp" name="boost/heap/heap_concepts.hpp">
<namespace name="boost">
<namespace name="heap">
<struct id="doxygen.structboost_1_1heap_1_1MergablePriorityQueue" name="MergablePriorityQueue"><template>
      <template-type-parameter name="C"/>
    </template><inherit access="public">boost::heap::PriorityQueue&lt; C &gt;</inherit><method-group name="public member functions">
<method id="doxygen.structboost_1_1heap_1_1MergablePriorityQueue_1a73b091e16a98c774d4f794dc2288b398" name="BOOST_CONCEPT_USAGE"><type/><parameter name=""><paramtype>MergablePriorityQueue</paramtype></parameter></method>
<method name="BOOST_CONCEPT_USAGE"><type/><parameter name=""><paramtype>PriorityQueue</paramtype></parameter></method>
</method-group>
<typedef name="iterator"><type>C::iterator</type></typedef>
<typedef name="const_iterator"><type>C::const_iterator</type></typedef>
<typedef name="allocator_type"><type>C::allocator_type</type></typedef>
<typedef name="value_compare"><type>C::value_compare</type></typedef>
<typedef name="value_type"><type>C::value_type</type></typedef>
<typedef name="const_reference"><type>C::const_reference</type></typedef>
</struct><struct id="doxygen.structboost_1_1heap_1_1MutablePriorityQueue" name="MutablePriorityQueue"><template>
      <template-type-parameter name="C"/>
    </template><inherit access="public">boost::heap::PriorityQueue&lt; C &gt;</inherit><typedef id="doxygen.structboost_1_1heap_1_1MutablePriorityQueue_1ae53e3b248c8277797d7e039c92b706d6" name="handle_type"><type>C::handle_type</type></typedef>
<typedef name="iterator"><type>C::iterator</type></typedef>
<typedef name="const_iterator"><type>C::const_iterator</type></typedef>
<typedef name="allocator_type"><type>C::allocator_type</type></typedef>
<typedef name="value_compare"><type>C::value_compare</type></typedef>
<typedef name="value_type"><type>C::value_type</type></typedef>
<typedef name="const_reference"><type>C::const_reference</type></typedef>
<data-member id="doxygen.structboost_1_1heap_1_1MutablePriorityQueue_1a604e237c8d50f1eebc1dde8f338d70d9" name="c"><type>C</type></data-member>
<data-member id="doxygen.structboost_1_1heap_1_1MutablePriorityQueue_1a8ff1ca0144a7d865793c3b004d1b7e1d" name="equal"><type>bool</type></data-member>
<data-member id="doxygen.structboost_1_1heap_1_1MutablePriorityQueue_1a56414d3a6fff3b96a24520310ad01cbe" name="not_equal"><type>bool</type></data-member>
<method-group name="public member functions">
<method id="doxygen.structboost_1_1heap_1_1MutablePriorityQueue_1a8b5722f07acf5186c79aa188223e7a86" name="BOOST_CONCEPT_USAGE"><type/><parameter name=""><paramtype>MutablePriorityQueue</paramtype></parameter></method>
<method name="BOOST_CONCEPT_USAGE"><type/><parameter name=""><paramtype>PriorityQueue</paramtype></parameter></method>
</method-group>
</struct><struct id="doxygen.structboost_1_1heap_1_1PriorityQueue" name="PriorityQueue"><template>
      <template-type-parameter name="C"/>
    </template><inherit access="public">boost::ForwardContainer&lt; C &gt;</inherit><typedef id="doxygen.structboost_1_1heap_1_1PriorityQueue_1aa11c88a44e1d64384c8cd477f2599579" name="iterator"><type>C::iterator</type></typedef>
<typedef id="doxygen.structboost_1_1heap_1_1PriorityQueue_1a9fd38ca614ba9ffc62034ecaa01aeca2" name="const_iterator"><type>C::const_iterator</type></typedef>
<typedef id="doxygen.structboost_1_1heap_1_1PriorityQueue_1a6150289913caf28e048ce511db2aee77" name="allocator_type"><type>C::allocator_type</type></typedef>
<typedef id="doxygen.structboost_1_1heap_1_1PriorityQueue_1ae1435e41327243eecdbbf126fce6dd56" name="value_compare"><type>C::value_compare</type></typedef>
<typedef id="doxygen.structboost_1_1heap_1_1PriorityQueue_1a65e2e6db5e7679bda9fe5a9ecfc16fe7" name="value_type"><type>C::value_type</type></typedef>
<typedef id="doxygen.structboost_1_1heap_1_1PriorityQueue_1a973149d5b94f622821250431b095420a" name="const_reference"><type>C::const_reference</type></typedef>
<method-group name="public member functions">
<method id="doxygen.structboost_1_1heap_1_1PriorityQueue_1a18d49b3b666821f030c31dd4aed4c684" name="BOOST_CONCEPT_USAGE"><type/><parameter name=""><paramtype>PriorityQueue</paramtype></parameter></method>
</method-group>
</struct>
</namespace>
</namespace>
</header>
<header id="doxygen.heap__merge_8hpp" name="boost/heap/heap_merge.hpp">
<namespace name="boost">
<namespace name="heap">
<function id="doxygen.heap__merge_8hpp_1ad7a7d077deb1ad35cc580aed68e87632" name="heap_merge"><type>void</type><template>
          <template-type-parameter name="Heap1"/>
          <template-type-parameter name="Heap2"/>
        </template><parameter name="lhs"><paramtype>Heap1 &amp;</paramtype></parameter><parameter name="rhs"><paramtype>Heap2 &amp;</paramtype></parameter><description><para>merge rhs into lhs</para><para><emphasis role="bold">Effect:</emphasis> lhs contains all elements that have been part of rhs, rhs is empty. </para></description></function>
</namespace>
</namespace>
</header>
<header id="doxygen.pairing__heap_8hpp" name="boost/heap/pairing_heap.hpp">
<namespace name="boost">
<namespace name="heap">
<class id="doxygen.classboost_1_1heap_1_1pairing__heap" name="pairing_heap"><template>
      <template-type-parameter name="T"/>
      <template-nontype-parameter name="Options"><type>class...</type></template-nontype-parameter>
    </template><purpose>pairing heap </purpose><description><para>Pairing heaps are self-adjusting binary heaps. Although design and implementation are rather simple, the complexity analysis is yet unsolved. For details, consult:</para><para>Pettie, Seth (2005), "Towards a final analysis of pairing heaps", Proc. 46th Annual IEEE Symposium on Foundations of Computer Science, pp. 174-183</para><para>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.</para><para>The container supports the following options:<itemizedlist>
<listitem><para><computeroutput><link linkend="doxygen.structboost_1_1heap_1_1compare">boost::heap::compare&lt;&gt;</link></computeroutput>, defaults to <computeroutput>compare&lt;std::less&lt;T&gt;</computeroutput> &gt;</para>
</listitem><listitem><para><computeroutput><link linkend="doxygen.structboost_1_1heap_1_1stable">boost::heap::stable&lt;&gt;</link></computeroutput>, defaults to <computeroutput><link linkend="doxygen.structboost_1_1heap_1_1stable">stable&lt;false&gt;</link></computeroutput> </para>
</listitem><listitem><para><computeroutput><link linkend="doxygen.structboost_1_1heap_1_1stability__counter__type">boost::heap::stability_counter_type&lt;&gt;</link></computeroutput>, defaults to <computeroutput><link linkend="doxygen.structboost_1_1heap_1_1stability__counter__type">stability_counter_type&lt;boost::uintmax_t&gt;</link></computeroutput> </para>
</listitem><listitem><para><computeroutput><link linkend="doxygen.structboost_1_1heap_1_1allocator">boost::heap::allocator&lt;&gt;</link></computeroutput>, defaults to <computeroutput>allocator&lt;std::allocator&lt;T&gt;</computeroutput> &gt;</para>
</listitem><listitem><para><computeroutput><link linkend="doxygen.structboost_1_1heap_1_1constant__time__size">boost::heap::constant_time_size&lt;&gt;</link></computeroutput>, defaults to <computeroutput><link linkend="doxygen.structboost_1_1heap_1_1constant__time__size">constant_time_size&lt;true&gt;</link></computeroutput> </para>
</listitem></itemizedlist>
</para></description><typedef id="doxygen.classboost_1_1heap_1_1pairing__heap_1ab214bb955aa06522aa0f43560e16d788" name="value_type"><type>T</type></typedef>
<typedef id="doxygen.classboost_1_1heap_1_1pairing__heap_1a74490c657f238a4903887d9ec47a02cc" name="size_type"><type>implementation_defined::size_type</type></typedef>
<typedef id="doxygen.classboost_1_1heap_1_1pairing__heap_1a4d32d5645c85d92bb187776eee348442" name="difference_type"><type>implementation_defined::difference_type</type></typedef>
<typedef id="doxygen.classboost_1_1heap_1_1pairing__heap_1a5af50f749234c8981cc6b140b7b9ddf0" name="value_compare"><type>implementation_defined::value_compare</type></typedef>
<typedef id="doxygen.classboost_1_1heap_1_1pairing__heap_1a1aa51bfbd6528d3390720c09bb73d7b8" name="allocator_type"><type>implementation_defined::allocator_type</type></typedef>
<typedef id="doxygen.classboost_1_1heap_1_1pairing__heap_1a527355e7e74b370ddd39fc91a4c00a14" name="reference"><type>implementation_defined::reference</type></typedef>
<typedef id="doxygen.classboost_1_1heap_1_1pairing__heap_1ae04e9dab5541172641395ebcd2d1262d" name="const_reference"><type>implementation_defined::const_reference</type></typedef>
<typedef id="doxygen.classboost_1_1heap_1_1pairing__heap_1a88d0753eb88bc11743ef110d5df18bf7" name="pointer"><type>implementation_defined::pointer</type></typedef>
<typedef id="doxygen.classboost_1_1heap_1_1pairing__heap_1a8258190b55445d65d58a53f70bd1a5df" name="const_pointer"><type>implementation_defined::const_pointer</type></typedef>
<typedef id="doxygen.classboost_1_1heap_1_1pairing__heap_1a7c23f04c3bc86ea8add452d32428be83" name="iterator"><description><para><emphasis role="bold">Note:</emphasis> The iterator does not traverse the priority queue in order of the priorities.    </para></description><type>implementation_defined::iterator</type></typedef>
<typedef id="doxygen.classboost_1_1heap_1_1pairing__heap_1a9a6b67d922304ea6f632a105e56b3c3c" name="const_iterator"><type>implementation_defined::const_iterator</type></typedef>
<typedef id="doxygen.classboost_1_1heap_1_1pairing__heap_1a5a2051d20a59d383595ca8ac67d94be8" name="ordered_iterator"><type>implementation_defined::ordered_iterator</type></typedef>
<typedef id="doxygen.classboost_1_1heap_1_1pairing__heap_1a3a1ea1cc37522139a7741f8cd803cbb0" name="handle_type"><type>implementation_defined::handle_type</type></typedef>
<data-member id="doxygen.classboost_1_1heap_1_1pairing__heap_1a43f60ff42e51d151a45af13a19d60488" name="constant_time_size" specifiers="static"><type>const bool</type></data-member>
<data-member id="doxygen.classboost_1_1heap_1_1pairing__heap_1aa519202b7d801e1ef08c0ba5b693d889" name="has_ordered_iterators" specifiers="static"><type>const bool</type></data-member>
<data-member id="doxygen.classboost_1_1heap_1_1pairing__heap_1acaa20b51e4511855dd28f167983121e1" name="is_mergable" specifiers="static"><type>const bool</type></data-member>
<data-member id="doxygen.classboost_1_1heap_1_1pairing__heap_1a26e472fd0a0961dee13c3a29fb246c9c" name="is_stable" specifiers="static"><type>const bool</type></data-member>
<data-member id="doxygen.classboost_1_1heap_1_1pairing__heap_1aeeb65390757b7f208b8ee0ba092fb805" name="has_reserve" specifiers="static"><type>const bool</type></data-member>
<method-group name="public member functions">
<constructor id="doxygen.classboost_1_1heap_1_1pairing__heap_1a66b645e6772341cab1abf7e16fcf63e5" specifiers="explicit"><parameter name="cmp"><paramtype>value_compare const &amp;</paramtype><default>value_compare()</default></parameter><description><para><emphasis role="bold">Effects:</emphasis> constructs an empty priority queue.</para><para><emphasis role="bold">Complexity:</emphasis> Constant.    </para></description></constructor>
<constructor id="doxygen.classboost_1_1heap_1_1pairing__heap_1aa8f3f2e1eee8b6e65dd4b42f696ff9b1" specifiers="explicit"><parameter name="alloc"><paramtype>allocator_type const &amp;</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> constructs an empty priority queue.</para><para><emphasis role="bold">Complexity:</emphasis> Constant.    </para></description></constructor>
<constructor id="doxygen.classboost_1_1heap_1_1pairing__heap_1a2012dd181b76322c7a345067f51136ba"><parameter name="rhs"><paramtype><classname>pairing_heap</classname> const &amp;</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> copy-constructs priority queue from rhs.</para><para><emphasis role="bold">Complexity:</emphasis> Linear.    </para></description></constructor>
<constructor id="doxygen.classboost_1_1heap_1_1pairing__heap_1a446a9b52dfd959df7f750c1459c47a5b"><parameter name="rhs"><paramtype><classname>pairing_heap</classname> &amp;&amp;</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> C++11-style move constructor.</para><para><emphasis role="bold">Complexity:</emphasis> Constant.    </para></description></constructor>
<copy-assignment id="doxygen.classboost_1_1heap_1_1pairing__heap_1aa8125ce30cae1695613a7a2f60723bde"><type><classname>pairing_heap</classname> &amp;</type><parameter name="rhs"><paramtype><classname>pairing_heap</classname> &amp;&amp;</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> C++11-style move assignment.</para><para><emphasis role="bold">Complexity:</emphasis> Constant.    </para></description></copy-assignment>
<copy-assignment id="doxygen.classboost_1_1heap_1_1pairing__heap_1aaf7a86c8316819c82c3e828daead4967"><type><classname>pairing_heap</classname> &amp;</type><parameter name="rhs"><paramtype><classname>pairing_heap</classname> const &amp;</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Assigns priority queue from rhs.</para><para><emphasis role="bold">Complexity:</emphasis> Linear.    </para></description></copy-assignment>
<destructor id="doxygen.classboost_1_1heap_1_1pairing__heap_1aeefe20ca8768b5faec62acb58796a879"><parameter name=""><paramtype>void</paramtype></parameter></destructor>
<method id="doxygen.classboost_1_1heap_1_1pairing__heap_1ab989bc574561a4866f80c491f087a8c5" name="empty" cv="const"><type>bool</type><parameter name=""><paramtype>void</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Returns true, if the priority queue contains no elements.</para><para><emphasis role="bold">Complexity:</emphasis> Constant.    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1pairing__heap_1ad78e0ae85926b808f325c565ee1f829d" name="size" cv="const"><type>size_type</type><parameter name=""><paramtype>void</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Returns the number of elements contained in the priority queue.</para><para><emphasis role="bold">Complexity:</emphasis> Constant, if configured with <link linkend="doxygen.structboost_1_1heap_1_1constant__time__size">constant_time_size&lt;true&gt;</link>, otherwise linear.    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1pairing__heap_1afcc762a190e289299af8fe71f1af87d6" name="max_size" cv="const"><type>size_type</type><parameter name=""><paramtype>void</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Returns the maximum number of elements the priority queue can contain.</para><para><emphasis role="bold">Complexity:</emphasis> Constant.    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1pairing__heap_1a057e29a6ebb87df5f7951c661cbc36b3" name="clear"><type>void</type><parameter name=""><paramtype>void</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Removes all elements from the priority queue.</para><para><emphasis role="bold">Complexity:</emphasis> Linear.    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1pairing__heap_1a0fcb87fedd94b6995cf1aa2640bda6bc" name="get_allocator" cv="const"><type>allocator_type</type><parameter name=""><paramtype>void</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Returns allocator.</para><para><emphasis role="bold">Complexity:</emphasis> Constant.    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1pairing__heap_1a65116104635dc240174994b80f5190e6" name="swap"><type>void</type><parameter name="rhs"><paramtype><classname>pairing_heap</classname> &amp;</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Swaps two priority queues.</para><para><emphasis role="bold">Complexity:</emphasis> Constant.</para><para><xrefsect id="deprecated_1_deprecated000001"><xreftitle>Deprecated</xreftitle><xrefdescription><para>Use <computeroutput>std::swap</computeroutput> instead. </para>
</xrefdescription></xrefsect></para></description></method>
<method id="doxygen.classboost_1_1heap_1_1pairing__heap_1a5fb8eca5f6eaf0c0322daa5998a443ac" name="top" cv="const"><type>const_reference</type><parameter name=""><paramtype>void</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Returns a const_reference to the maximum element.</para><para><emphasis role="bold">Complexity:</emphasis> Constant.    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1pairing__heap_1a992a5da68354c957f746d9c87d596068" name="push"><type>handle_type</type><parameter name="v"><paramtype>value_type const &amp;</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Adds a new element to the priority queue. Returns handle to element <emphasis role="bold">Complexity:</emphasis> 2**2*log(log(N)) (amortized). </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1pairing__heap_1a20bf9e07027aa0c04e6316004f28c7a0" name="emplace"><type>handle_type</type><template>
          <template-nontype-parameter name="Args"><type>class...</type></template-nontype-parameter>
        </template><parameter name="args"><paramtype>Args &amp;&amp;...</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Adds a new element to the priority queue. The element is directly constructed in-place. Returns handle to element. <emphasis role="bold">Complexity:</emphasis> 2**2*log(log(N)) (amortized). </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1pairing__heap_1a42c11fbbfd2d29514958d0ec57456225" name="pop"><type>void</type><parameter name=""><paramtype>void</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Removes the top element from the priority queue.</para><para><emphasis role="bold">Complexity:</emphasis> Logarithmic (amortized). </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1pairing__heap_1a56b3cce8d1b8f1d1becd020b41d6305a" name="update"><type>void</type><parameter name="handle"><paramtype>handle_type</paramtype></parameter><parameter name="v"><paramtype>const_reference</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Assigns <computeroutput>v</computeroutput> to the element handled by <computeroutput>handle</computeroutput> &amp; updates the priority queue. <emphasis role="bold">Complexity:</emphasis> 2**2*log(log(N)) (amortized). </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1pairing__heap_1a88c5153d7580b14d6ace968203e49de0" name="update"><type>void</type><parameter name="handle"><paramtype>handle_type</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Updates the heap after the element handled by <computeroutput>handle</computeroutput> has been changed. <emphasis role="bold">Complexity:</emphasis> 2**2*log(log(N)) (amortized).</para><para><emphasis role="bold">Note:</emphasis> If this is not called, after a handle has been updated, the behavior of the data structure is undefined! </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1pairing__heap_1ab1171cfb66dd9fa900c84f743c2f5cd1" name="increase"><type>void</type><parameter name="handle"><paramtype>handle_type</paramtype></parameter><parameter name="v"><paramtype>const_reference</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Assigns <computeroutput>v</computeroutput> to the element handled by <computeroutput>handle</computeroutput> &amp; updates the priority queue. <emphasis role="bold">Complexity:</emphasis> 2**2*log(log(N)) (amortized).</para><para><emphasis role="bold">Note:</emphasis> The new value is expected to be greater than the current one </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1pairing__heap_1a3810324027bcbf102e635f3d92c56b5e" name="increase"><type>void</type><parameter name="handle"><paramtype>handle_type</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Updates the heap after the element handled by <computeroutput>handle</computeroutput> has been changed. <emphasis role="bold">Complexity:</emphasis> 2**2*log(log(N)) (amortized).</para><para><emphasis role="bold">Note:</emphasis> If this is not called, after a handle has been updated, the behavior of the data structure is undefined! </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1pairing__heap_1ad1980d75a5354009db20e296d7e0f476" name="decrease"><type>void</type><parameter name="handle"><paramtype>handle_type</paramtype></parameter><parameter name="v"><paramtype>const_reference</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Assigns <computeroutput>v</computeroutput> to the element handled by <computeroutput>handle</computeroutput> &amp; updates the priority queue. <emphasis role="bold">Complexity:</emphasis> 2**2*log(log(N)) (amortized).</para><para><emphasis role="bold">Note:</emphasis> The new value is expected to be less than the current one </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1pairing__heap_1a806f861e9ce3d7b69f8cf06d297cc28d" name="decrease"><type>void</type><parameter name="handle"><paramtype>handle_type</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Updates the heap after the element handled by <computeroutput>handle</computeroutput> has been changed. <emphasis role="bold">Complexity:</emphasis> 2**2*log(log(N)) (amortized).</para><para><emphasis role="bold">Note:</emphasis> 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! </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1pairing__heap_1ac0b13bdb74b222d8602a64a74e498d82" name="erase"><type>void</type><parameter name="handle"><paramtype>handle_type</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Removes the element handled by <computeroutput>handle</computeroutput> from the <link linkend="doxygen.classboost_1_1heap_1_1priority__queue">priority_queue</link>. <emphasis role="bold">Complexity:</emphasis> 2**2*log(log(N)) (amortized). </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1pairing__heap_1ae7f93a8236a92507a65802abe4929a0b" name="begin" cv="const"><type>iterator</type><parameter name=""><paramtype>void</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Returns an iterator to the first element contained in the priority queue.</para><para><emphasis role="bold">Complexity:</emphasis> Constant.    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1pairing__heap_1a3cad10159b74bb53da7c22183c62c8ac" name="end" cv="const"><type>iterator</type><parameter name=""><paramtype>void</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Returns an iterator to the end of the priority queue.</para><para><emphasis role="bold">Complexity:</emphasis> Constant.    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1pairing__heap_1a69e043c17709013e7de9848b79a1b0f1" name="ordered_begin" cv="const"><type>ordered_iterator</type><parameter name=""><paramtype>void</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Returns an ordered iterator to the first element contained in the priority queue.</para><para><emphasis role="bold">Note:</emphasis> Ordered iterators traverse the priority queue in heap order.    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1pairing__heap_1a39e2ec344f739c9d7e39d8d9b9d7b9f1" name="ordered_end" cv="const"><type>ordered_iterator</type><parameter name=""><paramtype>void</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Returns an ordered iterator to the first element contained in the priority queue.</para><para><emphasis role="bold">Note:</emphasis> Ordered iterators traverse the priority queue in heap order.    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1pairing__heap_1affd86bea3ec679878d13b3e0fe1299d3" name="merge"><type>void</type><parameter name="rhs"><paramtype><classname>pairing_heap</classname> &amp;</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Merge all elements from rhs into this <emphasis role="bold">Complexity:</emphasis> 2**2*log(log(N)) (amortized). </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1pairing__heap_1a9636d6ef95e057d6cc6d8319c6d6e44b" name="value_comp" cv="const"><type>value_compare const &amp;</type><parameter name=""><paramtype>void</paramtype></parameter><description><para><emphasis role="bold">Effect:</emphasis> Returns the value_compare object used by the priority queue    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1pairing__heap_1ae37deb505241372ac1fdcf94367f4182" name="operator&lt;" cv="const"><type>bool</type><template>
          <template-type-parameter name="HeapType"/>
        </template><parameter name="rhs"><paramtype>HeapType const &amp;</paramtype></parameter><description><para><emphasis role="bold">Returns:</emphasis> Element-wise comparison of heap data structures</para><para><emphasis role="bold">Requirement:</emphasis> the <computeroutput>value_compare</computeroutput> object of both heaps must match.    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1pairing__heap_1abeb8318441476f9108e81956055d38ad" name="operator&gt;" cv="const"><type>bool</type><template>
          <template-type-parameter name="HeapType"/>
        </template><parameter name="rhs"><paramtype>HeapType const &amp;</paramtype></parameter><description><para><emphasis role="bold">Returns:</emphasis> Element-wise comparison of heap data structures</para><para><emphasis role="bold">Requirement:</emphasis> the <computeroutput>value_compare</computeroutput> object of both heaps must match.    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1pairing__heap_1a017d65b0ae584152edd3a45397c2a6ef" name="operator&gt;=" cv="const"><type>bool</type><template>
          <template-type-parameter name="HeapType"/>
        </template><parameter name="rhs"><paramtype>HeapType const &amp;</paramtype></parameter><description><para><emphasis role="bold">Returns:</emphasis> Element-wise comparison of heap data structures</para><para><emphasis role="bold">Requirement:</emphasis> the <computeroutput>value_compare</computeroutput> object of both heaps must match.    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1pairing__heap_1a1d381b417452fe8e9d1a346930ef0561" name="operator&lt;=" cv="const"><type>bool</type><template>
          <template-type-parameter name="HeapType"/>
        </template><parameter name="rhs"><paramtype>HeapType const &amp;</paramtype></parameter><description><para><emphasis role="bold">Returns:</emphasis> Element-wise comparison of heap data structures</para><para><emphasis role="bold">Requirement:</emphasis> the <computeroutput>value_compare</computeroutput> object of both heaps must match.    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1pairing__heap_1a169c0e9d644a87015fde328b04a9064d" name="operator==" cv="const"><type>bool</type><template>
          <template-type-parameter name="HeapType"/>
        </template><parameter name="rhs"><paramtype>HeapType const &amp;</paramtype></parameter><purpose>Equivalent comparison <emphasis role="bold">Returns:</emphasis> True, if both heap data structures are equivalent.    </purpose><description><para><emphasis role="bold">Requirement:</emphasis> the <computeroutput>value_compare</computeroutput> object of both heaps must match.    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1pairing__heap_1ae215b3863812e6650b99d488db6c742e" name="operator!=" cv="const"><type>bool</type><template>
          <template-type-parameter name="HeapType"/>
        </template><parameter name="rhs"><paramtype>HeapType const &amp;</paramtype></parameter><purpose>Equivalent comparison <emphasis role="bold">Returns:</emphasis> True, if both heap data structures are not equivalent.    </purpose><description><para><emphasis role="bold">Requirement:</emphasis> the <computeroutput>value_compare</computeroutput> object of both heaps must match.    </para></description></method>
</method-group>
<method-group name="public static functions">
<method id="doxygen.classboost_1_1heap_1_1pairing__heap_1ac43d1d76a19bf137b8d88508c8c4e04b" name="s_handle_from_iterator" specifiers="static"><type>handle_type</type><parameter name="it"><paramtype>iterator const &amp;</paramtype></parameter></method>
</method-group>
</class>
</namespace>
</namespace>
</header>
<header id="doxygen.policies_8hpp" name="boost/heap/policies.hpp">
<namespace name="boost">
<namespace name="heap">
<struct id="doxygen.structboost_1_1heap_1_1allocator" name="allocator"><template>
      <template-type-parameter name="T"/>
    </template><purpose>Specifies allocator for the internal memory management. </purpose></struct><struct id="doxygen.structboost_1_1heap_1_1arity" name="arity"><template>
      <template-nontype-parameter name="T"><type>unsigned int</type></template-nontype-parameter>
    </template><purpose>Specify arity. </purpose><description><para>Specifies the arity of a D-ary heap </para></description></struct><struct id="doxygen.structboost_1_1heap_1_1compare" name="compare"><template>
      <template-type-parameter name="T"/>
    </template><purpose>Specifies the predicate for the heap order. </purpose></struct><struct id="doxygen.structboost_1_1heap_1_1constant__time__size" name="constant_time_size"><template>
      <template-nontype-parameter name="T"><type>bool</type></template-nontype-parameter>
    </template><purpose>Configures complexity of <computeroutput> size() </computeroutput> </purpose><description><para>Specifies, whether size() should have linear or constant complexity. </para></description></struct><struct id="doxygen.structboost_1_1heap_1_1mutable__" name="mutable_"><template>
      <template-nontype-parameter name="T"><type>bool</type></template-nontype-parameter>
    </template><purpose>Configure heap as mutable. </purpose><description><para>Certain heaps need to be configured specifically do be mutable. </para></description></struct><struct id="doxygen.structboost_1_1heap_1_1stability__counter__type" name="stability_counter_type"><template>
      <template-type-parameter name="IntType"/>
    </template><purpose>Specifies the type for stability counter. </purpose></struct><struct id="doxygen.structboost_1_1heap_1_1stable" name="stable"><template>
      <template-nontype-parameter name="T"><type>bool</type></template-nontype-parameter>
    </template><purpose>Configure a heap as <emphasis role="bold">stable</emphasis>. </purpose><description><para>A priority queue is stable, if elements with the same priority are popped from the heap, in the same order as they are inserted. </para></description></struct><struct id="doxygen.structboost_1_1heap_1_1store__parent__pointer" name="store_parent_pointer"><template>
      <template-nontype-parameter name="T"><type>bool</type></template-nontype-parameter>
    </template><purpose>Store parent pointer in heap node. </purpose><description><para>Maintaining a parent pointer adds some maintenance and size overhead, but iterating a heap is more efficient. </para></description></struct>
</namespace>
</namespace>
</header>
<header id="doxygen.priority__queue_8hpp" name="boost/heap/priority_queue.hpp">
<namespace name="boost">
<namespace name="heap">
<class id="doxygen.classboost_1_1heap_1_1priority__queue" name="priority_queue"><template>
      <template-type-parameter name="T"/>
      <template-nontype-parameter name="Options"><type>class...</type></template-nontype-parameter>
    </template><purpose>priority queue, based on stl heap functions </purpose><description><para>The <link linkend="doxygen.classboost_1_1heap_1_1priority__queue">priority_queue</link> class is a wrapper for the stl heap functions.<sbr/>
 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.</para><para>The container supports the following options:<itemizedlist>
<listitem><para><computeroutput><link linkend="doxygen.structboost_1_1heap_1_1compare">boost::heap::compare&lt;&gt;</link></computeroutput>, defaults to <computeroutput>compare&lt;std::less&lt;T&gt;</computeroutput> &gt;</para>
</listitem><listitem><para><computeroutput><link linkend="doxygen.structboost_1_1heap_1_1stable">boost::heap::stable&lt;&gt;</link></computeroutput>, defaults to <computeroutput><link linkend="doxygen.structboost_1_1heap_1_1stable">stable&lt;false&gt;</link></computeroutput> </para>
</listitem><listitem><para><computeroutput><link linkend="doxygen.structboost_1_1heap_1_1stability__counter__type">boost::heap::stability_counter_type&lt;&gt;</link></computeroutput>, defaults to <computeroutput><link linkend="doxygen.structboost_1_1heap_1_1stability__counter__type">stability_counter_type&lt;boost::uintmax_t&gt;</link></computeroutput> </para>
</listitem><listitem><para><computeroutput><link linkend="doxygen.structboost_1_1heap_1_1allocator">boost::heap::allocator&lt;&gt;</link></computeroutput>, defaults to <computeroutput>allocator&lt;std::allocator&lt;T&gt;</computeroutput> &gt; </para>
</listitem></itemizedlist>
</para></description><typedef id="doxygen.classboost_1_1heap_1_1priority__queue_1a59c32a779799bf82985253b920609843" name="value_type"><type>T</type></typedef>
<typedef id="doxygen.classboost_1_1heap_1_1priority__queue_1a8b034c2b8cb46f455bfeb9dba0241b6d" name="size_type"><type>implementation_defined::size_type</type></typedef>
<typedef id="doxygen.classboost_1_1heap_1_1priority__queue_1a8906d5b87fa0b92f152e838f04013e40" name="difference_type"><type>implementation_defined::difference_type</type></typedef>
<typedef id="doxygen.classboost_1_1heap_1_1priority__queue_1ab4c258e7fe1634234b79a060b8114b3e" name="value_compare"><type>implementation_defined::value_compare</type></typedef>
<typedef id="doxygen.classboost_1_1heap_1_1priority__queue_1a4d565edc8061a31799d41177786f623c" name="allocator_type"><type>implementation_defined::allocator_type</type></typedef>
<typedef id="doxygen.classboost_1_1heap_1_1priority__queue_1a3b19402bd4f4efcbb9826b704d4654df" name="reference"><type>implementation_defined::reference</type></typedef>
<typedef id="doxygen.classboost_1_1heap_1_1priority__queue_1ae2cbe5db8c07749b0c4e3deb4b8e82a7" name="const_reference"><type>implementation_defined::const_reference</type></typedef>
<typedef id="doxygen.classboost_1_1heap_1_1priority__queue_1a3a49a5e7222dae190c03fc4b226780c7" name="pointer"><type>implementation_defined::pointer</type></typedef>
<typedef id="doxygen.classboost_1_1heap_1_1priority__queue_1a6be9281a1171292b473c120b2c271790" name="const_pointer"><type>implementation_defined::const_pointer</type></typedef>
<typedef id="doxygen.classboost_1_1heap_1_1priority__queue_1af6ef97fe981b8c438a2a46b54638f30e" name="iterator"><description><para><emphasis role="bold">Note:</emphasis> The iterator does not traverse the priority queue in order of the priorities. </para></description><type>implementation_defined::iterator</type></typedef>
<typedef id="doxygen.classboost_1_1heap_1_1priority__queue_1ad2b6fe4c975c7ef2ebf69f4707d9e78d" name="const_iterator"><type>implementation_defined::const_iterator</type></typedef>
<data-member id="doxygen.classboost_1_1heap_1_1priority__queue_1af9f237281af293cb6bc069725e200eb6" name="constant_time_size" specifiers="static"><type>const bool</type></data-member>
<data-member id="doxygen.classboost_1_1heap_1_1priority__queue_1aa9d29fbc8da9a5cc44ca4704a4c5608f" name="has_ordered_iterators" specifiers="static"><type>const bool</type></data-member>
<data-member id="doxygen.classboost_1_1heap_1_1priority__queue_1ace56a3b900cce971b0449e1b145f2f59" name="is_mergable" specifiers="static"><type>const bool</type></data-member>
<data-member id="doxygen.classboost_1_1heap_1_1priority__queue_1a336986936953f885178d5574946682b5" name="is_stable" specifiers="static"><type>const bool</type></data-member>
<data-member id="doxygen.classboost_1_1heap_1_1priority__queue_1a052de35ee43c51f0faf50cb48515dbf3" name="has_reserve" specifiers="static"><type>const bool</type></data-member>
<method-group name="public member functions">
<constructor id="doxygen.classboost_1_1heap_1_1priority__queue_1abe3beb3d489d39ebf0fbc9260d5c41c4" specifiers="explicit"><parameter name="cmp"><paramtype>value_compare const &amp;</paramtype><default>value_compare()</default></parameter><description><para><emphasis role="bold">Effects:</emphasis> constructs an empty priority queue.</para><para><emphasis role="bold">Complexity:</emphasis> Constant. </para></description></constructor>
<constructor id="doxygen.classboost_1_1heap_1_1priority__queue_1a3842e04bf95e261260aa3dedc5ce019e" specifiers="explicit"><parameter name="alloc"><paramtype>allocator_type const &amp;</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> constructs an empty priority queue.</para><para><emphasis role="bold">Complexity:</emphasis> Constant. </para></description></constructor>
<constructor id="doxygen.classboost_1_1heap_1_1priority__queue_1a1b452f461fb682f099ed6c0b5b560a76" cv="= default"><parameter name="rhs"><paramtype><classname>priority_queue</classname> const &amp;</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> copy-constructs priority queue from rhs.</para><para><emphasis role="bold">Complexity:</emphasis> Linear. </para></description></constructor>
<constructor id="doxygen.classboost_1_1heap_1_1priority__queue_1a0cbd556ae502a432f5901419ae30effc" cv="= default"><parameter name="rhs"><paramtype><classname>priority_queue</classname> &amp;&amp;</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> C++11-style move constructor.</para><para><emphasis role="bold">Complexity:</emphasis> Constant. </para></description></constructor>
<copy-assignment id="doxygen.classboost_1_1heap_1_1priority__queue_1a965d195a2028ca7da7a9077427a7e8af" cv="= default"><type><classname>priority_queue</classname> &amp;</type><parameter name="rhs"><paramtype><classname>priority_queue</classname> &amp;&amp;</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> C++11-style move assignment.</para><para><emphasis role="bold">Complexity:</emphasis> Constant. </para></description></copy-assignment>
<copy-assignment id="doxygen.classboost_1_1heap_1_1priority__queue_1ae5554e7af33d842d33c1739e76461f17"><type><classname>priority_queue</classname> &amp;</type><parameter name="rhs"><paramtype><classname>priority_queue</classname> const &amp;</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Assigns priority queue from rhs.</para><para><emphasis role="bold">Complexity:</emphasis> Linear. </para></description></copy-assignment>
<method id="doxygen.classboost_1_1heap_1_1priority__queue_1a1ead627e71be721c89cc5670c0ba7bb2" name="empty" cv="const noexcept"><type>bool</type><parameter name=""><paramtype>void</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Returns true, if the priority queue contains no elements.</para><para><emphasis role="bold">Complexity:</emphasis> Constant. </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1priority__queue_1abc94615ad576b3c99aa26043a5459db4" name="size" cv="const noexcept"><type>size_type</type><parameter name=""><paramtype>void</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Returns the number of elements contained in the priority queue.</para><para><emphasis role="bold">Complexity:</emphasis> Constant. </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1priority__queue_1a7dfbcacce4e4d24344d570460bdf9c66" name="max_size" cv="const noexcept"><type>size_type</type><parameter name=""><paramtype>void</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Returns the maximum number of elements the priority queue can contain.</para><para><emphasis role="bold">Complexity:</emphasis> Constant. </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1priority__queue_1a06a1f6b714db6c2e7d2d788a7b3166d1" name="clear" cv="noexcept"><type>void</type><parameter name=""><paramtype>void</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Removes all elements from the priority queue.</para><para><emphasis role="bold">Complexity:</emphasis> Linear. </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1priority__queue_1a11f7330460490930c557ce84df029615" name="get_allocator" cv="const"><type>allocator_type</type><parameter name=""><paramtype>void</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Returns allocator.</para><para><emphasis role="bold">Complexity:</emphasis> Constant. </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1priority__queue_1a5855c7b3f23da91e57a5baf9f76548a7" name="top" cv="const"><type>const_reference</type><parameter name=""><paramtype>void</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Returns a const_reference to the maximum element.</para><para><emphasis role="bold">Complexity:</emphasis> Constant. </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1priority__queue_1a78f740a0544f237b16766ed75e89f88d" name="push"><type>void</type><parameter name="v"><paramtype>value_type const &amp;</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Adds a new element to the priority queue.</para><para><emphasis role="bold">Complexity:</emphasis> Logarithmic (amortized). Linear (worst case). </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1priority__queue_1a82aec034403c15b5b796e148e321e347" name="emplace"><type>void</type><template>
          <template-nontype-parameter name="Args"><type>class...</type></template-nontype-parameter>
        </template><parameter name="args"><paramtype>Args &amp;&amp;...</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Adds a new element to the priority queue. The element is directly constructed in-place.</para><para><emphasis role="bold">Complexity:</emphasis> Logarithmic (amortized). Linear (worst case). </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1priority__queue_1a81af62c9bb0165757ba2d050eea43e77" name="pop"><type>void</type><parameter name=""><paramtype>void</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Removes the top element from the priority queue.</para><para><emphasis role="bold">Complexity:</emphasis> Logarithmic (amortized). Linear (worst case). </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1priority__queue_1aa00d3c98a039dd0ae9e36d86763579f0" name="swap"><type>void</type><parameter name="rhs"><paramtype><classname>priority_queue</classname> &amp;</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Swaps two priority queues.</para><para><emphasis role="bold">Complexity:</emphasis> Constant.</para><para><xrefsect id="deprecated_1_deprecated000001"><xreftitle>Deprecated</xreftitle><xrefdescription><para>Use <computeroutput>std::swap</computeroutput> instead. </para>
</xrefdescription></xrefsect></para></description></method>
<method id="doxygen.classboost_1_1heap_1_1priority__queue_1ad770cb9d1e64e95139ab09817d74987a" name="begin" cv="const noexcept"><type>iterator</type><parameter name=""><paramtype>void</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Returns an iterator to the first element contained in the priority queue.</para><para><emphasis role="bold">Complexity:</emphasis> Constant. </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1priority__queue_1abb60431bbb5567fc1e10bd1d352806ef" name="end" cv="const noexcept"><type>iterator</type><parameter name=""><paramtype>void</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Returns an iterator to the end of the priority queue.</para><para><emphasis role="bold">Complexity:</emphasis> Constant. </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1priority__queue_1ab1c641c1afc929f259b8dd826043b044" name="reserve"><type>void</type><parameter name="element_count"><paramtype>size_type</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Reserves memory for element_count elements</para><para><emphasis role="bold">Complexity:</emphasis> Linear.</para><para><emphasis role="bold">Node:</emphasis> Invalidates iterators </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1priority__queue_1a6203e045ac596b508be7b62929cb396a" name="value_comp" cv="const"><type>value_compare const &amp;</type><parameter name=""><paramtype>void</paramtype></parameter><description><para><emphasis role="bold">Effect:</emphasis> Returns the value_compare object used by the priority queue </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1priority__queue_1a5e545de2b14d0e99c565eac348b84a91" name="operator&lt;" cv="const"><type>bool</type><template>
          <template-type-parameter name="HeapType"/>
        </template><parameter name="rhs"><paramtype>HeapType const &amp;</paramtype></parameter><description><para><emphasis role="bold">Returns:</emphasis> Element-wise comparison of heap data structures</para><para><emphasis role="bold">Requirement:</emphasis> the <computeroutput>value_compare</computeroutput> object of both heaps must match. </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1priority__queue_1a5254217a8e8763ceba45d48ce9bea95a" name="operator&gt;" cv="const"><type>bool</type><template>
          <template-type-parameter name="HeapType"/>
        </template><parameter name="rhs"><paramtype>HeapType const &amp;</paramtype></parameter><description><para><emphasis role="bold">Returns:</emphasis> Element-wise comparison of heap data structures</para><para><emphasis role="bold">Requirement:</emphasis> the <computeroutput>value_compare</computeroutput> object of both heaps must match. </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1priority__queue_1affa6ff6050324a406dbc9b091d885113" name="operator&gt;=" cv="const"><type>bool</type><template>
          <template-type-parameter name="HeapType"/>
        </template><parameter name="rhs"><paramtype>HeapType const &amp;</paramtype></parameter><description><para><emphasis role="bold">Returns:</emphasis> Element-wise comparison of heap data structures</para><para><emphasis role="bold">Requirement:</emphasis> the <computeroutput>value_compare</computeroutput> object of both heaps must match. </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1priority__queue_1a74cea358167795d48b8d42649a2b3086" name="operator&lt;=" cv="const"><type>bool</type><template>
          <template-type-parameter name="HeapType"/>
        </template><parameter name="rhs"><paramtype>HeapType const &amp;</paramtype></parameter><description><para><emphasis role="bold">Returns:</emphasis> Element-wise comparison of heap data structures</para><para><emphasis role="bold">Requirement:</emphasis> the <computeroutput>value_compare</computeroutput> object of both heaps must match. </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1priority__queue_1a646cf066ee065361ce415b5123b34724" name="operator==" cv="const"><type>bool</type><template>
          <template-type-parameter name="HeapType"/>
        </template><parameter name="rhs"><paramtype>HeapType const &amp;</paramtype></parameter><purpose>Equivalent comparison <emphasis role="bold">Returns:</emphasis> True, if both heap data structures are equivalent. </purpose><description><para><emphasis role="bold">Requirement:</emphasis> the <computeroutput>value_compare</computeroutput> object of both heaps must match. </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1priority__queue_1a7c03677f0fa76b5a53130de077f05821" name="operator!=" cv="const"><type>bool</type><template>
          <template-type-parameter name="HeapType"/>
        </template><parameter name="rhs"><paramtype>HeapType const &amp;</paramtype></parameter><purpose>Equivalent comparison <emphasis role="bold">Returns:</emphasis> True, if both heap data structures are not equivalent. </purpose><description><para><emphasis role="bold">Requirement:</emphasis> the <computeroutput>value_compare</computeroutput> object of both heaps must match. </para></description></method>
</method-group>
<method-group name="private member functions">
<method id="doxygen.classboost_1_1heap_1_1priority__queue_1a8af55be714ba327a148d432a1186e9f7" name="do_swap"><type>void</type><parameter name="rhs"><paramtype><classname>priority_queue</classname> &amp;</paramtype></parameter></method>
</method-group>
</class>
</namespace>
</namespace>
</header>
<header id="doxygen.skew__heap_8hpp" name="boost/heap/skew_heap.hpp">
<namespace name="boost">
<namespace name="heap">
<class id="doxygen.classboost_1_1heap_1_1skew__heap" name="skew_heap"><template>
      <template-type-parameter name="T"/>
      <template-nontype-parameter name="Options"><type>class...</type></template-nontype-parameter>
    </template><purpose>skew heap </purpose><description><para>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.</para><para>The container supports the following options:<itemizedlist>
<listitem><para><computeroutput><link linkend="doxygen.structboost_1_1heap_1_1compare">boost::heap::compare&lt;&gt;</link></computeroutput>, defaults to <computeroutput>compare&lt;std::less&lt;T&gt;</computeroutput> &gt;</para>
</listitem><listitem><para><computeroutput><link linkend="doxygen.structboost_1_1heap_1_1stable">boost::heap::stable&lt;&gt;</link></computeroutput>, defaults to <computeroutput><link linkend="doxygen.structboost_1_1heap_1_1stable">stable&lt;false&gt;</link></computeroutput> </para>
</listitem><listitem><para><computeroutput><link linkend="doxygen.structboost_1_1heap_1_1stability__counter__type">boost::heap::stability_counter_type&lt;&gt;</link></computeroutput>, defaults to <computeroutput><link linkend="doxygen.structboost_1_1heap_1_1stability__counter__type">stability_counter_type&lt;boost::uintmax_t&gt;</link></computeroutput> </para>
</listitem><listitem><para><computeroutput><link linkend="doxygen.structboost_1_1heap_1_1allocator">boost::heap::allocator&lt;&gt;</link></computeroutput>, defaults to <computeroutput>allocator&lt;std::allocator&lt;T&gt;</computeroutput> &gt;</para>
</listitem><listitem><para><computeroutput><link linkend="doxygen.structboost_1_1heap_1_1constant__time__size">boost::heap::constant_time_size&lt;&gt;</link></computeroutput>, defaults to <computeroutput><link linkend="doxygen.structboost_1_1heap_1_1constant__time__size">constant_time_size&lt;true&gt;</link></computeroutput> </para>
</listitem><listitem><para><computeroutput><link linkend="doxygen.structboost_1_1heap_1_1store__parent__pointer">boost::heap::store_parent_pointer&lt;&gt;</link></computeroutput>, defaults to <computeroutput><link linkend="doxygen.structboost_1_1heap_1_1store__parent__pointer">store_parent_pointer&lt;true&gt;</link></computeroutput>. Maintaining a parent pointer adds some maintenance and size overhead, but iterating a heap is more efficient.</para>
</listitem><listitem><para><computeroutput>boost::heap::mutable&lt;&gt;</computeroutput>, defaults to <computeroutput>mutable&lt;false&gt;</computeroutput>. </para>
</listitem></itemizedlist>
</para></description><struct id="doxygen.structboost_1_1heap_1_1skew__heap_1_1implementation__defined" name="implementation_defined"><typedef id="doxygen.structboost_1_1heap_1_1skew__heap_1_1implementation__defined_1a709d413a6f7996caf32e97072e19a00c" name="value_type"><type>T</type></typedef>
<typedef id="doxygen.structboost_1_1heap_1_1skew__heap_1_1implementation__defined_1aef4fa04defe7b83f2385a58b0a6ffd8c" name="value_compare"><type>base_maker::compare_argument</type></typedef>
<typedef id="doxygen.structboost_1_1heap_1_1skew__heap_1_1implementation__defined_1ab717e73fd416e5af194c53ac05569003" name="allocator_type"><type>base_maker::allocator_type</type></typedef>
<typedef id="doxygen.structboost_1_1heap_1_1skew__heap_1_1implementation__defined_1aff6d05aead59ea6f7d0a867d116b5187" name="node"><type>base_maker::node_type</type></typedef>
<typedef id="doxygen.structboost_1_1heap_1_1skew__heap_1_1implementation__defined_1afe54dcdb7a0232c2c6b07add96041ccc" name="node_pointer"><type>boost::allocator_pointer&lt; allocator_type &gt;::type</type></typedef>
<typedef id="doxygen.structboost_1_1heap_1_1skew__heap_1_1implementation__defined_1a4647701a44f700853170885954e31b6e" name="const_node_pointer"><type>boost::allocator_const_pointer&lt; allocator_type &gt;::type</type></typedef>
<typedef id="doxygen.structboost_1_1heap_1_1skew__heap_1_1implementation__defined_1a8b5daf97a875d25dec59e5f525f1c620" name="value_extractor"><type><emphasis>unspecified</emphasis></type></typedef>
<typedef id="doxygen.structboost_1_1heap_1_1skew__heap_1_1implementation__defined_1ac39b77c21dec070001c5550b7cfd9fe6" name="child_list_type"><type>std::array&lt; node_pointer, 2 &gt;</type></typedef>
<typedef id="doxygen.structboost_1_1heap_1_1skew__heap_1_1implementation__defined_1adcc5371945b67f667a5a334d80746f97" name="child_list_iterator"><type>child_list_type::iterator</type></typedef>
<typedef id="doxygen.structboost_1_1heap_1_1skew__heap_1_1implementation__defined_1ad28b59d157f92c03a088e93eeebfd381" name="iterator"><type><emphasis>unspecified</emphasis></type></typedef>
<typedef id="doxygen.structboost_1_1heap_1_1skew__heap_1_1implementation__defined_1a19fd01862513103ba1980442032df24f" name="const_iterator"><type>iterator</type></typedef>
<typedef id="doxygen.structboost_1_1heap_1_1skew__heap_1_1implementation__defined_1ab40fd86b0c9e6c0e593516ed280dbe0d" name="ordered_iterator"><type><emphasis>unspecified</emphasis></type></typedef>
<typedef id="doxygen.structboost_1_1heap_1_1skew__heap_1_1implementation__defined_1a75933ab03cc600b71366d74a7d0c39eb" name="reference"><type><emphasis>unspecified</emphasis></type></typedef>
<typedef id="doxygen.structboost_1_1heap_1_1skew__heap_1_1implementation__defined_1abb07cc98b55ebafc69608e6aa1c49f5e" name="handle_type"><type><emphasis>unspecified</emphasis></type></typedef>
</struct><typedef id="doxygen.classboost_1_1heap_1_1skew__heap_1afcc5cfe23a039802e0094d1e56c1ded5" name="value_type"><type>T</type></typedef>
<typedef id="doxygen.classboost_1_1heap_1_1skew__heap_1a39f8ccd0b8a5133317c0fccbc60f6e21" name="size_type"><type>implementation_defined::size_type</type></typedef>
<typedef id="doxygen.classboost_1_1heap_1_1skew__heap_1ac2bcf973ce1b667169b1ae868f659fd2" name="difference_type"><type>implementation_defined::difference_type</type></typedef>
<typedef id="doxygen.classboost_1_1heap_1_1skew__heap_1a8058b1ac009c522af6d08859e73024b0" name="value_compare"><type>implementation_defined::value_compare</type></typedef>
<typedef id="doxygen.classboost_1_1heap_1_1skew__heap_1a941f3b89e9956031fa8df3ac36761fd6" name="allocator_type"><type>implementation_defined::allocator_type</type></typedef>
<typedef id="doxygen.classboost_1_1heap_1_1skew__heap_1ade233f6dc8f416a0833ad54ec361a3df" name="reference"><type>implementation_defined::reference</type></typedef>
<typedef id="doxygen.classboost_1_1heap_1_1skew__heap_1aed6a37cf3ac7701c57e3fcb09b163f9d" name="const_reference"><type>implementation_defined::const_reference</type></typedef>
<typedef id="doxygen.classboost_1_1heap_1_1skew__heap_1af76563b194f3e92fd6feba939c5fe3c8" name="pointer"><type>implementation_defined::pointer</type></typedef>
<typedef id="doxygen.classboost_1_1heap_1_1skew__heap_1aee1aab94371c6880ab755317b0a8afef" name="const_pointer"><type>implementation_defined::const_pointer</type></typedef>
<typedef id="doxygen.classboost_1_1heap_1_1skew__heap_1a98e4e6be29c0ea3866121b1d60812aa8" name="iterator"><description><para><emphasis role="bold">Note:</emphasis> The iterator does not traverse the priority queue in order of the priorities.    </para></description><type>implementation_defined::iterator</type></typedef>
<typedef id="doxygen.classboost_1_1heap_1_1skew__heap_1a4bbbbf576bda1ec4662334185b87d8f5" name="const_iterator"><type>implementation_defined::const_iterator</type></typedef>
<typedef id="doxygen.classboost_1_1heap_1_1skew__heap_1af6605a87cc452d14a2497b4f80cce4a0" name="ordered_iterator"><type>implementation_defined::ordered_iterator</type></typedef>
<typedef id="doxygen.classboost_1_1heap_1_1skew__heap_1abd56ec27c6745363f1e1bd5354e48f18" name="handle_type"><type>std::conditional&lt; is_mutable, typenameimplementation_defined::handle_type, void * &gt;::type</type></typedef>
<data-member id="doxygen.classboost_1_1heap_1_1skew__heap_1a640906d43348133668df3c27405df6bd" name="constant_time_size" specifiers="static"><type>const bool</type></data-member>
<data-member id="doxygen.classboost_1_1heap_1_1skew__heap_1ae9e1943432763a855555714cc7fcd1b9" name="has_ordered_iterators" specifiers="static"><type>const bool</type></data-member>
<data-member id="doxygen.classboost_1_1heap_1_1skew__heap_1a797b6614fd9b6509a06eba3a80e161c3" name="is_mergable" specifiers="static"><type>const bool</type></data-member>
<data-member id="doxygen.classboost_1_1heap_1_1skew__heap_1aef3c79c3d8d8e9e333be6582e562d9c8" name="is_stable" specifiers="static"><type>const bool</type></data-member>
<data-member id="doxygen.classboost_1_1heap_1_1skew__heap_1ab523780be9b8e5192d7a287ad7266a5f" name="has_reserve" specifiers="static"><type>const bool</type></data-member>
<data-member id="doxygen.classboost_1_1heap_1_1skew__heap_1a296e11e3c8a08551bcf24f371663892c" name="is_mutable" specifiers="static"><type>const bool</type></data-member>
<method-group name="public member functions">
<constructor id="doxygen.classboost_1_1heap_1_1skew__heap_1acfe41e4aee0124558bad73194a24bc5f" specifiers="explicit"><parameter name="cmp"><paramtype>value_compare const &amp;</paramtype><default>value_compare()</default></parameter><description><para><emphasis role="bold">Effects:</emphasis> constructs an empty priority queue.</para><para><emphasis role="bold">Complexity:</emphasis> Constant.    </para></description></constructor>
<constructor id="doxygen.classboost_1_1heap_1_1skew__heap_1adcf33f37a0fe740fb15edc1ac8f9488b" specifiers="explicit"><parameter name="alloc"><paramtype>allocator_type const &amp;</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> constructs an empty priority queue.</para><para><emphasis role="bold">Complexity:</emphasis> Constant.    </para></description></constructor>
<constructor id="doxygen.classboost_1_1heap_1_1skew__heap_1ab32c098fd24e6869bee6f4b077deca03"><parameter name="rhs"><paramtype><classname>skew_heap</classname> const &amp;</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> copy-constructs priority queue from rhs.</para><para><emphasis role="bold">Complexity:</emphasis> Linear.    </para></description></constructor>
<copy-assignment id="doxygen.classboost_1_1heap_1_1skew__heap_1a361c7a360f50ad2dcdf3f24cf061b197"><type><classname>skew_heap</classname> &amp;</type><parameter name="rhs"><paramtype><classname>skew_heap</classname> const &amp;</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Assigns priority queue from rhs.</para><para><emphasis role="bold">Complexity:</emphasis> Linear.    </para></description></copy-assignment>
<constructor id="doxygen.classboost_1_1heap_1_1skew__heap_1adc9abead98ff0c683b718831e4102f95"><parameter name="rhs"><paramtype><classname>skew_heap</classname> &amp;&amp;</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> C++11-style move constructor.</para><para><emphasis role="bold">Complexity:</emphasis> Constant.    </para></description></constructor>
<copy-assignment id="doxygen.classboost_1_1heap_1_1skew__heap_1a3fa3c5b32c08e8008bc1fc1da8f99790"><type><classname>skew_heap</classname> &amp;</type><parameter name="rhs"><paramtype><classname>skew_heap</classname> &amp;&amp;</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> C++11-style move assignment.</para><para><emphasis role="bold">Complexity:</emphasis> Constant.    </para></description></copy-assignment>
<destructor id="doxygen.classboost_1_1heap_1_1skew__heap_1a9cbd32cf21b1a50b8b8711f94d69c63f"><parameter name=""><paramtype>void</paramtype></parameter></destructor>
<method id="doxygen.classboost_1_1heap_1_1skew__heap_1aac1a2c9fa02f84376b3cc51a92841608" name="push"><type>std::conditional&lt; is_mutable, handle_type, void &gt;::type</type><parameter name="v"><paramtype>value_type const &amp;</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Adds a new element to the priority queue.</para><para><emphasis role="bold">Complexity:</emphasis> Logarithmic (amortized). </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1skew__heap_1a4814e35c10e66d66eb0a55a908d3d85f" name="emplace"><type>std::conditional&lt; is_mutable, handle_type, void &gt;::type</type><template>
          <template-nontype-parameter name="Args"><type>typename...</type></template-nontype-parameter>
        </template><parameter name="args"><paramtype>Args &amp;&amp;...</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Adds a new element to the priority queue. The element is directly constructed in-place.</para><para><emphasis role="bold">Complexity:</emphasis> Logarithmic (amortized). </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1skew__heap_1aebdc6e059d3505c8c688c60e96f9f26e" name="empty" cv="const"><type>bool</type><parameter name=""><paramtype>void</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Returns true, if the priority queue contains no elements.</para><para><emphasis role="bold">Complexity:</emphasis> Constant.    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1skew__heap_1a96a37ebad70d7270f8412575008d3010" name="size" cv="const"><type>size_type</type><parameter name=""><paramtype>void</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Returns the number of elements contained in the priority queue.</para><para><emphasis role="bold">Complexity:</emphasis> Constant, if configured with <link linkend="doxygen.structboost_1_1heap_1_1constant__time__size">constant_time_size&lt;true&gt;</link>, otherwise linear.    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1skew__heap_1a92ebccbbaded73f9416b6c8626a5a408" name="max_size" cv="const"><type>size_type</type><parameter name=""><paramtype>void</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Returns the maximum number of elements the priority queue can contain.</para><para><emphasis role="bold">Complexity:</emphasis> Constant.    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1skew__heap_1a67a761c708ecdedd863c27ecae9902b7" name="clear"><type>void</type><parameter name=""><paramtype>void</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Removes all elements from the priority queue.</para><para><emphasis role="bold">Complexity:</emphasis> Linear.    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1skew__heap_1a76c5705bbcbb07404a4dc2d9644c6efb" name="get_allocator" cv="const"><type>allocator_type</type><parameter name=""><paramtype>void</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Returns allocator.</para><para><emphasis role="bold">Complexity:</emphasis> Constant.    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1skew__heap_1a3c066d2add3e8d539629d86ccd100ddc" name="swap"><type>void</type><parameter name="rhs"><paramtype><classname>skew_heap</classname> &amp;</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Swaps two priority queues.</para><para><emphasis role="bold">Complexity:</emphasis> Constant.</para><para><xrefsect id="deprecated_1_deprecated000001"><xreftitle>Deprecated</xreftitle><xrefdescription><para>Use <computeroutput>std::swap</computeroutput> instead. </para>
</xrefdescription></xrefsect></para></description></method>
<method id="doxygen.classboost_1_1heap_1_1skew__heap_1a7045f6153d278ccfd7436e3231930f9d" name="top" cv="const"><type>const_reference</type><parameter name=""><paramtype>void</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Returns a const_reference to the maximum element.</para><para><emphasis role="bold">Complexity:</emphasis> Constant.    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1skew__heap_1ae44ef23cc9e699196b620f99826ac36d" name="pop"><type>void</type><parameter name=""><paramtype>void</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Removes the top element from the priority queue.</para><para><emphasis role="bold">Complexity:</emphasis> Logarithmic (amortized). </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1skew__heap_1adb00fa64dd60e3b45a1f5874fae5cc76" name="begin" cv="const"><type>iterator</type><parameter name=""><paramtype>void</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Returns an iterator to the first element contained in the priority queue.</para><para><emphasis role="bold">Complexity:</emphasis> Constant.    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1skew__heap_1a2c9e4db58325ddb62c725378593690ee" name="end" cv="const"><type>iterator</type><parameter name=""><paramtype>void</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Returns an iterator to the end of the priority queue.</para><para><emphasis role="bold">Complexity:</emphasis> Constant.    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1skew__heap_1adc96834bd5b0415f4d5e377a054960fc" name="ordered_begin" cv="const"><type>ordered_iterator</type><parameter name=""><paramtype>void</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Returns an ordered iterator to the first element contained in the priority queue.</para><para><emphasis role="bold">Note:</emphasis> Ordered iterators traverse the priority queue in heap order.    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1skew__heap_1a1c8f208efe809d4891b8087f5877b3cc" name="ordered_end" cv="const"><type>ordered_iterator</type><parameter name=""><paramtype>void</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Returns an ordered iterator to the first element contained in the priority queue.</para><para><emphasis role="bold">Note:</emphasis> Ordered iterators traverse the priority queue in heap order.    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1skew__heap_1af008756837e3192c5489e8ddc0adb83a" name="merge"><type>void</type><parameter name="rhs"><paramtype><classname>skew_heap</classname> &amp;</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Merge all elements from rhs into this</para><para><emphasis role="bold">Complexity:</emphasis> Logarithmic (amortized). </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1skew__heap_1a5fb98c4e1c23fbfb92c1e97df349add6" name="value_comp" cv="const"><type>value_compare const &amp;</type><parameter name=""><paramtype>void</paramtype></parameter><description><para><emphasis role="bold">Effect:</emphasis> Returns the value_compare object used by the priority queue    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1skew__heap_1a69d4fe228b5c6e2431e4cf142f2fe79b" name="operator&lt;" cv="const"><type>bool</type><template>
          <template-type-parameter name="HeapType"/>
        </template><parameter name="rhs"><paramtype>HeapType const &amp;</paramtype></parameter><description><para><emphasis role="bold">Returns:</emphasis> Element-wise comparison of heap data structures</para><para><emphasis role="bold">Requirement:</emphasis> the <computeroutput>value_compare</computeroutput> object of both heaps must match.    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1skew__heap_1a9cd8f1faf53afd5893e997aafc95a4a1" name="operator&gt;" cv="const"><type>bool</type><template>
          <template-type-parameter name="HeapType"/>
        </template><parameter name="rhs"><paramtype>HeapType const &amp;</paramtype></parameter><description><para><emphasis role="bold">Returns:</emphasis> Element-wise comparison of heap data structures</para><para><emphasis role="bold">Requirement:</emphasis> the <computeroutput>value_compare</computeroutput> object of both heaps must match.    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1skew__heap_1ae41aaea06e0f8a89caea103533951cf7" name="operator&gt;=" cv="const"><type>bool</type><template>
          <template-type-parameter name="HeapType"/>
        </template><parameter name="rhs"><paramtype>HeapType const &amp;</paramtype></parameter><description><para><emphasis role="bold">Returns:</emphasis> Element-wise comparison of heap data structures</para><para><emphasis role="bold">Requirement:</emphasis> the <computeroutput>value_compare</computeroutput> object of both heaps must match.    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1skew__heap_1a3eb8e87f45cb51f7c2ff983e42cefa14" name="operator&lt;=" cv="const"><type>bool</type><template>
          <template-type-parameter name="HeapType"/>
        </template><parameter name="rhs"><paramtype>HeapType const &amp;</paramtype></parameter><description><para><emphasis role="bold">Returns:</emphasis> Element-wise comparison of heap data structures</para><para><emphasis role="bold">Requirement:</emphasis> the <computeroutput>value_compare</computeroutput> object of both heaps must match.    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1skew__heap_1a3f79ebaf5a5f1f0ca11a00b65f7f4ec2" name="operator==" cv="const"><type>bool</type><template>
          <template-type-parameter name="HeapType"/>
        </template><parameter name="rhs"><paramtype>HeapType const &amp;</paramtype></parameter><purpose>Equivalent comparison <emphasis role="bold">Returns:</emphasis> True, if both heap data structures are equivalent.    </purpose><description><para><emphasis role="bold">Requirement:</emphasis> the <computeroutput>value_compare</computeroutput> object of both heaps must match.    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1skew__heap_1ad8e6aa847ee32a49bf49fa8cf272495c" name="operator!=" cv="const"><type>bool</type><template>
          <template-type-parameter name="HeapType"/>
        </template><parameter name="rhs"><paramtype>HeapType const &amp;</paramtype></parameter><purpose>Equivalent comparison <emphasis role="bold">Returns:</emphasis> True, if both heap data structures are not equivalent.    </purpose><description><para><emphasis role="bold">Requirement:</emphasis> the <computeroutput>value_compare</computeroutput> object of both heaps must match.    </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1skew__heap_1afcb6551a44bb3900e1e249b5885bb4eb" name="erase"><type>void</type><parameter name="object"><paramtype>handle_type</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Removes the element handled by <computeroutput>handle</computeroutput> from the <link linkend="doxygen.classboost_1_1heap_1_1priority__queue">priority_queue</link>.</para><para><emphasis role="bold">Complexity:</emphasis> Logarithmic (amortized). </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1skew__heap_1aa2ddaed08b1219c22ce666b6c0d15c2c" name="update"><type>void</type><parameter name="handle"><paramtype>handle_type</paramtype></parameter><parameter name="v"><paramtype>const_reference</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Assigns <computeroutput>v</computeroutput> to the element handled by <computeroutput>handle</computeroutput> &amp; updates the priority queue.</para><para><emphasis role="bold">Complexity:</emphasis> Logarithmic (amortized). </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1skew__heap_1a92dfff16a1bd9ae18e81eb6117d24c87" name="update"><type>void</type><parameter name="handle"><paramtype>handle_type</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Updates the heap after the element handled by <computeroutput>handle</computeroutput> has been changed.</para><para><emphasis role="bold">Complexity:</emphasis> Logarithmic (amortized).</para><para><emphasis role="bold">Note:</emphasis> If this is not called, after a handle has been updated, the behavior of the data structure is undefined! </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1skew__heap_1ada94f22872b33cb559256ecad77546ec" name="increase"><type>void</type><parameter name="handle"><paramtype>handle_type</paramtype></parameter><parameter name="v"><paramtype>const_reference</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Assigns <computeroutput>v</computeroutput> to the element handled by <computeroutput>handle</computeroutput> &amp; updates the priority queue.</para><para><emphasis role="bold">Complexity:</emphasis> Logarithmic (amortized).</para><para><emphasis role="bold">Note:</emphasis> The new value is expected to be greater than the current one </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1skew__heap_1a17471c10c36105ebe1cf59563555e280" name="increase"><type>void</type><parameter name="handle"><paramtype>handle_type</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Updates the heap after the element handled by <computeroutput>handle</computeroutput> has been changed.</para><para><emphasis role="bold">Complexity:</emphasis> Logarithmic (amortized).</para><para><emphasis role="bold">Note:</emphasis> If this is not called, after a handle has been updated, the behavior of the data structure is undefined! </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1skew__heap_1a1659a274b82f2d3c1cfcf3075831746a" name="decrease"><type>void</type><parameter name="handle"><paramtype>handle_type</paramtype></parameter><parameter name="v"><paramtype>const_reference</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Assigns <computeroutput>v</computeroutput> to the element handled by <computeroutput>handle</computeroutput> &amp; updates the priority queue.</para><para><emphasis role="bold">Complexity:</emphasis> Logarithmic (amortized).</para><para><emphasis role="bold">Note:</emphasis> The new value is expected to be less than the current one </para></description></method>
<method id="doxygen.classboost_1_1heap_1_1skew__heap_1ac8b453a9c4766203082332eb70a7321f" name="decrease"><type>void</type><parameter name="handle"><paramtype>handle_type</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Updates the heap after the element handled by <computeroutput>handle</computeroutput> has been changed.</para><para><emphasis role="bold">Complexity:</emphasis> Logarithmic (amortized).</para><para><emphasis role="bold">Note:</emphasis> 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! </para></description></method>
</method-group>
<method-group name="public static functions">
<method id="doxygen.classboost_1_1heap_1_1skew__heap_1af8e3130270891cba6b8c9e81e3e1f40c" name="s_handle_from_iterator" specifiers="static"><type>handle_type</type><parameter name="it"><paramtype>iterator const &amp;</paramtype></parameter><description><para><emphasis role="bold">Effects:</emphasis> Casts an iterator to a node handle.</para><para><emphasis role="bold">Complexity:</emphasis> Constant.</para><para><emphasis role="bold">Requirement:</emphasis> data structure must be configured as mutable    </para></description></method>
</method-group>
</class>
</namespace>
</namespace>
</header>
</library-reference>