class_hash_table.html 68 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
  5. <meta http-equiv="X-UA-Compatible" content="IE=11"/>
  6. <meta name="generator" content="Doxygen 1.12.0"/>
  7. <meta name="viewport" content="width=device-width, initial-scale=1"/>
  8. <title>Jolt Physics: HashTable&lt; Key, KeyValue, HashTableDetail, Hash, KeyEqual &gt; Class Template Reference</title>
  9. <link href="tabs.css" rel="stylesheet" type="text/css"/>
  10. <script type="text/javascript" src="jquery.js"></script>
  11. <script type="text/javascript" src="dynsections.js"></script>
  12. <script type="text/javascript" src="clipboard.js"></script>
  13. <link href="navtree.css" rel="stylesheet" type="text/css"/>
  14. <script type="text/javascript" src="navtreedata.js"></script>
  15. <script type="text/javascript" src="navtree.js"></script>
  16. <script type="text/javascript" src="resize.js"></script>
  17. <script type="text/javascript" src="cookie.js"></script>
  18. <link href="search/search.css" rel="stylesheet" type="text/css"/>
  19. <script type="text/javascript" src="search/searchdata.js"></script>
  20. <script type="text/javascript" src="search/search.js"></script>
  21. <script type="text/x-mathjax-config">
  22. MathJax.Hub.Config({
  23. extensions: ["tex2jax.js"],
  24. jax: ["input/TeX","output/HTML-CSS"],
  25. });
  26. </script>
  27. <script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js"></script>
  28. <link href="doxygen.css" rel="stylesheet" type="text/css" />
  29. </head>
  30. <body>
  31. <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
  32. <div id="titlearea">
  33. <table cellspacing="0" cellpadding="0">
  34. <tbody>
  35. <tr id="projectrow">
  36. <td id="projectlogo"><img alt="Logo" src="LogoSmall.png"/></td>
  37. <td id="projectalign">
  38. <div id="projectname">Jolt Physics
  39. </div>
  40. <div id="projectbrief">A multi core friendly Game Physics Engine</div>
  41. </td>
  42. </tr>
  43. </tbody>
  44. </table>
  45. </div>
  46. <!-- end header part -->
  47. <!-- Generated by Doxygen 1.12.0 -->
  48. <script type="text/javascript">
  49. /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
  50. var searchBox = new SearchBox("searchBox", "search/",'.html');
  51. /* @license-end */
  52. </script>
  53. <script type="text/javascript">
  54. /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
  55. $(function() { codefold.init(0); });
  56. /* @license-end */
  57. </script>
  58. <script type="text/javascript" src="menudata.js"></script>
  59. <script type="text/javascript" src="menu.js"></script>
  60. <script type="text/javascript">
  61. /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
  62. $(function() {
  63. initMenu('',true,false,'search.php','Search',true);
  64. $(function() { init_search(); });
  65. });
  66. /* @license-end */
  67. </script>
  68. <div id="main-nav"></div>
  69. </div><!-- top -->
  70. <div id="side-nav" class="ui-resizable side-nav-resizable">
  71. <div id="nav-tree">
  72. <div id="nav-tree-contents">
  73. <div id="nav-sync" class="sync"></div>
  74. </div>
  75. </div>
  76. <div id="splitbar" style="-moz-user-select:none;"
  77. class="ui-resizable-handle">
  78. </div>
  79. </div>
  80. <script type="text/javascript">
  81. /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
  82. $(function(){initNavTree('class_hash_table.html',''); initResizable(true); });
  83. /* @license-end */
  84. </script>
  85. <div id="doc-content">
  86. <!-- window showing the filter options -->
  87. <div id="MSearchSelectWindow"
  88. onmouseover="return searchBox.OnSearchSelectShow()"
  89. onmouseout="return searchBox.OnSearchSelectHide()"
  90. onkeydown="return searchBox.OnSearchSelectKey(event)">
  91. </div>
  92. <!-- iframe showing the search results (closed by default) -->
  93. <div id="MSearchResultsWindow">
  94. <div id="MSearchResults">
  95. <div class="SRPage">
  96. <div id="SRIndex">
  97. <div id="SRResults"></div>
  98. <div class="SRStatus" id="Loading">Loading...</div>
  99. <div class="SRStatus" id="Searching">Searching...</div>
  100. <div class="SRStatus" id="NoMatches">No Matches</div>
  101. </div>
  102. </div>
  103. </div>
  104. </div>
  105. <div class="header">
  106. <div class="summary">
  107. <a href="#nested-classes">Classes</a> &#124;
  108. <a href="#pub-types">Public Types</a> &#124;
  109. <a href="#pub-methods">Public Member Functions</a> &#124;
  110. <a href="#pro-methods">Protected Member Functions</a> &#124;
  111. <a href="class_hash_table-members.html">List of all members</a> </div>
  112. <div class="headertitle"><div class="title">HashTable&lt; Key, KeyValue, HashTableDetail, Hash, KeyEqual &gt; Class Template Reference</div></div>
  113. </div><!--header-->
  114. <div class="contents">
  115. <p><code>#include &lt;<a class="el" href="_hash_table_8h_source.html">HashTable.h</a>&gt;</code></p>
  116. <div class="dynheader">
  117. Inheritance diagram for HashTable&lt; Key, KeyValue, HashTableDetail, Hash, KeyEqual &gt;:</div>
  118. <div class="dyncontent">
  119. <div class="center">
  120. <img src="class_hash_table.png" usemap="#HashTable_3C_20Key_2C_20KeyValue_2C_20HashTableDetail_2C_20Hash_2C_20KeyEqual_20_3E_map" alt=""/>
  121. <map id="HashTable_3C_20Key_2C_20KeyValue_2C_20HashTableDetail_2C_20Hash_2C_20KeyEqual_20_3E_map" name="HashTable_3C_20Key_2C_20KeyValue_2C_20HashTableDetail_2C_20Hash_2C_20KeyEqual_20_3E_map">
  122. <area href="class_unordered_map.html" alt="UnorderedMap&lt; ContactKey, ListenerContactValue &gt;" shape="rect" coords="485,56,960,80"/>
  123. <area href="class_unordered_map.html" alt="UnorderedMap&lt; SwingConeLimits, GeometryRef, SwingConeLimitsHasher &gt;" shape="rect" coords="485,112,960,136"/>
  124. <area href="class_unordered_map.html" alt="UnorderedMap&lt; SwingPyramidLimits, GeometryRef, SwingPyramidLimitsHasher &gt;" shape="rect" coords="485,168,960,192"/>
  125. <area href="class_unordered_map.html" alt="UnorderedMap&lt; float, GeometryRef &gt;" shape="rect" coords="485,224,960,248"/>
  126. <area href="class_unordered_map.html" alt="UnorderedMap&lt; TaperedCylinder, GeometryRef, TaperedCylinderHasher &gt;" shape="rect" coords="485,280,960,304"/>
  127. <area href="class_unordered_map.html" alt="UnorderedMap&lt; uint32, Ref &gt;" shape="rect" coords="485,336,960,360"/>
  128. <area href="class_unordered_map.html" alt="UnorderedMap&lt; GeometryRef, uint32 &gt;" shape="rect" coords="485,392,960,416"/>
  129. <area href="class_unordered_map.html" alt="UnorderedMap&lt; string_view, const RTTI * &gt;" shape="rect" coords="485,448,960,472"/>
  130. <area href="class_unordered_map.html" alt="UnorderedMap&lt; uint32, const RTTI * &gt;" shape="rect" coords="485,504,960,528"/>
  131. <area href="class_unordered_map.html" alt="UnorderedMap&lt; uint32, String &gt;" shape="rect" coords="485,560,960,584"/>
  132. <area href="class_unordered_map.html" alt="UnorderedMap&lt; String, uint32 &gt;" shape="rect" coords="485,616,960,640"/>
  133. <area href="class_unordered_map.html" alt="UnorderedMap&lt; String, ClassDescription &gt;" shape="rect" coords="485,672,960,696"/>
  134. <area href="class_unordered_map.html" alt="UnorderedMap&lt; Identifier, ObjectInfo &gt;" shape="rect" coords="485,728,960,752"/>
  135. <area href="class_unordered_map.html" alt="UnorderedMap&lt; const void *, ObjectInfo &gt;" shape="rect" coords="485,784,960,808"/>
  136. <area href="class_unordered_set.html" alt="UnorderedSet&lt; const RTTI * &gt;" shape="rect" coords="485,840,960,864"/>
  137. <area href="class_unordered_map.html" alt="UnorderedMap&lt; Key, Value, Hash, KeyEqual &gt;" shape="rect" coords="485,896,960,920"/>
  138. <area href="class_unordered_set.html" alt="UnorderedSet&lt; Key, Hash, KeyEqual &gt;" shape="rect" coords="485,952,960,976"/>
  139. </map>
  140. </div></div>
  141. <table class="memberdecls">
  142. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
  143. Classes</h2></td></tr>
  144. <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_hash_table_1_1const__iterator.html">const_iterator</a></td></tr>
  145. <tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Const iterator. <a href="class_hash_table_1_1const__iterator.html#details">More...</a><br /></td></tr>
  146. <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
  147. <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_hash_table_1_1iterator.html">iterator</a></td></tr>
  148. <tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Non-const iterator. <a href="class_hash_table_1_1iterator.html#details">More...</a><br /></td></tr>
  149. <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
  150. </table><table class="memberdecls">
  151. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-types" name="pub-types"></a>
  152. Public Types</h2></td></tr>
  153. <tr class="memitem:a9e0354e8e22ff27d0548a4d5b62b30ed" id="r_a9e0354e8e22ff27d0548a4d5b62b30ed"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a9e0354e8e22ff27d0548a4d5b62b30ed">value_type</a> = KeyValue</td></tr>
  154. <tr class="memdesc:a9e0354e8e22ff27d0548a4d5b62b30ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Properties. <br /></td></tr>
  155. <tr class="separator:a9e0354e8e22ff27d0548a4d5b62b30ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
  156. <tr class="memitem:aa6e132946e0d852c08166229712780b5" id="r_aa6e132946e0d852c08166229712780b5"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aa6e132946e0d852c08166229712780b5">size_type</a> = <a class="el" href="_core_8h.html#a8f95e75e58492e87412191fabadd8ca8">uint32</a></td></tr>
  157. <tr class="separator:aa6e132946e0d852c08166229712780b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
  158. <tr class="memitem:a2dab10b4f1528f7c3e57ca31813e085e" id="r_a2dab10b4f1528f7c3e57ca31813e085e"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a2dab10b4f1528f7c3e57ca31813e085e">difference_type</a> = ptrdiff_t</td></tr>
  159. <tr class="separator:a2dab10b4f1528f7c3e57ca31813e085e"><td class="memSeparator" colspan="2">&#160;</td></tr>
  160. </table><table class="memberdecls">
  161. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
  162. Public Member Functions</h2></td></tr>
  163. <tr class="memitem:a5666542a5c019d4e136ad904420d9c12" id="r_a5666542a5c019d4e136ad904420d9c12"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a5666542a5c019d4e136ad904420d9c12">HashTable</a> ()=default</td></tr>
  164. <tr class="memdesc:a5666542a5c019d4e136ad904420d9c12"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor. <br /></td></tr>
  165. <tr class="separator:a5666542a5c019d4e136ad904420d9c12"><td class="memSeparator" colspan="2">&#160;</td></tr>
  166. <tr class="memitem:a5229f49c49334a4809200e423f96f9cb" id="r_a5229f49c49334a4809200e423f96f9cb"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a5229f49c49334a4809200e423f96f9cb">HashTable</a> (const <a class="el" href="class_hash_table.html">HashTable</a> &amp;inRHS)</td></tr>
  167. <tr class="memdesc:a5229f49c49334a4809200e423f96f9cb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor. <br /></td></tr>
  168. <tr class="separator:a5229f49c49334a4809200e423f96f9cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
  169. <tr class="memitem:a84b110219a8be1df516230e797fda034" id="r_a84b110219a8be1df516230e797fda034"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a84b110219a8be1df516230e797fda034">HashTable</a> (<a class="el" href="class_hash_table.html">HashTable</a> &amp;&amp;ioRHS) noexcept</td></tr>
  170. <tr class="memdesc:a84b110219a8be1df516230e797fda034"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move constructor. <br /></td></tr>
  171. <tr class="separator:a84b110219a8be1df516230e797fda034"><td class="memSeparator" colspan="2">&#160;</td></tr>
  172. <tr class="memitem:affd3cd3786f20a0bff6485f422b040f2" id="r_affd3cd3786f20a0bff6485f422b040f2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_hash_table.html">HashTable</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#affd3cd3786f20a0bff6485f422b040f2">operator=</a> (const <a class="el" href="class_hash_table.html">HashTable</a> &amp;inRHS)</td></tr>
  173. <tr class="memdesc:affd3cd3786f20a0bff6485f422b040f2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Assignment operator. <br /></td></tr>
  174. <tr class="separator:affd3cd3786f20a0bff6485f422b040f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
  175. <tr class="memitem:a2a21cffd58e0be50fd71c2cb445b8234" id="r_a2a21cffd58e0be50fd71c2cb445b8234"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_hash_table.html">HashTable</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a2a21cffd58e0be50fd71c2cb445b8234">operator=</a> (<a class="el" href="class_hash_table.html">HashTable</a> &amp;&amp;ioRHS) noexcept</td></tr>
  176. <tr class="memdesc:a2a21cffd58e0be50fd71c2cb445b8234"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move assignment operator. <br /></td></tr>
  177. <tr class="separator:a2a21cffd58e0be50fd71c2cb445b8234"><td class="memSeparator" colspan="2">&#160;</td></tr>
  178. <tr class="memitem:a636d476adbffc2eb46acf9f39d75760d" id="r_a636d476adbffc2eb46acf9f39d75760d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a636d476adbffc2eb46acf9f39d75760d">~HashTable</a> ()</td></tr>
  179. <tr class="memdesc:a636d476adbffc2eb46acf9f39d75760d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor. <br /></td></tr>
  180. <tr class="separator:a636d476adbffc2eb46acf9f39d75760d"><td class="memSeparator" colspan="2">&#160;</td></tr>
  181. <tr class="memitem:a288e464fb83b4fc31f8506ddff191d0b" id="r_a288e464fb83b4fc31f8506ddff191d0b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a288e464fb83b4fc31f8506ddff191d0b">reserve</a> (<a class="el" href="#aa6e132946e0d852c08166229712780b5">size_type</a> inMaxSize)</td></tr>
  182. <tr class="memdesc:a288e464fb83b4fc31f8506ddff191d0b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reserve memory for a certain number of elements. <br /></td></tr>
  183. <tr class="separator:a288e464fb83b4fc31f8506ddff191d0b"><td class="memSeparator" colspan="2">&#160;</td></tr>
  184. <tr class="memitem:a3c220708a3fb98e6b2b90762cc9fa07f" id="r_a3c220708a3fb98e6b2b90762cc9fa07f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a3c220708a3fb98e6b2b90762cc9fa07f">clear</a> ()</td></tr>
  185. <tr class="memdesc:a3c220708a3fb98e6b2b90762cc9fa07f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroy the entire hash table. <br /></td></tr>
  186. <tr class="separator:a3c220708a3fb98e6b2b90762cc9fa07f"><td class="memSeparator" colspan="2">&#160;</td></tr>
  187. <tr class="memitem:aa24e3348e2360519ed0debef8e3fe48b" id="r_aa24e3348e2360519ed0debef8e3fe48b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aa24e3348e2360519ed0debef8e3fe48b">ClearAndKeepMemory</a> ()</td></tr>
  188. <tr class="memdesc:aa24e3348e2360519ed0debef8e3fe48b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroy the entire hash table but keeps the memory allocated. <br /></td></tr>
  189. <tr class="separator:aa24e3348e2360519ed0debef8e3fe48b"><td class="memSeparator" colspan="2">&#160;</td></tr>
  190. <tr class="memitem:a64d9f63b5f1af4430e033691d985ba23" id="r_a64d9f63b5f1af4430e033691d985ba23"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_hash_table_1_1iterator.html">iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a64d9f63b5f1af4430e033691d985ba23">begin</a> ()</td></tr>
  191. <tr class="memdesc:a64d9f63b5f1af4430e033691d985ba23"><td class="mdescLeft">&#160;</td><td class="mdescRight">Iterator to first element. <br /></td></tr>
  192. <tr class="separator:a64d9f63b5f1af4430e033691d985ba23"><td class="memSeparator" colspan="2">&#160;</td></tr>
  193. <tr class="memitem:a3fd1542c6f9087d63323416fda0e08c5" id="r_a3fd1542c6f9087d63323416fda0e08c5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_hash_table_1_1iterator.html">iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a3fd1542c6f9087d63323416fda0e08c5">end</a> ()</td></tr>
  194. <tr class="memdesc:a3fd1542c6f9087d63323416fda0e08c5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Iterator to one beyond last element. <br /></td></tr>
  195. <tr class="separator:a3fd1542c6f9087d63323416fda0e08c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
  196. <tr class="memitem:adbce8b2de5b0269fd0cdc3dde8747e4d" id="r_adbce8b2de5b0269fd0cdc3dde8747e4d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_hash_table_1_1const__iterator.html">const_iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#adbce8b2de5b0269fd0cdc3dde8747e4d">begin</a> () const</td></tr>
  197. <tr class="memdesc:adbce8b2de5b0269fd0cdc3dde8747e4d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Iterator to first element. <br /></td></tr>
  198. <tr class="separator:adbce8b2de5b0269fd0cdc3dde8747e4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
  199. <tr class="memitem:a6c3e727ae8276d6da7aae9058d91713e" id="r_a6c3e727ae8276d6da7aae9058d91713e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_hash_table_1_1const__iterator.html">const_iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a6c3e727ae8276d6da7aae9058d91713e">end</a> () const</td></tr>
  200. <tr class="memdesc:a6c3e727ae8276d6da7aae9058d91713e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Iterator to one beyond last element. <br /></td></tr>
  201. <tr class="separator:a6c3e727ae8276d6da7aae9058d91713e"><td class="memSeparator" colspan="2">&#160;</td></tr>
  202. <tr class="memitem:a5ba58aac4668c7c8906d6f00a7181ee0" id="r_a5ba58aac4668c7c8906d6f00a7181ee0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_hash_table_1_1const__iterator.html">const_iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a5ba58aac4668c7c8906d6f00a7181ee0">cbegin</a> () const</td></tr>
  203. <tr class="memdesc:a5ba58aac4668c7c8906d6f00a7181ee0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Iterator to first element. <br /></td></tr>
  204. <tr class="separator:a5ba58aac4668c7c8906d6f00a7181ee0"><td class="memSeparator" colspan="2">&#160;</td></tr>
  205. <tr class="memitem:a7557480de53b5b5b940bb38d46f1a6d5" id="r_a7557480de53b5b5b940bb38d46f1a6d5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_hash_table_1_1const__iterator.html">const_iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a7557480de53b5b5b940bb38d46f1a6d5">cend</a> () const</td></tr>
  206. <tr class="memdesc:a7557480de53b5b5b940bb38d46f1a6d5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Iterator to one beyond last element. <br /></td></tr>
  207. <tr class="separator:a7557480de53b5b5b940bb38d46f1a6d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
  208. <tr class="memitem:ade9da55303c18d6212d28515447a9a5b" id="r_ade9da55303c18d6212d28515447a9a5b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="#aa6e132946e0d852c08166229712780b5">size_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ade9da55303c18d6212d28515447a9a5b">bucket_count</a> () const</td></tr>
  209. <tr class="memdesc:ade9da55303c18d6212d28515447a9a5b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of buckets in the table. <br /></td></tr>
  210. <tr class="separator:ade9da55303c18d6212d28515447a9a5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
  211. <tr class="memitem:a40281814275bc8c120e63a96e232cbd1" id="r_a40281814275bc8c120e63a96e232cbd1"><td class="memItemLeft" align="right" valign="top">constexpr <a class="el" href="#aa6e132946e0d852c08166229712780b5">size_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a40281814275bc8c120e63a96e232cbd1">max_bucket_count</a> () const</td></tr>
  212. <tr class="memdesc:a40281814275bc8c120e63a96e232cbd1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Max number of buckets that the table can have. <br /></td></tr>
  213. <tr class="separator:a40281814275bc8c120e63a96e232cbd1"><td class="memSeparator" colspan="2">&#160;</td></tr>
  214. <tr class="memitem:aa983a56c22510c95ade8ae48d4da781e" id="r_aa983a56c22510c95ade8ae48d4da781e"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aa983a56c22510c95ade8ae48d4da781e">empty</a> () const</td></tr>
  215. <tr class="memdesc:aa983a56c22510c95ade8ae48d4da781e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if there are no elements in the table. <br /></td></tr>
  216. <tr class="separator:aa983a56c22510c95ade8ae48d4da781e"><td class="memSeparator" colspan="2">&#160;</td></tr>
  217. <tr class="memitem:a54c7ec0bad84c09fc0e54160229aa42d" id="r_a54c7ec0bad84c09fc0e54160229aa42d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="#aa6e132946e0d852c08166229712780b5">size_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a54c7ec0bad84c09fc0e54160229aa42d">size</a> () const</td></tr>
  218. <tr class="memdesc:a54c7ec0bad84c09fc0e54160229aa42d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of elements in the table. <br /></td></tr>
  219. <tr class="separator:a54c7ec0bad84c09fc0e54160229aa42d"><td class="memSeparator" colspan="2">&#160;</td></tr>
  220. <tr class="memitem:a89c0fbd55855fa96624374957e8d807e" id="r_a89c0fbd55855fa96624374957e8d807e"><td class="memItemLeft" align="right" valign="top">constexpr <a class="el" href="#aa6e132946e0d852c08166229712780b5">size_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a89c0fbd55855fa96624374957e8d807e">max_size</a> () const</td></tr>
  221. <tr class="memdesc:a89c0fbd55855fa96624374957e8d807e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Max number of elements that the table can hold. <br /></td></tr>
  222. <tr class="separator:a89c0fbd55855fa96624374957e8d807e"><td class="memSeparator" colspan="2">&#160;</td></tr>
  223. <tr class="memitem:ab95fc88c65616bd424a596658265594f" id="r_ab95fc88c65616bd424a596658265594f"><td class="memItemLeft" align="right" valign="top">constexpr float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ab95fc88c65616bd424a596658265594f">max_load_factor</a> () const</td></tr>
  224. <tr class="memdesc:ab95fc88c65616bd424a596658265594f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the max load factor for this table (max number of elements / number of buckets) <br /></td></tr>
  225. <tr class="separator:ab95fc88c65616bd424a596658265594f"><td class="memSeparator" colspan="2">&#160;</td></tr>
  226. <tr class="memitem:ac4a1aea8a17c4fb88d07678846f17c24" id="r_ac4a1aea8a17c4fb88d07678846f17c24"><td class="memItemLeft" align="right" valign="top">std::pair&lt; <a class="el" href="class_hash_table_1_1iterator.html">iterator</a>, bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ac4a1aea8a17c4fb88d07678846f17c24">insert</a> (const <a class="el" href="#a9e0354e8e22ff27d0548a4d5b62b30ed">value_type</a> &amp;inValue)</td></tr>
  227. <tr class="memdesc:ac4a1aea8a17c4fb88d07678846f17c24"><td class="mdescLeft">&#160;</td><td class="mdescRight">Insert a new element, returns iterator and if the element was inserted. <br /></td></tr>
  228. <tr class="separator:ac4a1aea8a17c4fb88d07678846f17c24"><td class="memSeparator" colspan="2">&#160;</td></tr>
  229. <tr class="memitem:a7541e945573a40408181fd63260cafb6" id="r_a7541e945573a40408181fd63260cafb6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_hash_table_1_1const__iterator.html">const_iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a7541e945573a40408181fd63260cafb6">find</a> (const Key &amp;inKey) const</td></tr>
  230. <tr class="memdesc:a7541e945573a40408181fd63260cafb6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Find an element, returns iterator to element or <a class="el" href="#a3fd1542c6f9087d63323416fda0e08c5" title="Iterator to one beyond last element.">end()</a> if not found. <br /></td></tr>
  231. <tr class="separator:a7541e945573a40408181fd63260cafb6"><td class="memSeparator" colspan="2">&#160;</td></tr>
  232. <tr class="memitem:ad52f6fe9d50a71976d2bf00be01378e4" id="r_ad52f6fe9d50a71976d2bf00be01378e4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ad52f6fe9d50a71976d2bf00be01378e4">erase</a> (const <a class="el" href="class_hash_table_1_1const__iterator.html">const_iterator</a> &amp;inIterator)</td></tr>
  233. <tr class="memdesc:ad52f6fe9d50a71976d2bf00be01378e4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Erase an element by iterator. <br /></td></tr>
  234. <tr class="separator:ad52f6fe9d50a71976d2bf00be01378e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
  235. <tr class="memitem:af056bc485a0dcade6a0745ee64bbb293" id="r_af056bc485a0dcade6a0745ee64bbb293"><td class="memItemLeft" align="right" valign="top"><a class="el" href="#aa6e132946e0d852c08166229712780b5">size_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#af056bc485a0dcade6a0745ee64bbb293">erase</a> (const Key &amp;inKey)</td></tr>
  236. <tr class="memdesc:af056bc485a0dcade6a0745ee64bbb293"><td class="mdescLeft">&#160;</td><td class="mdescRight">Erase an element by key. <br /></td></tr>
  237. <tr class="separator:af056bc485a0dcade6a0745ee64bbb293"><td class="memSeparator" colspan="2">&#160;</td></tr>
  238. <tr class="memitem:a59abad316a005ca41480cad0b8f1015a" id="r_a59abad316a005ca41480cad0b8f1015a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a59abad316a005ca41480cad0b8f1015a">swap</a> (<a class="el" href="class_hash_table.html">HashTable</a> &amp;ioRHS) noexcept</td></tr>
  239. <tr class="memdesc:a59abad316a005ca41480cad0b8f1015a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Swap the contents of two hash tables. <br /></td></tr>
  240. <tr class="separator:a59abad316a005ca41480cad0b8f1015a"><td class="memSeparator" colspan="2">&#160;</td></tr>
  241. <tr class="memitem:abdbff1cecce246b92c74406b300d0433" id="r_abdbff1cecce246b92c74406b300d0433"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#abdbff1cecce246b92c74406b300d0433">rehash</a> (<a class="el" href="#aa6e132946e0d852c08166229712780b5">size_type</a>)</td></tr>
  242. <tr class="separator:abdbff1cecce246b92c74406b300d0433"><td class="memSeparator" colspan="2">&#160;</td></tr>
  243. </table><table class="memberdecls">
  244. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-methods" name="pro-methods"></a>
  245. Protected Member Functions</h2></td></tr>
  246. <tr class="memitem:a3c968f0c587c2e368188247147500307" id="r_a3c968f0c587c2e368188247147500307"><td class="memItemLeft" align="right" valign="top">KeyValue &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a3c968f0c587c2e368188247147500307">GetElement</a> (<a class="el" href="#aa6e132946e0d852c08166229712780b5">size_type</a> inIndex) const</td></tr>
  247. <tr class="memdesc:a3c968f0c587c2e368188247147500307"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get an element by index. <br /></td></tr>
  248. <tr class="separator:a3c968f0c587c2e368188247147500307"><td class="memSeparator" colspan="2">&#160;</td></tr>
  249. <tr class="memitem:a9fc364bfa705f850741658b59a7c93a8" id="r_a9fc364bfa705f850741658b59a7c93a8"><td class="memTemplParams" colspan="2">template&lt;bool InsertAfterGrow = false&gt; </td></tr>
  250. <tr class="memitem:a9fc364bfa705f850741658b59a7c93a8"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a9fc364bfa705f850741658b59a7c93a8">InsertKey</a> (const Key &amp;inKey, <a class="el" href="#aa6e132946e0d852c08166229712780b5">size_type</a> &amp;outIndex)</td></tr>
  251. <tr class="separator:a9fc364bfa705f850741658b59a7c93a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
  252. </table>
  253. <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
  254. <div class="textblock"><div class="compoundTemplParams">template&lt;class Key, class KeyValue, class HashTableDetail, class <a class="el" href="struct_hash.html">Hash</a>, class KeyEqual&gt;<br />
  255. class HashTable&lt; Key, KeyValue, HashTableDetail, Hash, KeyEqual &gt;</div><p>Helper class for implementing an <a class="el" href="class_unordered_set.html">UnorderedSet</a> or <a class="el" href="class_unordered_map.html">UnorderedMap</a> Based on CppCon 2017: Matt Kulukundis "Designing a Fast, Efficient, Cache-friendly Hash Table, Step by Step" See: <a href="https://www.youtube.com/watch?v=ncHmEUmJZf4">https://www.youtube.com/watch?v=ncHmEUmJZf4</a> </p>
  256. </div><h2 class="groupheader">Member Typedef Documentation</h2>
  257. <a id="a2dab10b4f1528f7c3e57ca31813e085e" name="a2dab10b4f1528f7c3e57ca31813e085e"></a>
  258. <h2 class="memtitle"><span class="permalink"><a href="#a2dab10b4f1528f7c3e57ca31813e085e">&#9670;&#160;</a></span>difference_type</h2>
  259. <div class="memitem">
  260. <div class="memproto">
  261. <div class="memtemplate">
  262. template&lt;class Key , class KeyValue , class HashTableDetail , class <a class="el" href="struct_hash.html">Hash</a> , class KeyEqual &gt; </div>
  263. <table class="memname">
  264. <tr>
  265. <td class="memname">using <a class="el" href="class_hash_table.html">HashTable</a>&lt; Key, KeyValue, HashTableDetail, <a class="el" href="struct_hash.html">Hash</a>, KeyEqual &gt;::difference_type = ptrdiff_t</td>
  266. </tr>
  267. </table>
  268. </div><div class="memdoc">
  269. </div>
  270. </div>
  271. <a id="aa6e132946e0d852c08166229712780b5" name="aa6e132946e0d852c08166229712780b5"></a>
  272. <h2 class="memtitle"><span class="permalink"><a href="#aa6e132946e0d852c08166229712780b5">&#9670;&#160;</a></span>size_type</h2>
  273. <div class="memitem">
  274. <div class="memproto">
  275. <div class="memtemplate">
  276. template&lt;class Key , class KeyValue , class HashTableDetail , class <a class="el" href="struct_hash.html">Hash</a> , class KeyEqual &gt; </div>
  277. <table class="memname">
  278. <tr>
  279. <td class="memname">using <a class="el" href="class_hash_table.html">HashTable</a>&lt; Key, KeyValue, HashTableDetail, <a class="el" href="struct_hash.html">Hash</a>, KeyEqual &gt;::size_type = <a class="el" href="_core_8h.html#a8f95e75e58492e87412191fabadd8ca8">uint32</a></td>
  280. </tr>
  281. </table>
  282. </div><div class="memdoc">
  283. </div>
  284. </div>
  285. <a id="a9e0354e8e22ff27d0548a4d5b62b30ed" name="a9e0354e8e22ff27d0548a4d5b62b30ed"></a>
  286. <h2 class="memtitle"><span class="permalink"><a href="#a9e0354e8e22ff27d0548a4d5b62b30ed">&#9670;&#160;</a></span>value_type</h2>
  287. <div class="memitem">
  288. <div class="memproto">
  289. <div class="memtemplate">
  290. template&lt;class Key , class KeyValue , class HashTableDetail , class <a class="el" href="struct_hash.html">Hash</a> , class KeyEqual &gt; </div>
  291. <table class="memname">
  292. <tr>
  293. <td class="memname">using <a class="el" href="class_hash_table.html">HashTable</a>&lt; Key, KeyValue, HashTableDetail, <a class="el" href="struct_hash.html">Hash</a>, KeyEqual &gt;::value_type = KeyValue</td>
  294. </tr>
  295. </table>
  296. </div><div class="memdoc">
  297. <p>Properties. </p>
  298. </div>
  299. </div>
  300. <h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
  301. <a id="a5666542a5c019d4e136ad904420d9c12" name="a5666542a5c019d4e136ad904420d9c12"></a>
  302. <h2 class="memtitle"><span class="permalink"><a href="#a5666542a5c019d4e136ad904420d9c12">&#9670;&#160;</a></span>HashTable() <span class="overload">[1/3]</span></h2>
  303. <div class="memitem">
  304. <div class="memproto">
  305. <div class="memtemplate">
  306. template&lt;class Key , class KeyValue , class HashTableDetail , class <a class="el" href="struct_hash.html">Hash</a> , class KeyEqual &gt; </div>
  307. <table class="mlabels">
  308. <tr>
  309. <td class="mlabels-left">
  310. <table class="memname">
  311. <tr>
  312. <td class="memname"><a class="el" href="class_hash_table.html">HashTable</a>&lt; Key, KeyValue, HashTableDetail, <a class="el" href="struct_hash.html">Hash</a>, KeyEqual &gt;<a class="el" href="class_hash_table.html">::HashTable</a> </td>
  313. <td>(</td>
  314. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  315. <td></td>
  316. </tr>
  317. </table>
  318. </td>
  319. <td class="mlabels-right">
  320. <span class="mlabels"><span class="mlabel">default</span></span> </td>
  321. </tr>
  322. </table>
  323. </div><div class="memdoc">
  324. <p>Default constructor. </p>
  325. </div>
  326. </div>
  327. <a id="a5229f49c49334a4809200e423f96f9cb" name="a5229f49c49334a4809200e423f96f9cb"></a>
  328. <h2 class="memtitle"><span class="permalink"><a href="#a5229f49c49334a4809200e423f96f9cb">&#9670;&#160;</a></span>HashTable() <span class="overload">[2/3]</span></h2>
  329. <div class="memitem">
  330. <div class="memproto">
  331. <div class="memtemplate">
  332. template&lt;class Key , class KeyValue , class HashTableDetail , class <a class="el" href="struct_hash.html">Hash</a> , class KeyEqual &gt; </div>
  333. <table class="mlabels">
  334. <tr>
  335. <td class="mlabels-left">
  336. <table class="memname">
  337. <tr>
  338. <td class="memname"><a class="el" href="class_hash_table.html">HashTable</a>&lt; Key, KeyValue, HashTableDetail, <a class="el" href="struct_hash.html">Hash</a>, KeyEqual &gt;<a class="el" href="class_hash_table.html">::HashTable</a> </td>
  339. <td>(</td>
  340. <td class="paramtype">const <a class="el" href="class_hash_table.html">HashTable</a>&lt; Key, KeyValue, HashTableDetail, <a class="el" href="struct_hash.html">Hash</a>, KeyEqual &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>inRHS</em></span></td><td>)</td>
  341. <td></td>
  342. </tr>
  343. </table>
  344. </td>
  345. <td class="mlabels-right">
  346. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  347. </tr>
  348. </table>
  349. </div><div class="memdoc">
  350. <p>Copy constructor. </p>
  351. </div>
  352. </div>
  353. <a id="a84b110219a8be1df516230e797fda034" name="a84b110219a8be1df516230e797fda034"></a>
  354. <h2 class="memtitle"><span class="permalink"><a href="#a84b110219a8be1df516230e797fda034">&#9670;&#160;</a></span>HashTable() <span class="overload">[3/3]</span></h2>
  355. <div class="memitem">
  356. <div class="memproto">
  357. <div class="memtemplate">
  358. template&lt;class Key , class KeyValue , class HashTableDetail , class <a class="el" href="struct_hash.html">Hash</a> , class KeyEqual &gt; </div>
  359. <table class="mlabels">
  360. <tr>
  361. <td class="mlabels-left">
  362. <table class="memname">
  363. <tr>
  364. <td class="memname"><a class="el" href="class_hash_table.html">HashTable</a>&lt; Key, KeyValue, HashTableDetail, <a class="el" href="struct_hash.html">Hash</a>, KeyEqual &gt;<a class="el" href="class_hash_table.html">::HashTable</a> </td>
  365. <td>(</td>
  366. <td class="paramtype"><a class="el" href="class_hash_table.html">HashTable</a>&lt; Key, KeyValue, HashTableDetail, <a class="el" href="struct_hash.html">Hash</a>, KeyEqual &gt; &amp;&amp;</td> <td class="paramname"><span class="paramname"><em>ioRHS</em></span></td><td>)</td>
  367. <td></td>
  368. </tr>
  369. </table>
  370. </td>
  371. <td class="mlabels-right">
  372. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
  373. </tr>
  374. </table>
  375. </div><div class="memdoc">
  376. <p>Move constructor. </p>
  377. </div>
  378. </div>
  379. <a id="a636d476adbffc2eb46acf9f39d75760d" name="a636d476adbffc2eb46acf9f39d75760d"></a>
  380. <h2 class="memtitle"><span class="permalink"><a href="#a636d476adbffc2eb46acf9f39d75760d">&#9670;&#160;</a></span>~HashTable()</h2>
  381. <div class="memitem">
  382. <div class="memproto">
  383. <div class="memtemplate">
  384. template&lt;class Key , class KeyValue , class HashTableDetail , class <a class="el" href="struct_hash.html">Hash</a> , class KeyEqual &gt; </div>
  385. <table class="mlabels">
  386. <tr>
  387. <td class="mlabels-left">
  388. <table class="memname">
  389. <tr>
  390. <td class="memname"><a class="el" href="class_hash_table.html">HashTable</a>&lt; Key, KeyValue, HashTableDetail, <a class="el" href="struct_hash.html">Hash</a>, KeyEqual &gt;::~<a class="el" href="class_hash_table.html">HashTable</a> </td>
  391. <td>(</td>
  392. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  393. <td></td>
  394. </tr>
  395. </table>
  396. </td>
  397. <td class="mlabels-right">
  398. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  399. </tr>
  400. </table>
  401. </div><div class="memdoc">
  402. <p>Destructor. </p>
  403. </div>
  404. </div>
  405. <h2 class="groupheader">Member Function Documentation</h2>
  406. <a id="a64d9f63b5f1af4430e033691d985ba23" name="a64d9f63b5f1af4430e033691d985ba23"></a>
  407. <h2 class="memtitle"><span class="permalink"><a href="#a64d9f63b5f1af4430e033691d985ba23">&#9670;&#160;</a></span>begin() <span class="overload">[1/2]</span></h2>
  408. <div class="memitem">
  409. <div class="memproto">
  410. <div class="memtemplate">
  411. template&lt;class Key , class KeyValue , class HashTableDetail , class <a class="el" href="struct_hash.html">Hash</a> , class KeyEqual &gt; </div>
  412. <table class="mlabels">
  413. <tr>
  414. <td class="mlabels-left">
  415. <table class="memname">
  416. <tr>
  417. <td class="memname"><a class="el" href="class_hash_table_1_1iterator.html">iterator</a> <a class="el" href="class_hash_table.html">HashTable</a>&lt; Key, KeyValue, HashTableDetail, <a class="el" href="struct_hash.html">Hash</a>, KeyEqual &gt;::begin </td>
  418. <td>(</td>
  419. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  420. <td></td>
  421. </tr>
  422. </table>
  423. </td>
  424. <td class="mlabels-right">
  425. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  426. </tr>
  427. </table>
  428. </div><div class="memdoc">
  429. <p>Iterator to first element. </p>
  430. </div>
  431. </div>
  432. <a id="adbce8b2de5b0269fd0cdc3dde8747e4d" name="adbce8b2de5b0269fd0cdc3dde8747e4d"></a>
  433. <h2 class="memtitle"><span class="permalink"><a href="#adbce8b2de5b0269fd0cdc3dde8747e4d">&#9670;&#160;</a></span>begin() <span class="overload">[2/2]</span></h2>
  434. <div class="memitem">
  435. <div class="memproto">
  436. <div class="memtemplate">
  437. template&lt;class Key , class KeyValue , class HashTableDetail , class <a class="el" href="struct_hash.html">Hash</a> , class KeyEqual &gt; </div>
  438. <table class="mlabels">
  439. <tr>
  440. <td class="mlabels-left">
  441. <table class="memname">
  442. <tr>
  443. <td class="memname"><a class="el" href="class_hash_table_1_1const__iterator.html">const_iterator</a> <a class="el" href="class_hash_table.html">HashTable</a>&lt; Key, KeyValue, HashTableDetail, <a class="el" href="struct_hash.html">Hash</a>, KeyEqual &gt;::begin </td>
  444. <td>(</td>
  445. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  446. <td> const</td>
  447. </tr>
  448. </table>
  449. </td>
  450. <td class="mlabels-right">
  451. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  452. </tr>
  453. </table>
  454. </div><div class="memdoc">
  455. <p>Iterator to first element. </p>
  456. </div>
  457. </div>
  458. <a id="ade9da55303c18d6212d28515447a9a5b" name="ade9da55303c18d6212d28515447a9a5b"></a>
  459. <h2 class="memtitle"><span class="permalink"><a href="#ade9da55303c18d6212d28515447a9a5b">&#9670;&#160;</a></span>bucket_count()</h2>
  460. <div class="memitem">
  461. <div class="memproto">
  462. <div class="memtemplate">
  463. template&lt;class Key , class KeyValue , class HashTableDetail , class <a class="el" href="struct_hash.html">Hash</a> , class KeyEqual &gt; </div>
  464. <table class="mlabels">
  465. <tr>
  466. <td class="mlabels-left">
  467. <table class="memname">
  468. <tr>
  469. <td class="memname"><a class="el" href="#aa6e132946e0d852c08166229712780b5">size_type</a> <a class="el" href="class_hash_table.html">HashTable</a>&lt; Key, KeyValue, HashTableDetail, <a class="el" href="struct_hash.html">Hash</a>, KeyEqual &gt;::bucket_count </td>
  470. <td>(</td>
  471. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  472. <td> const</td>
  473. </tr>
  474. </table>
  475. </td>
  476. <td class="mlabels-right">
  477. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  478. </tr>
  479. </table>
  480. </div><div class="memdoc">
  481. <p>Number of buckets in the table. </p>
  482. </div>
  483. </div>
  484. <a id="a5ba58aac4668c7c8906d6f00a7181ee0" name="a5ba58aac4668c7c8906d6f00a7181ee0"></a>
  485. <h2 class="memtitle"><span class="permalink"><a href="#a5ba58aac4668c7c8906d6f00a7181ee0">&#9670;&#160;</a></span>cbegin()</h2>
  486. <div class="memitem">
  487. <div class="memproto">
  488. <div class="memtemplate">
  489. template&lt;class Key , class KeyValue , class HashTableDetail , class <a class="el" href="struct_hash.html">Hash</a> , class KeyEqual &gt; </div>
  490. <table class="mlabels">
  491. <tr>
  492. <td class="mlabels-left">
  493. <table class="memname">
  494. <tr>
  495. <td class="memname"><a class="el" href="class_hash_table_1_1const__iterator.html">const_iterator</a> <a class="el" href="class_hash_table.html">HashTable</a>&lt; Key, KeyValue, HashTableDetail, <a class="el" href="struct_hash.html">Hash</a>, KeyEqual &gt;::cbegin </td>
  496. <td>(</td>
  497. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  498. <td> const</td>
  499. </tr>
  500. </table>
  501. </td>
  502. <td class="mlabels-right">
  503. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  504. </tr>
  505. </table>
  506. </div><div class="memdoc">
  507. <p>Iterator to first element. </p>
  508. </div>
  509. </div>
  510. <a id="a7557480de53b5b5b940bb38d46f1a6d5" name="a7557480de53b5b5b940bb38d46f1a6d5"></a>
  511. <h2 class="memtitle"><span class="permalink"><a href="#a7557480de53b5b5b940bb38d46f1a6d5">&#9670;&#160;</a></span>cend()</h2>
  512. <div class="memitem">
  513. <div class="memproto">
  514. <div class="memtemplate">
  515. template&lt;class Key , class KeyValue , class HashTableDetail , class <a class="el" href="struct_hash.html">Hash</a> , class KeyEqual &gt; </div>
  516. <table class="mlabels">
  517. <tr>
  518. <td class="mlabels-left">
  519. <table class="memname">
  520. <tr>
  521. <td class="memname"><a class="el" href="class_hash_table_1_1const__iterator.html">const_iterator</a> <a class="el" href="class_hash_table.html">HashTable</a>&lt; Key, KeyValue, HashTableDetail, <a class="el" href="struct_hash.html">Hash</a>, KeyEqual &gt;::cend </td>
  522. <td>(</td>
  523. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  524. <td> const</td>
  525. </tr>
  526. </table>
  527. </td>
  528. <td class="mlabels-right">
  529. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  530. </tr>
  531. </table>
  532. </div><div class="memdoc">
  533. <p>Iterator to one beyond last element. </p>
  534. </div>
  535. </div>
  536. <a id="a3c220708a3fb98e6b2b90762cc9fa07f" name="a3c220708a3fb98e6b2b90762cc9fa07f"></a>
  537. <h2 class="memtitle"><span class="permalink"><a href="#a3c220708a3fb98e6b2b90762cc9fa07f">&#9670;&#160;</a></span>clear()</h2>
  538. <div class="memitem">
  539. <div class="memproto">
  540. <div class="memtemplate">
  541. template&lt;class Key , class KeyValue , class HashTableDetail , class <a class="el" href="struct_hash.html">Hash</a> , class KeyEqual &gt; </div>
  542. <table class="mlabels">
  543. <tr>
  544. <td class="mlabels-left">
  545. <table class="memname">
  546. <tr>
  547. <td class="memname">void <a class="el" href="class_hash_table.html">HashTable</a>&lt; Key, KeyValue, HashTableDetail, <a class="el" href="struct_hash.html">Hash</a>, KeyEqual &gt;::clear </td>
  548. <td>(</td>
  549. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  550. <td></td>
  551. </tr>
  552. </table>
  553. </td>
  554. <td class="mlabels-right">
  555. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  556. </tr>
  557. </table>
  558. </div><div class="memdoc">
  559. <p>Destroy the entire hash table. </p>
  560. </div>
  561. </div>
  562. <a id="aa24e3348e2360519ed0debef8e3fe48b" name="aa24e3348e2360519ed0debef8e3fe48b"></a>
  563. <h2 class="memtitle"><span class="permalink"><a href="#aa24e3348e2360519ed0debef8e3fe48b">&#9670;&#160;</a></span>ClearAndKeepMemory()</h2>
  564. <div class="memitem">
  565. <div class="memproto">
  566. <div class="memtemplate">
  567. template&lt;class Key , class KeyValue , class HashTableDetail , class <a class="el" href="struct_hash.html">Hash</a> , class KeyEqual &gt; </div>
  568. <table class="mlabels">
  569. <tr>
  570. <td class="mlabels-left">
  571. <table class="memname">
  572. <tr>
  573. <td class="memname">void <a class="el" href="class_hash_table.html">HashTable</a>&lt; Key, KeyValue, HashTableDetail, <a class="el" href="struct_hash.html">Hash</a>, KeyEqual &gt;::ClearAndKeepMemory </td>
  574. <td>(</td>
  575. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  576. <td></td>
  577. </tr>
  578. </table>
  579. </td>
  580. <td class="mlabels-right">
  581. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  582. </tr>
  583. </table>
  584. </div><div class="memdoc">
  585. <p>Destroy the entire hash table but keeps the memory allocated. </p>
  586. </div>
  587. </div>
  588. <a id="aa983a56c22510c95ade8ae48d4da781e" name="aa983a56c22510c95ade8ae48d4da781e"></a>
  589. <h2 class="memtitle"><span class="permalink"><a href="#aa983a56c22510c95ade8ae48d4da781e">&#9670;&#160;</a></span>empty()</h2>
  590. <div class="memitem">
  591. <div class="memproto">
  592. <div class="memtemplate">
  593. template&lt;class Key , class KeyValue , class HashTableDetail , class <a class="el" href="struct_hash.html">Hash</a> , class KeyEqual &gt; </div>
  594. <table class="mlabels">
  595. <tr>
  596. <td class="mlabels-left">
  597. <table class="memname">
  598. <tr>
  599. <td class="memname">bool <a class="el" href="class_hash_table.html">HashTable</a>&lt; Key, KeyValue, HashTableDetail, <a class="el" href="struct_hash.html">Hash</a>, KeyEqual &gt;::empty </td>
  600. <td>(</td>
  601. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  602. <td> const</td>
  603. </tr>
  604. </table>
  605. </td>
  606. <td class="mlabels-right">
  607. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  608. </tr>
  609. </table>
  610. </div><div class="memdoc">
  611. <p>Check if there are no elements in the table. </p>
  612. </div>
  613. </div>
  614. <a id="a3fd1542c6f9087d63323416fda0e08c5" name="a3fd1542c6f9087d63323416fda0e08c5"></a>
  615. <h2 class="memtitle"><span class="permalink"><a href="#a3fd1542c6f9087d63323416fda0e08c5">&#9670;&#160;</a></span>end() <span class="overload">[1/2]</span></h2>
  616. <div class="memitem">
  617. <div class="memproto">
  618. <div class="memtemplate">
  619. template&lt;class Key , class KeyValue , class HashTableDetail , class <a class="el" href="struct_hash.html">Hash</a> , class KeyEqual &gt; </div>
  620. <table class="mlabels">
  621. <tr>
  622. <td class="mlabels-left">
  623. <table class="memname">
  624. <tr>
  625. <td class="memname"><a class="el" href="class_hash_table_1_1iterator.html">iterator</a> <a class="el" href="class_hash_table.html">HashTable</a>&lt; Key, KeyValue, HashTableDetail, <a class="el" href="struct_hash.html">Hash</a>, KeyEqual &gt;::end </td>
  626. <td>(</td>
  627. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  628. <td></td>
  629. </tr>
  630. </table>
  631. </td>
  632. <td class="mlabels-right">
  633. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  634. </tr>
  635. </table>
  636. </div><div class="memdoc">
  637. <p>Iterator to one beyond last element. </p>
  638. </div>
  639. </div>
  640. <a id="a6c3e727ae8276d6da7aae9058d91713e" name="a6c3e727ae8276d6da7aae9058d91713e"></a>
  641. <h2 class="memtitle"><span class="permalink"><a href="#a6c3e727ae8276d6da7aae9058d91713e">&#9670;&#160;</a></span>end() <span class="overload">[2/2]</span></h2>
  642. <div class="memitem">
  643. <div class="memproto">
  644. <div class="memtemplate">
  645. template&lt;class Key , class KeyValue , class HashTableDetail , class <a class="el" href="struct_hash.html">Hash</a> , class KeyEqual &gt; </div>
  646. <table class="mlabels">
  647. <tr>
  648. <td class="mlabels-left">
  649. <table class="memname">
  650. <tr>
  651. <td class="memname"><a class="el" href="class_hash_table_1_1const__iterator.html">const_iterator</a> <a class="el" href="class_hash_table.html">HashTable</a>&lt; Key, KeyValue, HashTableDetail, <a class="el" href="struct_hash.html">Hash</a>, KeyEqual &gt;::end </td>
  652. <td>(</td>
  653. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  654. <td> const</td>
  655. </tr>
  656. </table>
  657. </td>
  658. <td class="mlabels-right">
  659. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  660. </tr>
  661. </table>
  662. </div><div class="memdoc">
  663. <p>Iterator to one beyond last element. </p>
  664. </div>
  665. </div>
  666. <a id="ad52f6fe9d50a71976d2bf00be01378e4" name="ad52f6fe9d50a71976d2bf00be01378e4"></a>
  667. <h2 class="memtitle"><span class="permalink"><a href="#ad52f6fe9d50a71976d2bf00be01378e4">&#9670;&#160;</a></span>erase() <span class="overload">[1/2]</span></h2>
  668. <div class="memitem">
  669. <div class="memproto">
  670. <div class="memtemplate">
  671. template&lt;class Key , class KeyValue , class HashTableDetail , class <a class="el" href="struct_hash.html">Hash</a> , class KeyEqual &gt; </div>
  672. <table class="mlabels">
  673. <tr>
  674. <td class="mlabels-left">
  675. <table class="memname">
  676. <tr>
  677. <td class="memname">void <a class="el" href="class_hash_table.html">HashTable</a>&lt; Key, KeyValue, HashTableDetail, <a class="el" href="struct_hash.html">Hash</a>, KeyEqual &gt;::erase </td>
  678. <td>(</td>
  679. <td class="paramtype">const <a class="el" href="class_hash_table_1_1const__iterator.html">const_iterator</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inIterator</em></span></td><td>)</td>
  680. <td></td>
  681. </tr>
  682. </table>
  683. </td>
  684. <td class="mlabels-right">
  685. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  686. </tr>
  687. </table>
  688. </div><div class="memdoc">
  689. <p>Erase an element by iterator. </p>
  690. </div>
  691. </div>
  692. <a id="af056bc485a0dcade6a0745ee64bbb293" name="af056bc485a0dcade6a0745ee64bbb293"></a>
  693. <h2 class="memtitle"><span class="permalink"><a href="#af056bc485a0dcade6a0745ee64bbb293">&#9670;&#160;</a></span>erase() <span class="overload">[2/2]</span></h2>
  694. <div class="memitem">
  695. <div class="memproto">
  696. <div class="memtemplate">
  697. template&lt;class Key , class KeyValue , class HashTableDetail , class <a class="el" href="struct_hash.html">Hash</a> , class KeyEqual &gt; </div>
  698. <table class="mlabels">
  699. <tr>
  700. <td class="mlabels-left">
  701. <table class="memname">
  702. <tr>
  703. <td class="memname"><a class="el" href="#aa6e132946e0d852c08166229712780b5">size_type</a> <a class="el" href="class_hash_table.html">HashTable</a>&lt; Key, KeyValue, HashTableDetail, <a class="el" href="struct_hash.html">Hash</a>, KeyEqual &gt;::erase </td>
  704. <td>(</td>
  705. <td class="paramtype">const Key &amp;</td> <td class="paramname"><span class="paramname"><em>inKey</em></span></td><td>)</td>
  706. <td></td>
  707. </tr>
  708. </table>
  709. </td>
  710. <td class="mlabels-right">
  711. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  712. </tr>
  713. </table>
  714. </div><div class="memdoc">
  715. <p>Erase an element by key. </p>
  716. </div>
  717. </div>
  718. <a id="a7541e945573a40408181fd63260cafb6" name="a7541e945573a40408181fd63260cafb6"></a>
  719. <h2 class="memtitle"><span class="permalink"><a href="#a7541e945573a40408181fd63260cafb6">&#9670;&#160;</a></span>find()</h2>
  720. <div class="memitem">
  721. <div class="memproto">
  722. <div class="memtemplate">
  723. template&lt;class Key , class KeyValue , class HashTableDetail , class <a class="el" href="struct_hash.html">Hash</a> , class KeyEqual &gt; </div>
  724. <table class="mlabels">
  725. <tr>
  726. <td class="mlabels-left">
  727. <table class="memname">
  728. <tr>
  729. <td class="memname"><a class="el" href="class_hash_table_1_1const__iterator.html">const_iterator</a> <a class="el" href="class_hash_table.html">HashTable</a>&lt; Key, KeyValue, HashTableDetail, <a class="el" href="struct_hash.html">Hash</a>, KeyEqual &gt;::find </td>
  730. <td>(</td>
  731. <td class="paramtype">const Key &amp;</td> <td class="paramname"><span class="paramname"><em>inKey</em></span></td><td>)</td>
  732. <td> const</td>
  733. </tr>
  734. </table>
  735. </td>
  736. <td class="mlabels-right">
  737. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  738. </tr>
  739. </table>
  740. </div><div class="memdoc">
  741. <p>Find an element, returns iterator to element or <a class="el" href="#a3fd1542c6f9087d63323416fda0e08c5" title="Iterator to one beyond last element.">end()</a> if not found. </p>
  742. </div>
  743. </div>
  744. <a id="a3c968f0c587c2e368188247147500307" name="a3c968f0c587c2e368188247147500307"></a>
  745. <h2 class="memtitle"><span class="permalink"><a href="#a3c968f0c587c2e368188247147500307">&#9670;&#160;</a></span>GetElement()</h2>
  746. <div class="memitem">
  747. <div class="memproto">
  748. <div class="memtemplate">
  749. template&lt;class Key , class KeyValue , class HashTableDetail , class <a class="el" href="struct_hash.html">Hash</a> , class KeyEqual &gt; </div>
  750. <table class="mlabels">
  751. <tr>
  752. <td class="mlabels-left">
  753. <table class="memname">
  754. <tr>
  755. <td class="memname">KeyValue &amp; <a class="el" href="class_hash_table.html">HashTable</a>&lt; Key, KeyValue, HashTableDetail, <a class="el" href="struct_hash.html">Hash</a>, KeyEqual &gt;::GetElement </td>
  756. <td>(</td>
  757. <td class="paramtype"><a class="el" href="#aa6e132946e0d852c08166229712780b5">size_type</a></td> <td class="paramname"><span class="paramname"><em>inIndex</em></span></td><td>)</td>
  758. <td> const</td>
  759. </tr>
  760. </table>
  761. </td>
  762. <td class="mlabels-right">
  763. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span> </td>
  764. </tr>
  765. </table>
  766. </div><div class="memdoc">
  767. <p>Get an element by index. </p>
  768. </div>
  769. </div>
  770. <a id="ac4a1aea8a17c4fb88d07678846f17c24" name="ac4a1aea8a17c4fb88d07678846f17c24"></a>
  771. <h2 class="memtitle"><span class="permalink"><a href="#ac4a1aea8a17c4fb88d07678846f17c24">&#9670;&#160;</a></span>insert()</h2>
  772. <div class="memitem">
  773. <div class="memproto">
  774. <div class="memtemplate">
  775. template&lt;class Key , class KeyValue , class HashTableDetail , class <a class="el" href="struct_hash.html">Hash</a> , class KeyEqual &gt; </div>
  776. <table class="mlabels">
  777. <tr>
  778. <td class="mlabels-left">
  779. <table class="memname">
  780. <tr>
  781. <td class="memname">std::pair&lt; <a class="el" href="class_hash_table_1_1iterator.html">iterator</a>, bool &gt; <a class="el" href="class_hash_table.html">HashTable</a>&lt; Key, KeyValue, HashTableDetail, <a class="el" href="struct_hash.html">Hash</a>, KeyEqual &gt;::insert </td>
  782. <td>(</td>
  783. <td class="paramtype">const <a class="el" href="#a9e0354e8e22ff27d0548a4d5b62b30ed">value_type</a> &amp;</td> <td class="paramname"><span class="paramname"><em>inValue</em></span></td><td>)</td>
  784. <td></td>
  785. </tr>
  786. </table>
  787. </td>
  788. <td class="mlabels-right">
  789. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  790. </tr>
  791. </table>
  792. </div><div class="memdoc">
  793. <p>Insert a new element, returns iterator and if the element was inserted. </p>
  794. </div>
  795. </div>
  796. <a id="a9fc364bfa705f850741658b59a7c93a8" name="a9fc364bfa705f850741658b59a7c93a8"></a>
  797. <h2 class="memtitle"><span class="permalink"><a href="#a9fc364bfa705f850741658b59a7c93a8">&#9670;&#160;</a></span>InsertKey()</h2>
  798. <div class="memitem">
  799. <div class="memproto">
  800. <div class="memtemplate">
  801. template&lt;class Key , class KeyValue , class HashTableDetail , class <a class="el" href="struct_hash.html">Hash</a> , class KeyEqual &gt; </div>
  802. <div class="memtemplate">
  803. template&lt;bool InsertAfterGrow = false&gt; </div>
  804. <table class="mlabels">
  805. <tr>
  806. <td class="mlabels-left">
  807. <table class="memname">
  808. <tr>
  809. <td class="memname">bool <a class="el" href="class_hash_table.html">HashTable</a>&lt; Key, KeyValue, HashTableDetail, <a class="el" href="struct_hash.html">Hash</a>, KeyEqual &gt;::InsertKey </td>
  810. <td>(</td>
  811. <td class="paramtype">const Key &amp;</td> <td class="paramname"><span class="paramname"><em>inKey</em></span>, </td>
  812. </tr>
  813. <tr>
  814. <td class="paramkey"></td>
  815. <td></td>
  816. <td class="paramtype"><a class="el" href="#aa6e132946e0d852c08166229712780b5">size_type</a> &amp;</td> <td class="paramname"><span class="paramname"><em>outIndex</em></span>&#160;)</td>
  817. </tr>
  818. </table>
  819. </td>
  820. <td class="mlabels-right">
  821. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span> </td>
  822. </tr>
  823. </table>
  824. </div><div class="memdoc">
  825. <p>Insert a key into the map, returns true if the element was inserted, false if it already existed. outIndex is the index at which the element should be constructed / where it is located. </p>
  826. </div>
  827. </div>
  828. <a id="a40281814275bc8c120e63a96e232cbd1" name="a40281814275bc8c120e63a96e232cbd1"></a>
  829. <h2 class="memtitle"><span class="permalink"><a href="#a40281814275bc8c120e63a96e232cbd1">&#9670;&#160;</a></span>max_bucket_count()</h2>
  830. <div class="memitem">
  831. <div class="memproto">
  832. <div class="memtemplate">
  833. template&lt;class Key , class KeyValue , class HashTableDetail , class <a class="el" href="struct_hash.html">Hash</a> , class KeyEqual &gt; </div>
  834. <table class="mlabels">
  835. <tr>
  836. <td class="mlabels-left">
  837. <table class="memname">
  838. <tr>
  839. <td class="memname"><a class="el" href="#aa6e132946e0d852c08166229712780b5">size_type</a> <a class="el" href="class_hash_table.html">HashTable</a>&lt; Key, KeyValue, HashTableDetail, <a class="el" href="struct_hash.html">Hash</a>, KeyEqual &gt;::max_bucket_count </td>
  840. <td>(</td>
  841. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  842. <td> const</td>
  843. </tr>
  844. </table>
  845. </td>
  846. <td class="mlabels-right">
  847. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">constexpr</span></span> </td>
  848. </tr>
  849. </table>
  850. </div><div class="memdoc">
  851. <p>Max number of buckets that the table can have. </p>
  852. </div>
  853. </div>
  854. <a id="ab95fc88c65616bd424a596658265594f" name="ab95fc88c65616bd424a596658265594f"></a>
  855. <h2 class="memtitle"><span class="permalink"><a href="#ab95fc88c65616bd424a596658265594f">&#9670;&#160;</a></span>max_load_factor()</h2>
  856. <div class="memitem">
  857. <div class="memproto">
  858. <div class="memtemplate">
  859. template&lt;class Key , class KeyValue , class HashTableDetail , class <a class="el" href="struct_hash.html">Hash</a> , class KeyEqual &gt; </div>
  860. <table class="mlabels">
  861. <tr>
  862. <td class="mlabels-left">
  863. <table class="memname">
  864. <tr>
  865. <td class="memname">float <a class="el" href="class_hash_table.html">HashTable</a>&lt; Key, KeyValue, HashTableDetail, <a class="el" href="struct_hash.html">Hash</a>, KeyEqual &gt;::max_load_factor </td>
  866. <td>(</td>
  867. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  868. <td> const</td>
  869. </tr>
  870. </table>
  871. </td>
  872. <td class="mlabels-right">
  873. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">constexpr</span></span> </td>
  874. </tr>
  875. </table>
  876. </div><div class="memdoc">
  877. <p>Get the max load factor for this table (max number of elements / number of buckets) </p>
  878. </div>
  879. </div>
  880. <a id="a89c0fbd55855fa96624374957e8d807e" name="a89c0fbd55855fa96624374957e8d807e"></a>
  881. <h2 class="memtitle"><span class="permalink"><a href="#a89c0fbd55855fa96624374957e8d807e">&#9670;&#160;</a></span>max_size()</h2>
  882. <div class="memitem">
  883. <div class="memproto">
  884. <div class="memtemplate">
  885. template&lt;class Key , class KeyValue , class HashTableDetail , class <a class="el" href="struct_hash.html">Hash</a> , class KeyEqual &gt; </div>
  886. <table class="mlabels">
  887. <tr>
  888. <td class="mlabels-left">
  889. <table class="memname">
  890. <tr>
  891. <td class="memname"><a class="el" href="#aa6e132946e0d852c08166229712780b5">size_type</a> <a class="el" href="class_hash_table.html">HashTable</a>&lt; Key, KeyValue, HashTableDetail, <a class="el" href="struct_hash.html">Hash</a>, KeyEqual &gt;::max_size </td>
  892. <td>(</td>
  893. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  894. <td> const</td>
  895. </tr>
  896. </table>
  897. </td>
  898. <td class="mlabels-right">
  899. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">constexpr</span></span> </td>
  900. </tr>
  901. </table>
  902. </div><div class="memdoc">
  903. <p>Max number of elements that the table can hold. </p>
  904. </div>
  905. </div>
  906. <a id="affd3cd3786f20a0bff6485f422b040f2" name="affd3cd3786f20a0bff6485f422b040f2"></a>
  907. <h2 class="memtitle"><span class="permalink"><a href="#affd3cd3786f20a0bff6485f422b040f2">&#9670;&#160;</a></span>operator=() <span class="overload">[1/2]</span></h2>
  908. <div class="memitem">
  909. <div class="memproto">
  910. <div class="memtemplate">
  911. template&lt;class Key , class KeyValue , class HashTableDetail , class <a class="el" href="struct_hash.html">Hash</a> , class KeyEqual &gt; </div>
  912. <table class="mlabels">
  913. <tr>
  914. <td class="mlabels-left">
  915. <table class="memname">
  916. <tr>
  917. <td class="memname"><a class="el" href="class_hash_table.html">HashTable</a> &amp; <a class="el" href="class_hash_table.html">HashTable</a>&lt; Key, KeyValue, HashTableDetail, <a class="el" href="struct_hash.html">Hash</a>, KeyEqual &gt;::operator= </td>
  918. <td>(</td>
  919. <td class="paramtype">const <a class="el" href="class_hash_table.html">HashTable</a>&lt; Key, KeyValue, HashTableDetail, <a class="el" href="struct_hash.html">Hash</a>, KeyEqual &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>inRHS</em></span></td><td>)</td>
  920. <td></td>
  921. </tr>
  922. </table>
  923. </td>
  924. <td class="mlabels-right">
  925. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  926. </tr>
  927. </table>
  928. </div><div class="memdoc">
  929. <p>Assignment operator. </p>
  930. </div>
  931. </div>
  932. <a id="a2a21cffd58e0be50fd71c2cb445b8234" name="a2a21cffd58e0be50fd71c2cb445b8234"></a>
  933. <h2 class="memtitle"><span class="permalink"><a href="#a2a21cffd58e0be50fd71c2cb445b8234">&#9670;&#160;</a></span>operator=() <span class="overload">[2/2]</span></h2>
  934. <div class="memitem">
  935. <div class="memproto">
  936. <div class="memtemplate">
  937. template&lt;class Key , class KeyValue , class HashTableDetail , class <a class="el" href="struct_hash.html">Hash</a> , class KeyEqual &gt; </div>
  938. <table class="mlabels">
  939. <tr>
  940. <td class="mlabels-left">
  941. <table class="memname">
  942. <tr>
  943. <td class="memname"><a class="el" href="class_hash_table.html">HashTable</a> &amp; <a class="el" href="class_hash_table.html">HashTable</a>&lt; Key, KeyValue, HashTableDetail, <a class="el" href="struct_hash.html">Hash</a>, KeyEqual &gt;::operator= </td>
  944. <td>(</td>
  945. <td class="paramtype"><a class="el" href="class_hash_table.html">HashTable</a>&lt; Key, KeyValue, HashTableDetail, <a class="el" href="struct_hash.html">Hash</a>, KeyEqual &gt; &amp;&amp;</td> <td class="paramname"><span class="paramname"><em>ioRHS</em></span></td><td>)</td>
  946. <td></td>
  947. </tr>
  948. </table>
  949. </td>
  950. <td class="mlabels-right">
  951. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
  952. </tr>
  953. </table>
  954. </div><div class="memdoc">
  955. <p>Move assignment operator. </p>
  956. </div>
  957. </div>
  958. <a id="abdbff1cecce246b92c74406b300d0433" name="abdbff1cecce246b92c74406b300d0433"></a>
  959. <h2 class="memtitle"><span class="permalink"><a href="#abdbff1cecce246b92c74406b300d0433">&#9670;&#160;</a></span>rehash()</h2>
  960. <div class="memitem">
  961. <div class="memproto">
  962. <div class="memtemplate">
  963. template&lt;class Key , class KeyValue , class HashTableDetail , class <a class="el" href="struct_hash.html">Hash</a> , class KeyEqual &gt; </div>
  964. <table class="mlabels">
  965. <tr>
  966. <td class="mlabels-left">
  967. <table class="memname">
  968. <tr>
  969. <td class="memname">void <a class="el" href="class_hash_table.html">HashTable</a>&lt; Key, KeyValue, HashTableDetail, <a class="el" href="struct_hash.html">Hash</a>, KeyEqual &gt;::rehash </td>
  970. <td>(</td>
  971. <td class="paramtype"><a class="el" href="#aa6e132946e0d852c08166229712780b5">size_type</a></td> <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  972. <td></td>
  973. </tr>
  974. </table>
  975. </td>
  976. <td class="mlabels-right">
  977. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  978. </tr>
  979. </table>
  980. </div><div class="memdoc">
  981. <p>In place re-hashing of all elements in the table. Removes all cBucketDeleted elements The std version takes a bucket count, but we just re-hash to the same size. </p>
  982. </div>
  983. </div>
  984. <a id="a288e464fb83b4fc31f8506ddff191d0b" name="a288e464fb83b4fc31f8506ddff191d0b"></a>
  985. <h2 class="memtitle"><span class="permalink"><a href="#a288e464fb83b4fc31f8506ddff191d0b">&#9670;&#160;</a></span>reserve()</h2>
  986. <div class="memitem">
  987. <div class="memproto">
  988. <div class="memtemplate">
  989. template&lt;class Key , class KeyValue , class HashTableDetail , class <a class="el" href="struct_hash.html">Hash</a> , class KeyEqual &gt; </div>
  990. <table class="mlabels">
  991. <tr>
  992. <td class="mlabels-left">
  993. <table class="memname">
  994. <tr>
  995. <td class="memname">void <a class="el" href="class_hash_table.html">HashTable</a>&lt; Key, KeyValue, HashTableDetail, <a class="el" href="struct_hash.html">Hash</a>, KeyEqual &gt;::reserve </td>
  996. <td>(</td>
  997. <td class="paramtype"><a class="el" href="#aa6e132946e0d852c08166229712780b5">size_type</a></td> <td class="paramname"><span class="paramname"><em>inMaxSize</em></span></td><td>)</td>
  998. <td></td>
  999. </tr>
  1000. </table>
  1001. </td>
  1002. <td class="mlabels-right">
  1003. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  1004. </tr>
  1005. </table>
  1006. </div><div class="memdoc">
  1007. <p>Reserve memory for a certain number of elements. </p>
  1008. </div>
  1009. </div>
  1010. <a id="a54c7ec0bad84c09fc0e54160229aa42d" name="a54c7ec0bad84c09fc0e54160229aa42d"></a>
  1011. <h2 class="memtitle"><span class="permalink"><a href="#a54c7ec0bad84c09fc0e54160229aa42d">&#9670;&#160;</a></span>size()</h2>
  1012. <div class="memitem">
  1013. <div class="memproto">
  1014. <div class="memtemplate">
  1015. template&lt;class Key , class KeyValue , class HashTableDetail , class <a class="el" href="struct_hash.html">Hash</a> , class KeyEqual &gt; </div>
  1016. <table class="mlabels">
  1017. <tr>
  1018. <td class="mlabels-left">
  1019. <table class="memname">
  1020. <tr>
  1021. <td class="memname"><a class="el" href="#aa6e132946e0d852c08166229712780b5">size_type</a> <a class="el" href="class_hash_table.html">HashTable</a>&lt; Key, KeyValue, HashTableDetail, <a class="el" href="struct_hash.html">Hash</a>, KeyEqual &gt;::size </td>
  1022. <td>(</td>
  1023. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  1024. <td> const</td>
  1025. </tr>
  1026. </table>
  1027. </td>
  1028. <td class="mlabels-right">
  1029. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  1030. </tr>
  1031. </table>
  1032. </div><div class="memdoc">
  1033. <p>Number of elements in the table. </p>
  1034. </div>
  1035. </div>
  1036. <a id="a59abad316a005ca41480cad0b8f1015a" name="a59abad316a005ca41480cad0b8f1015a"></a>
  1037. <h2 class="memtitle"><span class="permalink"><a href="#a59abad316a005ca41480cad0b8f1015a">&#9670;&#160;</a></span>swap()</h2>
  1038. <div class="memitem">
  1039. <div class="memproto">
  1040. <div class="memtemplate">
  1041. template&lt;class Key , class KeyValue , class HashTableDetail , class <a class="el" href="struct_hash.html">Hash</a> , class KeyEqual &gt; </div>
  1042. <table class="mlabels">
  1043. <tr>
  1044. <td class="mlabels-left">
  1045. <table class="memname">
  1046. <tr>
  1047. <td class="memname">void <a class="el" href="class_hash_table.html">HashTable</a>&lt; Key, KeyValue, HashTableDetail, <a class="el" href="struct_hash.html">Hash</a>, KeyEqual &gt;::swap </td>
  1048. <td>(</td>
  1049. <td class="paramtype"><a class="el" href="class_hash_table.html">HashTable</a>&lt; Key, KeyValue, HashTableDetail, <a class="el" href="struct_hash.html">Hash</a>, KeyEqual &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>ioRHS</em></span></td><td>)</td>
  1050. <td></td>
  1051. </tr>
  1052. </table>
  1053. </td>
  1054. <td class="mlabels-right">
  1055. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
  1056. </tr>
  1057. </table>
  1058. </div><div class="memdoc">
  1059. <p>Swap the contents of two hash tables. </p>
  1060. </div>
  1061. </div>
  1062. <hr/>The documentation for this class was generated from the following file:<ul>
  1063. <li>Jolt/Core/<a class="el" href="_hash_table_8h_source.html">HashTable.h</a></li>
  1064. </ul>
  1065. </div><!-- contents -->
  1066. </div><!-- doc-content -->
  1067. <!-- start footer part -->
  1068. <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  1069. <ul>
  1070. <li class="navelem"><a class="el" href="class_hash_table.html">HashTable</a></li>
  1071. <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0 </li>
  1072. </ul>
  1073. </div>
  1074. </body>
  1075. </html>