<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/> <meta name="generator" content="Doxygen 1.8.15"/> <meta name="viewport" content="width=device-width, initial-scale=1"/> <title>libstdc++: __gnu_parallel::_LoserTreeBase< _Tp, _Compare > Class Template Reference</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="dynsections.js"></script> <link href="navtree.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="resize.js"></script> <script type="text/javascript" src="navtreedata.js"></script> <script type="text/javascript" src="navtree.js"></script> <script type="text/javascript"> /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ $(document).ready(initResizable); /* @license-end */</script> <link href="doxygen.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="top"><!-- do not remove this div, it is closed by doxygen! --> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td id="projectalign" style="padding-left: 0.5em;"> <div id="projectname">libstdc++ </div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.15 --> </div><!-- top --> <div id="side-nav" class="ui-resizable side-nav-resizable"> <div id="nav-tree"> <div id="nav-tree-contents"> <div id="nav-sync" class="sync"></div> </div> </div> <div id="splitbar" style="-moz-user-select:none;" class="ui-resizable-handle"> </div> </div> <script type="text/javascript"> /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ $(document).ready(function(){initNavTree('a09440.html','');}); /* @license-end */ </script> <div id="doc-content"> <div class="header"> <div class="summary"> <a href="#nested-classes">Classes</a> | <a href="#pub-methods">Public Member Functions</a> | <a href="#pro-attribs">Protected Attributes</a> | <a href="a09437.html">List of all members</a> </div> <div class="headertitle"> <div class="title">__gnu_parallel::_LoserTreeBase< _Tp, _Compare > Class Template Reference</div> </div> </div><!--header--> <div class="contents"> <div class="dynheader"> Inheritance diagram for __gnu_parallel::_LoserTreeBase< _Tp, _Compare >:</div> <div class="dyncontent"> <div class="center"><iframe scrolling="no" frameborder="0" src="a09439.svg" width="408" height="112"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe> </div> <center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div> <table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a> Classes</h2></td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="a09444.html">_Loser</a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a> Public Member Functions</h2></td></tr> <tr class="memitem:acae75ac10b89e74fcabfd598399280e8"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a09440.html#acae75ac10b89e74fcabfd598399280e8">_LoserTreeBase</a> (unsigned int __k, _Compare __comp)</td></tr> <tr class="separator:acae75ac10b89e74fcabfd598399280e8"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aab2d1be8f756025bc63f64218c88a559"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a09440.html#aab2d1be8f756025bc63f64218c88a559">~_LoserTreeBase</a> ()</td></tr> <tr class="separator:aab2d1be8f756025bc63f64218c88a559"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ae03e177c456afb3093d6aed490de7b70"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="a09440.html#ae03e177c456afb3093d6aed490de7b70">__get_min_source</a> ()</td></tr> <tr class="separator:ae03e177c456afb3093d6aed490de7b70"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ae40e9ed966e6afbbdcfca290b3992130"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a09440.html#ae40e9ed966e6afbbdcfca290b3992130">__insert_start</a> (const _Tp &__key, int __source, bool __sup)</td></tr> <tr class="separator:ae40e9ed966e6afbbdcfca290b3992130"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a> Protected Attributes</h2></td></tr> <tr class="memitem:a7bbc4162a7a7aad013038e076f516512"><td class="memItemLeft" align="right" valign="top">_Compare </td><td class="memItemRight" valign="bottom"><a class="el" href="a09440.html#a7bbc4162a7a7aad013038e076f516512">_M_comp</a></td></tr> <tr class="separator:a7bbc4162a7a7aad013038e076f516512"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:afd84c329905b58ec69ade3066f138124"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a09440.html#afd84c329905b58ec69ade3066f138124">_M_first_insert</a></td></tr> <tr class="separator:afd84c329905b58ec69ade3066f138124"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ad7f21779f27e16fc27a04ec4438c28b3"><td class="memItemLeft" align="right" valign="top"><a id="ad7f21779f27e16fc27a04ec4438c28b3"></a> unsigned int </td><td class="memItemRight" valign="bottom"><b>_M_ik</b></td></tr> <tr class="separator:ad7f21779f27e16fc27a04ec4438c28b3"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aa085749fcf072a742535d6d6d5f222e5"><td class="memItemLeft" align="right" valign="top"><a id="aa085749fcf072a742535d6d6d5f222e5"></a> unsigned int </td><td class="memItemRight" valign="bottom"><b>_M_k</b></td></tr> <tr class="separator:aa085749fcf072a742535d6d6d5f222e5"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a75bba27325ffeb227186440dfc836fb9"><td class="memItemLeft" align="right" valign="top">unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="a09440.html#a75bba27325ffeb227186440dfc836fb9">_M_log_k</a></td></tr> <tr class="separator:a75bba27325ffeb227186440dfc836fb9"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a018ad8a7b6c35a776bce15ce4c1d7974"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a09444.html">_Loser</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a09440.html#a018ad8a7b6c35a776bce15ce4c1d7974">_M_losers</a></td></tr> <tr class="separator:a018ad8a7b6c35a776bce15ce4c1d7974"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a6057ed904b22e44b9e63cece4bbb5d2f"><td class="memItemLeft" align="right" valign="top"><a id="a6057ed904b22e44b9e63cece4bbb5d2f"></a> unsigned int </td><td class="memItemRight" valign="bottom"><b>_M_offset</b></td></tr> <tr class="separator:a6057ed904b22e44b9e63cece4bbb5d2f"><td class="memSeparator" colspan="2"> </td></tr> </table> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <div class="textblock"><h3>template<typename _Tp, typename _Compare><br /> class __gnu_parallel::_LoserTreeBase< _Tp, _Compare ></h3> <p>Guarded loser/tournament tree. </p> <p>The smallest element is at the top.</p> <p>Guarding is done explicitly through one flag _M_sup per element, inf is not needed due to a better initialization routine. This is a well-performing variant.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">_Tp</td><td>the element type </td></tr> <tr><td class="paramname">_Compare</td><td>the comparator to use, defaults to std::less<_Tp> </td></tr> </table> </dd> </dl> <p class="definition">Definition at line <a class="el" href="a00905_source.html#l00055">55</a> of file <a class="el" href="a00905_source.html">losertree.h</a>.</p> </div><h2 class="groupheader">Constructor & Destructor Documentation</h2> <a id="acae75ac10b89e74fcabfd598399280e8"></a> <h2 class="memtitle"><span class="permalink"><a href="#acae75ac10b89e74fcabfd598399280e8">◆ </a></span>_LoserTreeBase()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _Tp , typename _Compare > </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a09440.html">__gnu_parallel::_LoserTreeBase</a>< _Tp, _Compare >::<a class="el" href="a09440.html">_LoserTreeBase</a> </td> <td>(</td> <td class="paramtype">unsigned int </td> <td class="paramname"><em>__k</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">_Compare </td> <td class="paramname"><em>__comp</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>The constructor. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">__k</td><td>The number of sequences to merge. </td></tr> <tr><td class="paramname">__comp</td><td>The comparator to use. </td></tr> </table> </dd> </dl> <p class="definition">Definition at line <a class="el" href="a00905_source.html#l00094">94</a> of file <a class="el" href="a00905_source.html">losertree.h</a>.</p> <p class="reference">References <a class="el" href="a16488_source.html#l00102">__gnu_parallel::__rd_log2()</a>, <a class="el" href="a00905_source.html#l00085">__gnu_parallel::_LoserTreeBase< _Tp, _Compare >::_M_first_insert</a>, <a class="el" href="a00905_source.html#l00072">__gnu_parallel::_LoserTreeBase< _Tp, _Compare >::_M_log_k</a>, and <a class="el" href="a00905_source.html#l00075">__gnu_parallel::_LoserTreeBase< _Tp, _Compare >::_M_losers</a>.</p> </div> </div> <a id="aab2d1be8f756025bc63f64218c88a559"></a> <h2 class="memtitle"><span class="permalink"><a href="#aab2d1be8f756025bc63f64218c88a559">◆ </a></span>~_LoserTreeBase()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _Tp , typename _Compare > </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a09440.html">__gnu_parallel::_LoserTreeBase</a>< _Tp, _Compare >::~<a class="el" href="a09440.html">_LoserTreeBase</a> </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>The destructor. </p> <p class="definition">Definition at line <a class="el" href="a00905_source.html#l00118">118</a> of file <a class="el" href="a00905_source.html">losertree.h</a>.</p> <p class="reference">References <a class="el" href="a00905_source.html#l00075">__gnu_parallel::_LoserTreeBase< _Tp, _Compare >::_M_losers</a>.</p> </div> </div> <h2 class="groupheader">Member Function Documentation</h2> <a id="ae03e177c456afb3093d6aed490de7b70"></a> <h2 class="memtitle"><span class="permalink"><a href="#ae03e177c456afb3093d6aed490de7b70">◆ </a></span>__get_min_source()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _Tp , typename _Compare > </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">int <a class="el" href="a09440.html">__gnu_parallel::_LoserTreeBase</a>< _Tp, _Compare >::__get_min_source </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <dl class="section return"><dt>Returns</dt><dd>the index of the sequence with the smallest element. </dd></dl> <p class="definition">Definition at line <a class="el" href="a00905_source.html#l00155">155</a> of file <a class="el" href="a00905_source.html">losertree.h</a>.</p> <p class="reference">References <a class="el" href="a00905_source.html#l00075">__gnu_parallel::_LoserTreeBase< _Tp, _Compare >::_M_losers</a>, and <a class="el" href="a00905_source.html#l00064">__gnu_parallel::_LoserTreeBase< _Tp, _Compare >::_Loser::_M_source</a>.</p> </div> </div> <a id="ae40e9ed966e6afbbdcfca290b3992130"></a> <h2 class="memtitle"><span class="permalink"><a href="#ae40e9ed966e6afbbdcfca290b3992130">◆ </a></span>__insert_start()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _Tp , typename _Compare > </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void <a class="el" href="a09440.html">__gnu_parallel::_LoserTreeBase</a>< _Tp, _Compare >::__insert_start </td> <td>(</td> <td class="paramtype">const _Tp & </td> <td class="paramname"><em>__key</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>__source</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"><em>__sup</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Initializes the sequence "_M_source" with the element "__key". </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">__key</td><td>the element to insert </td></tr> <tr><td class="paramname">__source</td><td>__index of the __source __sequence </td></tr> <tr><td class="paramname">__sup</td><td>flag that determines whether the value to insert is an explicit __supremum. </td></tr> </table> </dd> </dl> <p class="definition">Definition at line <a class="el" href="a00905_source.html#l00134">134</a> of file <a class="el" href="a00905_source.html">losertree.h</a>.</p> <p class="reference">References <a class="el" href="a00905_source.html#l00085">__gnu_parallel::_LoserTreeBase< _Tp, _Compare >::_M_first_insert</a>, <a class="el" href="a00905_source.html#l00066">__gnu_parallel::_LoserTreeBase< _Tp, _Compare >::_Loser::_M_key</a>, <a class="el" href="a00905_source.html#l00075">__gnu_parallel::_LoserTreeBase< _Tp, _Compare >::_M_losers</a>, <a class="el" href="a00905_source.html#l00064">__gnu_parallel::_LoserTreeBase< _Tp, _Compare >::_Loser::_M_source</a>, and <a class="el" href="a00905_source.html#l00062">__gnu_parallel::_LoserTreeBase< _Tp, _Compare >::_Loser::_M_sup</a>.</p> </div> </div> <h2 class="groupheader">Member Data Documentation</h2> <a id="a7bbc4162a7a7aad013038e076f516512"></a> <h2 class="memtitle"><span class="permalink"><a href="#a7bbc4162a7a7aad013038e076f516512">◆ </a></span>_M_comp</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _Tp , typename _Compare > </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">_Compare <a class="el" href="a09440.html">__gnu_parallel::_LoserTreeBase</a>< _Tp, _Compare >::_M_comp</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">protected</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>_Compare to use. </p> <p class="definition">Definition at line <a class="el" href="a00905_source.html#l00078">78</a> of file <a class="el" href="a00905_source.html">losertree.h</a>.</p> </div> </div> <a id="afd84c329905b58ec69ade3066f138124"></a> <h2 class="memtitle"><span class="permalink"><a href="#afd84c329905b58ec69ade3066f138124">◆ </a></span>_M_first_insert</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _Tp , typename _Compare > </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">bool <a class="el" href="a09440.html">__gnu_parallel::_LoserTreeBase</a>< _Tp, _Compare >::_M_first_insert</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">protected</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>State flag that determines whether the _LoserTree is empty. </p> <p>Only used for building the _LoserTree. </p> <p class="definition">Definition at line <a class="el" href="a00905_source.html#l00085">85</a> of file <a class="el" href="a00905_source.html">losertree.h</a>.</p> <p class="reference">Referenced by <a class="el" href="a00905_source.html#l00134">__gnu_parallel::_LoserTreeBase< _Tp, _Compare >::__insert_start()</a>, and <a class="el" href="a00905_source.html#l00094">__gnu_parallel::_LoserTreeBase< _Tp, _Compare >::_LoserTreeBase()</a>.</p> </div> </div> <a id="a75bba27325ffeb227186440dfc836fb9"></a> <h2 class="memtitle"><span class="permalink"><a href="#a75bba27325ffeb227186440dfc836fb9">◆ </a></span>_M_log_k</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _Tp , typename _Compare > </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">unsigned int <a class="el" href="a09440.html">__gnu_parallel::_LoserTreeBase</a>< _Tp, _Compare >::_M_log_k</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">protected</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>log_2{_M_k} </p> <p class="definition">Definition at line <a class="el" href="a00905_source.html#l00072">72</a> of file <a class="el" href="a00905_source.html">losertree.h</a>.</p> <p class="reference">Referenced by <a class="el" href="a00905_source.html#l00094">__gnu_parallel::_LoserTreeBase< _Tp, _Compare >::_LoserTreeBase()</a>.</p> </div> </div> <a id="a018ad8a7b6c35a776bce15ce4c1d7974"></a> <h2 class="memtitle"><span class="permalink"><a href="#a018ad8a7b6c35a776bce15ce4c1d7974">◆ </a></span>_M_losers</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _Tp , typename _Compare > </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a09444.html">_Loser</a>* <a class="el" href="a09440.html">__gnu_parallel::_LoserTreeBase</a>< _Tp, _Compare >::_M_losers</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">protected</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>_LoserTree __elements. </p> <p class="definition">Definition at line <a class="el" href="a00905_source.html#l00075">75</a> of file <a class="el" href="a00905_source.html">losertree.h</a>.</p> <p class="reference">Referenced by <a class="el" href="a00905_source.html#l00155">__gnu_parallel::_LoserTreeBase< _Tp, _Compare >::__get_min_source()</a>, <a class="el" href="a00905_source.html#l00134">__gnu_parallel::_LoserTreeBase< _Tp, _Compare >::__insert_start()</a>, <a class="el" href="a00905_source.html#l00094">__gnu_parallel::_LoserTreeBase< _Tp, _Compare >::_LoserTreeBase()</a>, and <a class="el" href="a00905_source.html#l00118">__gnu_parallel::_LoserTreeBase< _Tp, _Compare >::~_LoserTreeBase()</a>.</p> </div> </div> <hr/>The documentation for this class was generated from the following file:<ul> <li><a class="el" href="a00905_source.html">losertree.h</a></li> </ul> </div><!-- contents --> </div><!-- doc-content --> <!-- start footer part --> <div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> <ul> <li class="navelem"><a class="el" href="a01572.html">__gnu_parallel</a></li><li class="navelem"><a class="el" href="a09440.html">_LoserTreeBase</a></li> <li class="footer">Generated by <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li> </ul> </div> </body> </html>