Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > 29c369053a983cc5d8c880dc6e0a2237 > files > 1619

libdtn-devel-2.6.0-2mdv2009.1.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>DTN Reference Implementation: prophet::Heap&lt; UnitType, Sequence, Compare, UpdateElem &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css">
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.8 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    </ul>
  </div>
  <div class="navpath"><a class="el" href="namespaceprophet.html">prophet</a>::<a class="el" href="classprophet_1_1Heap.html">Heap</a>
  </div>
</div>
<div class="contents">
<h1>prophet::Heap&lt; UnitType, Sequence, Compare, UpdateElem &gt; Class Template Reference</h1><!-- doxytag: class="prophet::Heap" --><code>#include &lt;<a class="el" href="Util_8h-source.html">Util.h</a>&gt;</code>
<p>

<p>
<a href="classprophet_1_1Heap-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Types</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef Sequence::value_type&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classprophet_1_1Heap.html#b4a24ec4259b8cf494c9a19dcbcb3fe8">value_type</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef Sequence::size_type&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classprophet_1_1Heap.html#d4ba3e967311000a3c3e06b40b2f34f8">size_type</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef Sequence::iterator&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classprophet_1_1Heap.html#a08eed0d1757ada8dc3560a57a843787">iterator</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef Sequence::const_reference&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classprophet_1_1Heap.html#5a63f2790438bad51ba92215577dc14a">const_reference</a></td></tr>

<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classprophet_1_1Heap.html#99cd69953c33bf7dea6b7e4a2b647e99">Heap</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Default constructor.  <a href="#99cd69953c33bf7dea6b7e4a2b647e99"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classprophet_1_1Heap.html#69d1dac4f386f55ab7b50e61f797e8e2">Heap</a> (Compare *comp)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classprophet_1_1Heap.html">Heap</a> assumes ownership of comp.  <a href="#69d1dac4f386f55ab7b50e61f797e8e2"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classprophet_1_1Heap.html#96edb72184fea9ff0f98d485b5e16225">~Heap</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Destructor.  <a href="#96edb72184fea9ff0f98d485b5e16225"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const Compare *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classprophet_1_1Heap.html#dbc1b4c6e50504567b744ada78ba7986">compare</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constant reference to current compare.  <a href="#dbc1b4c6e50504567b744ada78ba7986"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classprophet_1_1Heap.html#f9671b4c827e23c90f944a9f9970f4a3">set_compare</a> (Compare *comp)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Change to new compare and reorder heap.  <a href="#f9671b4c827e23c90f944a9f9970f4a3"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classprophet_1_1Heap.html#af6153f28572f09a0add721db23f97ba">update_elements</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Pass over entire sequence to ensure each element's heap pointer.  <a href="#af6153f28572f09a0add721db23f97ba"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="serialsource_8c.html#1062901a7428fdd9c7f180f5e01ea056">bool</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classprophet_1_1Heap.html#f9153c0d26efbd93362cc4a572437ee7">empty</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return true if underlying sequence is empty.  <a href="#f9153c0d26efbd93362cc4a572437ee7"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classprophet_1_1Heap.html#d4ba3e967311000a3c3e06b40b2f34f8">size_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classprophet_1_1Heap.html#24f75e9aa275c8a12feea2c630603bd6">size</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return number of elements in underlying sequence.  <a href="#24f75e9aa275c8a12feea2c630603bd6"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classprophet_1_1Heap.html#5a63f2790438bad51ba92215577dc14a">const_reference</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classprophet_1_1Heap.html#ed8c35bf71920dcca199adc8f869a8eb">top</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return read-only reference to top of heap.  <a href="#ed8c35bf71920dcca199adc8f869a8eb"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classprophet_1_1Heap.html#c80802c5b5edf1998b023b6323ae8b3d">add</a> (<a class="el" href="classprophet_1_1Heap.html#b4a24ec4259b8cf494c9a19dcbcb3fe8">value_type</a> x)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add data to heap, return index of insertion point.  <a href="#c80802c5b5edf1998b023b6323ae8b3d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classprophet_1_1Heap.html#20d319981c5585b49f388b5a9d6afadb">remove</a> (size_t pos)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Remove element from heap by position, re-heap remaining elements.  <a href="#20d319981c5585b49f388b5a9d6afadb"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const Sequence &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classprophet_1_1Heap.html#29f17eeee1c6569552023e544073031c">sequence</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constant reference to underlying sequence.  <a href="#29f17eeee1c6569552023e544073031c"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Static Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static <a class="el" href="serialsource_8c.html#1062901a7428fdd9c7f180f5e01ea056">bool</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classprophet_1_1Heap.html#62defdf63c3648950958952d92bc1223">is_heap</a> (const Sequence &amp;list, Compare &amp;comp)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Verify heap order.  <a href="#62defdf63c3648950958952d92bc1223"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classprophet_1_1Heap.html#d4ba3e967311000a3c3e06b40b2f34f8">size_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classprophet_1_1Heap.html#aac5e8b183884ec9d8cbd1c706d8c7df">heap_down</a> (<a class="el" href="classprophet_1_1Heap.html#d4ba3e967311000a3c3e06b40b2f34f8">size_type</a> hole)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Assuming left and right subtrees are in heap order, push hole down the tree until it reaches heap order.  <a href="#aac5e8b183884ec9d8cbd1c706d8c7df"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classprophet_1_1Heap.html#d4ba3e967311000a3c3e06b40b2f34f8">size_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classprophet_1_1Heap.html#2e04da181c192f5d3fa1fca52ff8f52d">heap_up</a> (<a class="el" href="classprophet_1_1Heap.html#d4ba3e967311000a3c3e06b40b2f34f8">size_type</a> last)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Assuming tree is heap order above last, bubble up last until the tree is in heap order.  <a href="#2e04da181c192f5d3fa1fca52ff8f52d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classprophet_1_1Heap.html#008f313cbc6615f66a6c51ce070bfd7b">make_heap</a> (<a class="el" href="classprophet_1_1Heap.html#d4ba3e967311000a3c3e06b40b2f34f8">size_type</a> first)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Begin with last node (a leaf, therefore a subtree of size 1, therefore a heap) and work upwards to build heap.  <a href="#008f313cbc6615f66a6c51ce070bfd7b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classprophet_1_1Heap.html#5d2bdf1ea6e819c4ee95c776d3ea85f1">swap</a> (<a class="el" href="classprophet_1_1Heap.html#d4ba3e967311000a3c3e06b40b2f34f8">size_type</a> a, <a class="el" href="classprophet_1_1Heap.html#d4ba3e967311000a3c3e06b40b2f34f8">size_type</a> b)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Swap function used by heap_up, heap_down.  <a href="#5d2bdf1ea6e819c4ee95c776d3ea85f1"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">Sequence&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classprophet_1_1Heap.html#305b5e34923105dd374002f8af690b3e">seq_</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">Compare *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classprophet_1_1Heap.html#eb0d3cc41b7524e9c1cdb96b0ed0c4ac">comp_</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">UpdateElem&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classprophet_1_1Heap.html#cf9a097600f517dcc5fd3fd9858e16ae">upd_</a></td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
<h3>template&lt;typename UnitType, typename Sequence = std::vector&lt;UnitType&gt;, typename Compare = std::less&lt;typename Sequence::value_type&gt;, typename UpdateElem = DoNothing&lt;UnitType,typename Sequence::size_type&gt;&gt;<br>
 class prophet::Heap&lt; UnitType, Sequence, Compare, UpdateElem &gt;</h3>


<p>Definition at line <a class="el" href="Util_8h-source.html#l00054">54</a> of file <a class="el" href="Util_8h-source.html">Util.h</a>.</p>
<hr><h2>Member Typedef Documentation</h2>
<a class="anchor" name="5a63f2790438bad51ba92215577dc14a"></a><!-- doxytag: member="prophet::Heap::const_reference" ref="5a63f2790438bad51ba92215577dc14a" args="" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename UnitType, typename Sequence = std::vector&lt;UnitType&gt;, typename Compare = std::less&lt;typename Sequence::value_type&gt;, typename UpdateElem = DoNothing&lt;UnitType,typename Sequence::size_type&gt;&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">typedef Sequence::const_reference <a class="el" href="classprophet_1_1Heap.html">prophet::Heap</a>&lt; UnitType, Sequence, Compare, UpdateElem &gt;::<a class="el" href="classprophet_1_1Heap.html#5a63f2790438bad51ba92215577dc14a">const_reference</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>Definition at line <a class="el" href="Util_8h-source.html#l00060">60</a> of file <a class="el" href="Util_8h-source.html">Util.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="a08eed0d1757ada8dc3560a57a843787"></a><!-- doxytag: member="prophet::Heap::iterator" ref="a08eed0d1757ada8dc3560a57a843787" args="" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename UnitType, typename Sequence = std::vector&lt;UnitType&gt;, typename Compare = std::less&lt;typename Sequence::value_type&gt;, typename UpdateElem = DoNothing&lt;UnitType,typename Sequence::size_type&gt;&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">typedef Sequence::iterator <a class="el" href="classprophet_1_1Heap.html">prophet::Heap</a>&lt; UnitType, Sequence, Compare, UpdateElem &gt;::<a class="el" href="classprophet_1_1Heap.html#a08eed0d1757ada8dc3560a57a843787">iterator</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>Definition at line <a class="el" href="Util_8h-source.html#l00059">59</a> of file <a class="el" href="Util_8h-source.html">Util.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="d4ba3e967311000a3c3e06b40b2f34f8"></a><!-- doxytag: member="prophet::Heap::size_type" ref="d4ba3e967311000a3c3e06b40b2f34f8" args="" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename UnitType, typename Sequence = std::vector&lt;UnitType&gt;, typename Compare = std::less&lt;typename Sequence::value_type&gt;, typename UpdateElem = DoNothing&lt;UnitType,typename Sequence::size_type&gt;&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">typedef Sequence::size_type <a class="el" href="classprophet_1_1Heap.html">prophet::Heap</a>&lt; UnitType, Sequence, Compare, UpdateElem &gt;::<a class="el" href="classprophet_1_1Heap.html#d4ba3e967311000a3c3e06b40b2f34f8">size_type</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>Definition at line <a class="el" href="Util_8h-source.html#l00058">58</a> of file <a class="el" href="Util_8h-source.html">Util.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="b4a24ec4259b8cf494c9a19dcbcb3fe8"></a><!-- doxytag: member="prophet::Heap::value_type" ref="b4a24ec4259b8cf494c9a19dcbcb3fe8" args="" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename UnitType, typename Sequence = std::vector&lt;UnitType&gt;, typename Compare = std::less&lt;typename Sequence::value_type&gt;, typename UpdateElem = DoNothing&lt;UnitType,typename Sequence::size_type&gt;&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">typedef Sequence::value_type <a class="el" href="classprophet_1_1Heap.html">prophet::Heap</a>&lt; UnitType, Sequence, Compare, UpdateElem &gt;::<a class="el" href="classprophet_1_1Heap.html#b4a24ec4259b8cf494c9a19dcbcb3fe8">value_type</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>Definition at line <a class="el" href="Util_8h-source.html#l00057">57</a> of file <a class="el" href="Util_8h-source.html">Util.h</a>.</p>

</div>
</div><p>
<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" name="99cd69953c33bf7dea6b7e4a2b647e99"></a><!-- doxytag: member="prophet::Heap::Heap" ref="99cd69953c33bf7dea6b7e4a2b647e99" args="()" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename UnitType, typename Sequence = std::vector&lt;UnitType&gt;, typename Compare = std::less&lt;typename Sequence::value_type&gt;, typename UpdateElem = DoNothing&lt;UnitType,typename Sequence::size_type&gt;&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classprophet_1_1Heap.html">prophet::Heap</a>&lt; UnitType, Sequence, Compare, UpdateElem &gt;::<a class="el" href="classprophet_1_1Heap.html">Heap</a>           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Default constructor. 
<p>

<p>Definition at line <a class="el" href="Util_8h-source.html#l00065">65</a> of file <a class="el" href="Util_8h-source.html">Util.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="69d1dac4f386f55ab7b50e61f797e8e2"></a><!-- doxytag: member="prophet::Heap::Heap" ref="69d1dac4f386f55ab7b50e61f797e8e2" args="(Compare *comp)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename UnitType, typename Sequence = std::vector&lt;UnitType&gt;, typename Compare = std::less&lt;typename Sequence::value_type&gt;, typename UpdateElem = DoNothing&lt;UnitType,typename Sequence::size_type&gt;&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classprophet_1_1Heap.html">prophet::Heap</a>&lt; UnitType, Sequence, Compare, UpdateElem &gt;::<a class="el" href="classprophet_1_1Heap.html">Heap</a>           </td>
          <td>(</td>
          <td class="paramtype">Compare *&nbsp;</td>
          <td class="paramname"> <em>comp</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<a class="el" href="classprophet_1_1Heap.html">Heap</a> assumes ownership of comp. 
<p>

<p>Definition at line <a class="el" href="Util_8h-source.html#l00073">73</a> of file <a class="el" href="Util_8h-source.html">Util.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="96edb72184fea9ff0f98d485b5e16225"></a><!-- doxytag: member="prophet::Heap::~Heap" ref="96edb72184fea9ff0f98d485b5e16225" args="()" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename UnitType, typename Sequence = std::vector&lt;UnitType&gt;, typename Compare = std::less&lt;typename Sequence::value_type&gt;, typename UpdateElem = DoNothing&lt;UnitType,typename Sequence::size_type&gt;&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classprophet_1_1Heap.html">prophet::Heap</a>&lt; UnitType, Sequence, Compare, UpdateElem &gt;::~<a class="el" href="classprophet_1_1Heap.html">Heap</a>           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Destructor. 
<p>

<p>Definition at line <a class="el" href="Util_8h-source.html#l00081">81</a> of file <a class="el" href="Util_8h-source.html">Util.h</a>.</p>

</div>
</div><p>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="c80802c5b5edf1998b023b6323ae8b3d"></a><!-- doxytag: member="prophet::Heap::add" ref="c80802c5b5edf1998b023b6323ae8b3d" args="(value_type x)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename UnitType, typename Sequence = std::vector&lt;UnitType&gt;, typename Compare = std::less&lt;typename Sequence::value_type&gt;, typename UpdateElem = DoNothing&lt;UnitType,typename Sequence::size_type&gt;&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classprophet_1_1Heap.html">prophet::Heap</a>&lt; UnitType, Sequence, Compare, UpdateElem &gt;::add           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classprophet_1_1Heap.html#b4a24ec4259b8cf494c9a19dcbcb3fe8">value_type</a>&nbsp;</td>
          <td class="paramname"> <em>x</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Add data to heap, return index of insertion point. 
<p>

<p>Definition at line <a class="el" href="Util_8h-source.html#l00145">145</a> of file <a class="el" href="Util_8h-source.html">Util.h</a>.</p>

<p>Referenced by <a class="el" href="Table_8cc-source.html#l00058">prophet::Table::heap_add()</a>.</p>

</div>
</div><p>
<a class="anchor" name="dbc1b4c6e50504567b744ada78ba7986"></a><!-- doxytag: member="prophet::Heap::compare" ref="dbc1b4c6e50504567b744ada78ba7986" args="() const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename UnitType, typename Sequence = std::vector&lt;UnitType&gt;, typename Compare = std::less&lt;typename Sequence::value_type&gt;, typename UpdateElem = DoNothing&lt;UnitType,typename Sequence::size_type&gt;&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">const Compare* <a class="el" href="classprophet_1_1Heap.html">prophet::Heap</a>&lt; UnitType, Sequence, Compare, UpdateElem &gt;::compare           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Constant reference to current compare. 
<p>

<p>Definition at line <a class="el" href="Util_8h-source.html#l00087">87</a> of file <a class="el" href="Util_8h-source.html">Util.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="f9153c0d26efbd93362cc4a572437ee7"></a><!-- doxytag: member="prophet::Heap::empty" ref="f9153c0d26efbd93362cc4a572437ee7" args="() const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename UnitType, typename Sequence = std::vector&lt;UnitType&gt;, typename Compare = std::less&lt;typename Sequence::value_type&gt;, typename UpdateElem = DoNothing&lt;UnitType,typename Sequence::size_type&gt;&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="serialsource_8c.html#1062901a7428fdd9c7f180f5e01ea056">bool</a> <a class="el" href="classprophet_1_1Heap.html">prophet::Heap</a>&lt; UnitType, Sequence, Compare, UpdateElem &gt;::empty           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return true if underlying sequence is empty. 
<p>

<p>Definition at line <a class="el" href="Util_8h-source.html#l00129">129</a> of file <a class="el" href="Util_8h-source.html">Util.h</a>.</p>

<p>Referenced by <a class="el" href="Table_8cc-source.html#l00460">prophet::Table::enforce_quota()</a>, and <a class="el" href="Table_8cc-source.html#l00320">prophet::Table::truncate()</a>.</p>

</div>
</div><p>
<a class="anchor" name="aac5e8b183884ec9d8cbd1c706d8c7df"></a><!-- doxytag: member="prophet::Heap::heap_down" ref="aac5e8b183884ec9d8cbd1c706d8c7df" args="(size_type hole)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename UnitType, typename Sequence = std::vector&lt;UnitType&gt;, typename Compare = std::less&lt;typename Sequence::value_type&gt;, typename UpdateElem = DoNothing&lt;UnitType,typename Sequence::size_type&gt;&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classprophet_1_1Heap.html#d4ba3e967311000a3c3e06b40b2f34f8">size_type</a> <a class="el" href="classprophet_1_1Heap.html">prophet::Heap</a>&lt; UnitType, Sequence, Compare, UpdateElem &gt;::heap_down           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classprophet_1_1Heap.html#d4ba3e967311000a3c3e06b40b2f34f8">size_type</a>&nbsp;</td>
          <td class="paramname"> <em>hole</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Assuming left and right subtrees are in heap order, push hole down the tree until it reaches heap order. 
<p>

<p>Definition at line <a class="el" href="Util_8h-source.html#l00180">180</a> of file <a class="el" href="Util_8h-source.html">Util.h</a>.</p>

<p>Referenced by <a class="el" href="Util_8h-source.html#l00237">prophet::Heap&lt; Node *, std::vector&lt; Node * &gt;, struct heap_compare, struct heap_pos &gt;::make_heap()</a>, and <a class="el" href="Util_8h-source.html#l00159">prophet::Heap&lt; Node *, std::vector&lt; Node * &gt;, struct heap_compare, struct heap_pos &gt;::remove()</a>.</p>

</div>
</div><p>
<a class="anchor" name="2e04da181c192f5d3fa1fca52ff8f52d"></a><!-- doxytag: member="prophet::Heap::heap_up" ref="2e04da181c192f5d3fa1fca52ff8f52d" args="(size_type last)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename UnitType, typename Sequence = std::vector&lt;UnitType&gt;, typename Compare = std::less&lt;typename Sequence::value_type&gt;, typename UpdateElem = DoNothing&lt;UnitType,typename Sequence::size_type&gt;&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classprophet_1_1Heap.html#d4ba3e967311000a3c3e06b40b2f34f8">size_type</a> <a class="el" href="classprophet_1_1Heap.html">prophet::Heap</a>&lt; UnitType, Sequence, Compare, UpdateElem &gt;::heap_up           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classprophet_1_1Heap.html#d4ba3e967311000a3c3e06b40b2f34f8">size_type</a>&nbsp;</td>
          <td class="paramname"> <em>last</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Assuming tree is heap order above last, bubble up last until the tree is in heap order. 
<p>

<p>Definition at line <a class="el" href="Util_8h-source.html#l00214">214</a> of file <a class="el" href="Util_8h-source.html">Util.h</a>.</p>

<p>Referenced by <a class="el" href="Util_8h-source.html#l00145">prophet::Heap&lt; Node *, std::vector&lt; Node * &gt;, struct heap_compare, struct heap_pos &gt;::add()</a>.</p>

</div>
</div><p>
<a class="anchor" name="62defdf63c3648950958952d92bc1223"></a><!-- doxytag: member="prophet::Heap::is_heap" ref="62defdf63c3648950958952d92bc1223" args="(const Sequence &amp;list, Compare &amp;comp)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename UnitType, typename Sequence = std::vector&lt;UnitType&gt;, typename Compare = std::less&lt;typename Sequence::value_type&gt;, typename UpdateElem = DoNothing&lt;UnitType,typename Sequence::size_type&gt;&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="serialsource_8c.html#1062901a7428fdd9c7f180f5e01ea056">bool</a> <a class="el" href="classprophet_1_1Heap.html">prophet::Heap</a>&lt; UnitType, Sequence, Compare, UpdateElem &gt;::is_heap           </td>
          <td>(</td>
          <td class="paramtype">const Sequence &amp;&nbsp;</td>
          <td class="paramname"> <em>list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Compare &amp;&nbsp;</td>
          <td class="paramname"> <em>comp</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Verify heap order. 
<p>

<p>Definition at line <a class="el" href="Util_8h-source.html#l00104">104</a> of file <a class="el" href="Util_8h-source.html">Util.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="008f313cbc6615f66a6c51ce070bfd7b"></a><!-- doxytag: member="prophet::Heap::make_heap" ref="008f313cbc6615f66a6c51ce070bfd7b" args="(size_type first)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename UnitType, typename Sequence = std::vector&lt;UnitType&gt;, typename Compare = std::less&lt;typename Sequence::value_type&gt;, typename UpdateElem = DoNothing&lt;UnitType,typename Sequence::size_type&gt;&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classprophet_1_1Heap.html">prophet::Heap</a>&lt; UnitType, Sequence, Compare, UpdateElem &gt;::make_heap           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classprophet_1_1Heap.html#d4ba3e967311000a3c3e06b40b2f34f8">size_type</a>&nbsp;</td>
          <td class="paramname"> <em>first</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Begin with last node (a leaf, therefore a subtree of size 1, therefore a heap) and work upwards to build heap. 
<p>

<p>Definition at line <a class="el" href="Util_8h-source.html#l00237">237</a> of file <a class="el" href="Util_8h-source.html">Util.h</a>.</p>

<p>Referenced by <a class="el" href="Util_8h-source.html#l00093">prophet::Heap&lt; Node *, std::vector&lt; Node * &gt;, struct heap_compare, struct heap_pos &gt;::set_compare()</a>.</p>

</div>
</div><p>
<a class="anchor" name="20d319981c5585b49f388b5a9d6afadb"></a><!-- doxytag: member="prophet::Heap::remove" ref="20d319981c5585b49f388b5a9d6afadb" args="(size_t pos)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename UnitType, typename Sequence = std::vector&lt;UnitType&gt;, typename Compare = std::less&lt;typename Sequence::value_type&gt;, typename UpdateElem = DoNothing&lt;UnitType,typename Sequence::size_type&gt;&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classprophet_1_1Heap.html">prophet::Heap</a>&lt; UnitType, Sequence, Compare, UpdateElem &gt;::remove           </td>
          <td>(</td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>pos</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Remove element from heap by position, re-heap remaining elements. 
<p>

<p>Definition at line <a class="el" href="Util_8h-source.html#l00159">159</a> of file <a class="el" href="Util_8h-source.html">Util.h</a>.</p>

<p>Referenced by <a class="el" href="Table_8cc-source.html#l00063">prophet::Table::heap_del()</a>, and <a class="el" href="Table_8cc-source.html#l00320">prophet::Table::truncate()</a>.</p>

</div>
</div><p>
<a class="anchor" name="29f17eeee1c6569552023e544073031c"></a><!-- doxytag: member="prophet::Heap::sequence" ref="29f17eeee1c6569552023e544073031c" args="() const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename UnitType, typename Sequence = std::vector&lt;UnitType&gt;, typename Compare = std::less&lt;typename Sequence::value_type&gt;, typename UpdateElem = DoNothing&lt;UnitType,typename Sequence::size_type&gt;&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">const Sequence&amp; <a class="el" href="classprophet_1_1Heap.html">prophet::Heap</a>&lt; UnitType, Sequence, Compare, UpdateElem &gt;::sequence           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Constant reference to underlying sequence. 
<p>

<p>Definition at line <a class="el" href="Util_8h-source.html#l00172">172</a> of file <a class="el" href="Util_8h-source.html">Util.h</a>.</p>

<p>Referenced by <a class="el" href="Table_8h-source.html#l00187">prophet::Table::heap_begin()</a>, <a class="el" href="Table_8cc-source.html#l00063">prophet::Table::heap_del()</a>, and <a class="el" href="Table_8h-source.html#l00188">prophet::Table::heap_end()</a>.</p>

</div>
</div><p>
<a class="anchor" name="f9671b4c827e23c90f944a9f9970f4a3"></a><!-- doxytag: member="prophet::Heap::set_compare" ref="f9671b4c827e23c90f944a9f9970f4a3" args="(Compare *comp)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename UnitType, typename Sequence = std::vector&lt;UnitType&gt;, typename Compare = std::less&lt;typename Sequence::value_type&gt;, typename UpdateElem = DoNothing&lt;UnitType,typename Sequence::size_type&gt;&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classprophet_1_1Heap.html">prophet::Heap</a>&lt; UnitType, Sequence, Compare, UpdateElem &gt;::set_compare           </td>
          <td>(</td>
          <td class="paramtype">Compare *&nbsp;</td>
          <td class="paramname"> <em>comp</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Change to new compare and reorder heap. 
<p>

<p>Definition at line <a class="el" href="Util_8h-source.html#l00093">93</a> of file <a class="el" href="Util_8h-source.html">Util.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="24f75e9aa275c8a12feea2c630603bd6"></a><!-- doxytag: member="prophet::Heap::size" ref="24f75e9aa275c8a12feea2c630603bd6" args="() const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename UnitType, typename Sequence = std::vector&lt;UnitType&gt;, typename Compare = std::less&lt;typename Sequence::value_type&gt;, typename UpdateElem = DoNothing&lt;UnitType,typename Sequence::size_type&gt;&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classprophet_1_1Heap.html#d4ba3e967311000a3c3e06b40b2f34f8">size_type</a> <a class="el" href="classprophet_1_1Heap.html">prophet::Heap</a>&lt; UnitType, Sequence, Compare, UpdateElem &gt;::size           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return number of elements in underlying sequence. 
<p>

<p>Definition at line <a class="el" href="Util_8h-source.html#l00134">134</a> of file <a class="el" href="Util_8h-source.html">Util.h</a>.</p>

<p>Referenced by <a class="el" href="Util_8h-source.html#l00145">prophet::Heap&lt; Node *, std::vector&lt; Node * &gt;, struct heap_compare, struct heap_pos &gt;::add()</a>, <a class="el" href="Table_8cc-source.html#l00063">prophet::Table::heap_del()</a>, <a class="el" href="Util_8h-source.html#l00180">prophet::Heap&lt; Node *, std::vector&lt; Node * &gt;, struct heap_compare, struct heap_pos &gt;::heap_down()</a>, <a class="el" href="Util_8h-source.html#l00237">prophet::Heap&lt; Node *, std::vector&lt; Node * &gt;, struct heap_compare, struct heap_pos &gt;::make_heap()</a>, <a class="el" href="Util_8h-source.html#l00159">prophet::Heap&lt; Node *, std::vector&lt; Node * &gt;, struct heap_compare, struct heap_pos &gt;::remove()</a>, <a class="el" href="Table_8cc-source.html#l00320">prophet::Table::truncate()</a>, and <a class="el" href="Util_8h-source.html#l00120">prophet::Heap&lt; Node *, std::vector&lt; Node * &gt;, struct heap_compare, struct heap_pos &gt;::update_elements()</a>.</p>

</div>
</div><p>
<a class="anchor" name="5d2bdf1ea6e819c4ee95c776d3ea85f1"></a><!-- doxytag: member="prophet::Heap::swap" ref="5d2bdf1ea6e819c4ee95c776d3ea85f1" args="(size_type a, size_type b)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename UnitType, typename Sequence = std::vector&lt;UnitType&gt;, typename Compare = std::less&lt;typename Sequence::value_type&gt;, typename UpdateElem = DoNothing&lt;UnitType,typename Sequence::size_type&gt;&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classprophet_1_1Heap.html">prophet::Heap</a>&lt; UnitType, Sequence, Compare, UpdateElem &gt;::swap           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classprophet_1_1Heap.html#d4ba3e967311000a3c3e06b40b2f34f8">size_type</a>&nbsp;</td>
          <td class="paramname"> <em>a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classprophet_1_1Heap.html#d4ba3e967311000a3c3e06b40b2f34f8">size_type</a>&nbsp;</td>
          <td class="paramname"> <em>b</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Swap function used by heap_up, heap_down. 
<p>

<p>Definition at line <a class="el" href="Util_8h-source.html#l00257">257</a> of file <a class="el" href="Util_8h-source.html">Util.h</a>.</p>

<p>Referenced by <a class="el" href="Util_8h-source.html#l00180">prophet::Heap&lt; Node *, std::vector&lt; Node * &gt;, struct heap_compare, struct heap_pos &gt;::heap_down()</a>, and <a class="el" href="Util_8h-source.html#l00214">prophet::Heap&lt; Node *, std::vector&lt; Node * &gt;, struct heap_compare, struct heap_pos &gt;::heap_up()</a>.</p>

</div>
</div><p>
<a class="anchor" name="ed8c35bf71920dcca199adc8f869a8eb"></a><!-- doxytag: member="prophet::Heap::top" ref="ed8c35bf71920dcca199adc8f869a8eb" args="() const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename UnitType, typename Sequence = std::vector&lt;UnitType&gt;, typename Compare = std::less&lt;typename Sequence::value_type&gt;, typename UpdateElem = DoNothing&lt;UnitType,typename Sequence::size_type&gt;&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classprophet_1_1Heap.html#5a63f2790438bad51ba92215577dc14a">const_reference</a> <a class="el" href="classprophet_1_1Heap.html">prophet::Heap</a>&lt; UnitType, Sequence, Compare, UpdateElem &gt;::top           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return read-only reference to top of heap. 
<p>

<p>Definition at line <a class="el" href="Util_8h-source.html#l00139">139</a> of file <a class="el" href="Util_8h-source.html">Util.h</a>.</p>

<p>Referenced by <a class="el" href="Table_8cc-source.html#l00460">prophet::Table::enforce_quota()</a>, <a class="el" href="Util_8h-source.html#l00180">prophet::Heap&lt; Node *, std::vector&lt; Node * &gt;, struct heap_compare, struct heap_pos &gt;::heap_down()</a>, and <a class="el" href="Table_8cc-source.html#l00320">prophet::Table::truncate()</a>.</p>

</div>
</div><p>
<a class="anchor" name="af6153f28572f09a0add721db23f97ba"></a><!-- doxytag: member="prophet::Heap::update_elements" ref="af6153f28572f09a0add721db23f97ba" args="()" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename UnitType, typename Sequence = std::vector&lt;UnitType&gt;, typename Compare = std::less&lt;typename Sequence::value_type&gt;, typename UpdateElem = DoNothing&lt;UnitType,typename Sequence::size_type&gt;&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classprophet_1_1Heap.html">prophet::Heap</a>&lt; UnitType, Sequence, Compare, UpdateElem &gt;::update_elements           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Pass over entire sequence to ensure each element's heap pointer. 
<p>

<p>Definition at line <a class="el" href="Util_8h-source.html#l00120">120</a> of file <a class="el" href="Util_8h-source.html">Util.h</a>.</p>

<p>Referenced by <a class="el" href="Util_8h-source.html#l00093">prophet::Heap&lt; Node *, std::vector&lt; Node * &gt;, struct heap_compare, struct heap_pos &gt;::set_compare()</a>.</p>

</div>
</div><p>
<hr><h2>Member Data Documentation</h2>
<a class="anchor" name="eb0d3cc41b7524e9c1cdb96b0ed0c4ac"></a><!-- doxytag: member="prophet::Heap::comp_" ref="eb0d3cc41b7524e9c1cdb96b0ed0c4ac" args="" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename UnitType, typename Sequence = std::vector&lt;UnitType&gt;, typename Compare = std::less&lt;typename Sequence::value_type&gt;, typename UpdateElem = DoNothing&lt;UnitType,typename Sequence::size_type&gt;&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">Compare* <a class="el" href="classprophet_1_1Heap.html">prophet::Heap</a>&lt; UnitType, Sequence, Compare, UpdateElem &gt;::<a class="el" href="classprophet_1_1Heap.html#eb0d3cc41b7524e9c1cdb96b0ed0c4ac">comp_</a><code> [protected]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>Definition at line <a class="el" href="Util_8h-source.html#l00266">266</a> of file <a class="el" href="Util_8h-source.html">Util.h</a>.</p>

<p>Referenced by <a class="el" href="Util_8h-source.html#l00087">prophet::Heap&lt; Node *, std::vector&lt; Node * &gt;, struct heap_compare, struct heap_pos &gt;::compare()</a>, <a class="el" href="Util_8h-source.html#l00065">prophet::Heap&lt; Node *, std::vector&lt; Node * &gt;, struct heap_compare, struct heap_pos &gt;::Heap()</a>, <a class="el" href="Util_8h-source.html#l00180">prophet::Heap&lt; Node *, std::vector&lt; Node * &gt;, struct heap_compare, struct heap_pos &gt;::heap_down()</a>, <a class="el" href="Util_8h-source.html#l00214">prophet::Heap&lt; Node *, std::vector&lt; Node * &gt;, struct heap_compare, struct heap_pos &gt;::heap_up()</a>, <a class="el" href="Util_8h-source.html#l00093">prophet::Heap&lt; Node *, std::vector&lt; Node * &gt;, struct heap_compare, struct heap_pos &gt;::set_compare()</a>, and <a class="el" href="Util_8h-source.html#l00081">prophet::Heap&lt; Node *, std::vector&lt; Node * &gt;, struct heap_compare, struct heap_pos &gt;::~Heap()</a>.</p>

</div>
</div><p>
<a class="anchor" name="305b5e34923105dd374002f8af690b3e"></a><!-- doxytag: member="prophet::Heap::seq_" ref="305b5e34923105dd374002f8af690b3e" args="" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename UnitType, typename Sequence = std::vector&lt;UnitType&gt;, typename Compare = std::less&lt;typename Sequence::value_type&gt;, typename UpdateElem = DoNothing&lt;UnitType,typename Sequence::size_type&gt;&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">Sequence <a class="el" href="classprophet_1_1Heap.html">prophet::Heap</a>&lt; UnitType, Sequence, Compare, UpdateElem &gt;::<a class="el" href="classprophet_1_1Heap.html#305b5e34923105dd374002f8af690b3e">seq_</a><code> [protected]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>Definition at line <a class="el" href="Util_8h-source.html#l00265">265</a> of file <a class="el" href="Util_8h-source.html">Util.h</a>.</p>

<p>Referenced by <a class="el" href="Util_8h-source.html#l00145">prophet::Heap&lt; Node *, std::vector&lt; Node * &gt;, struct heap_compare, struct heap_pos &gt;::add()</a>, <a class="el" href="Util_8h-source.html#l00129">prophet::Heap&lt; Node *, std::vector&lt; Node * &gt;, struct heap_compare, struct heap_pos &gt;::empty()</a>, <a class="el" href="Util_8h-source.html#l00180">prophet::Heap&lt; Node *, std::vector&lt; Node * &gt;, struct heap_compare, struct heap_pos &gt;::heap_down()</a>, <a class="el" href="Util_8h-source.html#l00214">prophet::Heap&lt; Node *, std::vector&lt; Node * &gt;, struct heap_compare, struct heap_pos &gt;::heap_up()</a>, <a class="el" href="Util_8h-source.html#l00159">prophet::Heap&lt; Node *, std::vector&lt; Node * &gt;, struct heap_compare, struct heap_pos &gt;::remove()</a>, <a class="el" href="Util_8h-source.html#l00172">prophet::Heap&lt; Node *, std::vector&lt; Node * &gt;, struct heap_compare, struct heap_pos &gt;::sequence()</a>, <a class="el" href="Util_8h-source.html#l00134">prophet::Heap&lt; Node *, std::vector&lt; Node * &gt;, struct heap_compare, struct heap_pos &gt;::size()</a>, <a class="el" href="Util_8h-source.html#l00257">prophet::Heap&lt; Node *, std::vector&lt; Node * &gt;, struct heap_compare, struct heap_pos &gt;::swap()</a>, <a class="el" href="Util_8h-source.html#l00139">prophet::Heap&lt; Node *, std::vector&lt; Node * &gt;, struct heap_compare, struct heap_pos &gt;::top()</a>, and <a class="el" href="Util_8h-source.html#l00120">prophet::Heap&lt; Node *, std::vector&lt; Node * &gt;, struct heap_compare, struct heap_pos &gt;::update_elements()</a>.</p>

</div>
</div><p>
<a class="anchor" name="cf9a097600f517dcc5fd3fd9858e16ae"></a><!-- doxytag: member="prophet::Heap::upd_" ref="cf9a097600f517dcc5fd3fd9858e16ae" args="" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename UnitType, typename Sequence = std::vector&lt;UnitType&gt;, typename Compare = std::less&lt;typename Sequence::value_type&gt;, typename UpdateElem = DoNothing&lt;UnitType,typename Sequence::size_type&gt;&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">UpdateElem <a class="el" href="classprophet_1_1Heap.html">prophet::Heap</a>&lt; UnitType, Sequence, Compare, UpdateElem &gt;::<a class="el" href="classprophet_1_1Heap.html#cf9a097600f517dcc5fd3fd9858e16ae">upd_</a><code> [protected]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>Definition at line <a class="el" href="Util_8h-source.html#l00267">267</a> of file <a class="el" href="Util_8h-source.html">Util.h</a>.</p>

<p>Referenced by <a class="el" href="Util_8h-source.html#l00145">prophet::Heap&lt; Node *, std::vector&lt; Node * &gt;, struct heap_compare, struct heap_pos &gt;::add()</a>, <a class="el" href="Util_8h-source.html#l00159">prophet::Heap&lt; Node *, std::vector&lt; Node * &gt;, struct heap_compare, struct heap_pos &gt;::remove()</a>, <a class="el" href="Util_8h-source.html#l00257">prophet::Heap&lt; Node *, std::vector&lt; Node * &gt;, struct heap_compare, struct heap_pos &gt;::swap()</a>, and <a class="el" href="Util_8h-source.html#l00120">prophet::Heap&lt; Node *, std::vector&lt; Node * &gt;, struct heap_compare, struct heap_pos &gt;::update_elements()</a>.</p>

</div>
</div><p>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="Util_8h-source.html">Util.h</a></ul>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jan 30 09:27:06 2009 for DTN Reference Implementation by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
</body>
</html>