class_hash_table.html 68 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171
  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; string_view, CreateShader &gt;" shape="rect" coords="485,112,960,136"/>
  124. <area href="class_unordered_map.html" alt="UnorderedMap&lt; SwingConeLimits, GeometryRef, SwingConeLimitsHasher &gt;" shape="rect" coords="485,168,960,192"/>
  125. <area href="class_unordered_map.html" alt="UnorderedMap&lt; SwingPyramidLimits, GeometryRef, SwingPyramidLimitsHasher &gt;" shape="rect" coords="485,224,960,248"/>
  126. <area href="class_unordered_map.html" alt="UnorderedMap&lt; float, GeometryRef &gt;" shape="rect" coords="485,280,960,304"/>
  127. <area href="class_unordered_map.html" alt="UnorderedMap&lt; TaperedCylinder, GeometryRef, TaperedCylinderHasher &gt;" shape="rect" coords="485,336,960,360"/>
  128. <area href="class_unordered_map.html" alt="UnorderedMap&lt; uint32, Ref &gt;" shape="rect" coords="485,392,960,416"/>
  129. <area href="class_unordered_map.html" alt="UnorderedMap&lt; GeometryRef, uint32 &gt;" shape="rect" coords="485,448,960,472"/>
  130. <area href="class_unordered_map.html" alt="UnorderedMap&lt; string_view, const RTTI * &gt;" shape="rect" coords="485,504,960,528"/>
  131. <area href="class_unordered_map.html" alt="UnorderedMap&lt; uint32, const RTTI * &gt;" shape="rect" coords="485,560,960,584"/>
  132. <area href="class_unordered_map.html" alt="UnorderedMap&lt; uint32, String &gt;" shape="rect" coords="485,616,960,640"/>
  133. <area href="class_unordered_map.html" alt="UnorderedMap&lt; String, uint32 &gt;" shape="rect" coords="485,672,960,696"/>
  134. <area href="class_unordered_map.html" alt="UnorderedMap&lt; String, ClassDescription &gt;" shape="rect" coords="485,728,960,752"/>
  135. <area href="class_unordered_map.html" alt="UnorderedMap&lt; Identifier, ObjectInfo &gt;" shape="rect" coords="485,784,960,808"/>
  136. <area href="class_unordered_map.html" alt="UnorderedMap&lt; const void *, ObjectInfo &gt;" shape="rect" coords="485,840,960,864"/>
  137. <area href="class_unordered_set.html" alt="UnorderedSet&lt; const RTTI * &gt;" shape="rect" coords="485,896,960,920"/>
  138. <area href="class_unordered_map.html" alt="UnorderedMap&lt; Key, Value, Hash, KeyEqual &gt;" shape="rect" coords="485,952,960,976"/>
  139. <area href="class_unordered_set.html" alt="UnorderedSet&lt; Key, Hash, KeyEqual &gt;" shape="rect" coords="485,1008,960,1032"/>
  140. </map>
  141. </div></div>
  142. <table class="memberdecls">
  143. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
  144. Classes</h2></td></tr>
  145. <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>
  146. <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>
  147. <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
  148. <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>
  149. <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>
  150. <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
  151. </table><table class="memberdecls">
  152. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-types" name="pub-types"></a>
  153. Public Types</h2></td></tr>
  154. <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>
  155. <tr class="memdesc:a9e0354e8e22ff27d0548a4d5b62b30ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Properties. <br /></td></tr>
  156. <tr class="separator:a9e0354e8e22ff27d0548a4d5b62b30ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
  157. <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>
  158. <tr class="separator:aa6e132946e0d852c08166229712780b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
  159. <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>
  160. <tr class="separator:a2dab10b4f1528f7c3e57ca31813e085e"><td class="memSeparator" colspan="2">&#160;</td></tr>
  161. </table><table class="memberdecls">
  162. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
  163. Public Member Functions</h2></td></tr>
  164. <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>
  165. <tr class="memdesc:a5666542a5c019d4e136ad904420d9c12"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor. <br /></td></tr>
  166. <tr class="separator:a5666542a5c019d4e136ad904420d9c12"><td class="memSeparator" colspan="2">&#160;</td></tr>
  167. <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>
  168. <tr class="memdesc:a5229f49c49334a4809200e423f96f9cb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor. <br /></td></tr>
  169. <tr class="separator:a5229f49c49334a4809200e423f96f9cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
  170. <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>
  171. <tr class="memdesc:a84b110219a8be1df516230e797fda034"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move constructor. <br /></td></tr>
  172. <tr class="separator:a84b110219a8be1df516230e797fda034"><td class="memSeparator" colspan="2">&#160;</td></tr>
  173. <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>
  174. <tr class="memdesc:affd3cd3786f20a0bff6485f422b040f2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Assignment operator. <br /></td></tr>
  175. <tr class="separator:affd3cd3786f20a0bff6485f422b040f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
  176. <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>
  177. <tr class="memdesc:a2a21cffd58e0be50fd71c2cb445b8234"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move assignment operator. <br /></td></tr>
  178. <tr class="separator:a2a21cffd58e0be50fd71c2cb445b8234"><td class="memSeparator" colspan="2">&#160;</td></tr>
  179. <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>
  180. <tr class="memdesc:a636d476adbffc2eb46acf9f39d75760d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor. <br /></td></tr>
  181. <tr class="separator:a636d476adbffc2eb46acf9f39d75760d"><td class="memSeparator" colspan="2">&#160;</td></tr>
  182. <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>
  183. <tr class="memdesc:a288e464fb83b4fc31f8506ddff191d0b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reserve memory for a certain number of elements. <br /></td></tr>
  184. <tr class="separator:a288e464fb83b4fc31f8506ddff191d0b"><td class="memSeparator" colspan="2">&#160;</td></tr>
  185. <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>
  186. <tr class="memdesc:a3c220708a3fb98e6b2b90762cc9fa07f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroy the entire hash table. <br /></td></tr>
  187. <tr class="separator:a3c220708a3fb98e6b2b90762cc9fa07f"><td class="memSeparator" colspan="2">&#160;</td></tr>
  188. <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>
  189. <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>
  190. <tr class="separator:aa24e3348e2360519ed0debef8e3fe48b"><td class="memSeparator" colspan="2">&#160;</td></tr>
  191. <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>
  192. <tr class="memdesc:a64d9f63b5f1af4430e033691d985ba23"><td class="mdescLeft">&#160;</td><td class="mdescRight">Iterator to first element. <br /></td></tr>
  193. <tr class="separator:a64d9f63b5f1af4430e033691d985ba23"><td class="memSeparator" colspan="2">&#160;</td></tr>
  194. <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>
  195. <tr class="memdesc:a3fd1542c6f9087d63323416fda0e08c5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Iterator to one beyond last element. <br /></td></tr>
  196. <tr class="separator:a3fd1542c6f9087d63323416fda0e08c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
  197. <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>
  198. <tr class="memdesc:adbce8b2de5b0269fd0cdc3dde8747e4d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Iterator to first element. <br /></td></tr>
  199. <tr class="separator:adbce8b2de5b0269fd0cdc3dde8747e4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
  200. <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>
  201. <tr class="memdesc:a6c3e727ae8276d6da7aae9058d91713e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Iterator to one beyond last element. <br /></td></tr>
  202. <tr class="separator:a6c3e727ae8276d6da7aae9058d91713e"><td class="memSeparator" colspan="2">&#160;</td></tr>
  203. <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>
  204. <tr class="memdesc:a5ba58aac4668c7c8906d6f00a7181ee0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Iterator to first element. <br /></td></tr>
  205. <tr class="separator:a5ba58aac4668c7c8906d6f00a7181ee0"><td class="memSeparator" colspan="2">&#160;</td></tr>
  206. <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>
  207. <tr class="memdesc:a7557480de53b5b5b940bb38d46f1a6d5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Iterator to one beyond last element. <br /></td></tr>
  208. <tr class="separator:a7557480de53b5b5b940bb38d46f1a6d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
  209. <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>
  210. <tr class="memdesc:ade9da55303c18d6212d28515447a9a5b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of buckets in the table. <br /></td></tr>
  211. <tr class="separator:ade9da55303c18d6212d28515447a9a5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
  212. <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>
  213. <tr class="memdesc:a40281814275bc8c120e63a96e232cbd1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Max number of buckets that the table can have. <br /></td></tr>
  214. <tr class="separator:a40281814275bc8c120e63a96e232cbd1"><td class="memSeparator" colspan="2">&#160;</td></tr>
  215. <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>
  216. <tr class="memdesc:aa983a56c22510c95ade8ae48d4da781e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if there are no elements in the table. <br /></td></tr>
  217. <tr class="separator:aa983a56c22510c95ade8ae48d4da781e"><td class="memSeparator" colspan="2">&#160;</td></tr>
  218. <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>
  219. <tr class="memdesc:a54c7ec0bad84c09fc0e54160229aa42d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of elements in the table. <br /></td></tr>
  220. <tr class="separator:a54c7ec0bad84c09fc0e54160229aa42d"><td class="memSeparator" colspan="2">&#160;</td></tr>
  221. <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>
  222. <tr class="memdesc:a89c0fbd55855fa96624374957e8d807e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Max number of elements that the table can hold. <br /></td></tr>
  223. <tr class="separator:a89c0fbd55855fa96624374957e8d807e"><td class="memSeparator" colspan="2">&#160;</td></tr>
  224. <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>
  225. <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>
  226. <tr class="separator:ab95fc88c65616bd424a596658265594f"><td class="memSeparator" colspan="2">&#160;</td></tr>
  227. <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>
  228. <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>
  229. <tr class="separator:ac4a1aea8a17c4fb88d07678846f17c24"><td class="memSeparator" colspan="2">&#160;</td></tr>
  230. <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>
  231. <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>
  232. <tr class="separator:a7541e945573a40408181fd63260cafb6"><td class="memSeparator" colspan="2">&#160;</td></tr>
  233. <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>
  234. <tr class="memdesc:ad52f6fe9d50a71976d2bf00be01378e4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Erase an element by iterator. <br /></td></tr>
  235. <tr class="separator:ad52f6fe9d50a71976d2bf00be01378e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
  236. <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>
  237. <tr class="memdesc:af056bc485a0dcade6a0745ee64bbb293"><td class="mdescLeft">&#160;</td><td class="mdescRight">Erase an element by key. <br /></td></tr>
  238. <tr class="separator:af056bc485a0dcade6a0745ee64bbb293"><td class="memSeparator" colspan="2">&#160;</td></tr>
  239. <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>
  240. <tr class="memdesc:a59abad316a005ca41480cad0b8f1015a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Swap the contents of two hash tables. <br /></td></tr>
  241. <tr class="separator:a59abad316a005ca41480cad0b8f1015a"><td class="memSeparator" colspan="2">&#160;</td></tr>
  242. <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>
  243. <tr class="separator:abdbff1cecce246b92c74406b300d0433"><td class="memSeparator" colspan="2">&#160;</td></tr>
  244. </table><table class="memberdecls">
  245. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-methods" name="pro-methods"></a>
  246. Protected Member Functions</h2></td></tr>
  247. <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>
  248. <tr class="memdesc:a3c968f0c587c2e368188247147500307"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get an element by index. <br /></td></tr>
  249. <tr class="separator:a3c968f0c587c2e368188247147500307"><td class="memSeparator" colspan="2">&#160;</td></tr>
  250. <tr class="memitem:a9fc364bfa705f850741658b59a7c93a8" id="r_a9fc364bfa705f850741658b59a7c93a8"><td class="memTemplParams" colspan="2">template&lt;bool InsertAfterGrow = false&gt; </td></tr>
  251. <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>
  252. <tr class="separator:a9fc364bfa705f850741658b59a7c93a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
  253. </table>
  254. <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
  255. <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 />
  256. 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>
  257. </div><h2 class="groupheader">Member Typedef Documentation</h2>
  258. <a id="a2dab10b4f1528f7c3e57ca31813e085e" name="a2dab10b4f1528f7c3e57ca31813e085e"></a>
  259. <h2 class="memtitle"><span class="permalink"><a href="#a2dab10b4f1528f7c3e57ca31813e085e">&#9670;&#160;</a></span>difference_type</h2>
  260. <div class="memitem">
  261. <div class="memproto">
  262. <div class="memtemplate">
  263. template&lt;class Key , class KeyValue , class HashTableDetail , class <a class="el" href="struct_hash.html">Hash</a> , class KeyEqual &gt; </div>
  264. <table class="memname">
  265. <tr>
  266. <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>
  267. </tr>
  268. </table>
  269. </div><div class="memdoc">
  270. </div>
  271. </div>
  272. <a id="aa6e132946e0d852c08166229712780b5" name="aa6e132946e0d852c08166229712780b5"></a>
  273. <h2 class="memtitle"><span class="permalink"><a href="#aa6e132946e0d852c08166229712780b5">&#9670;&#160;</a></span>size_type</h2>
  274. <div class="memitem">
  275. <div class="memproto">
  276. <div class="memtemplate">
  277. template&lt;class Key , class KeyValue , class HashTableDetail , class <a class="el" href="struct_hash.html">Hash</a> , class KeyEqual &gt; </div>
  278. <table class="memname">
  279. <tr>
  280. <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>
  281. </tr>
  282. </table>
  283. </div><div class="memdoc">
  284. </div>
  285. </div>
  286. <a id="a9e0354e8e22ff27d0548a4d5b62b30ed" name="a9e0354e8e22ff27d0548a4d5b62b30ed"></a>
  287. <h2 class="memtitle"><span class="permalink"><a href="#a9e0354e8e22ff27d0548a4d5b62b30ed">&#9670;&#160;</a></span>value_type</h2>
  288. <div class="memitem">
  289. <div class="memproto">
  290. <div class="memtemplate">
  291. template&lt;class Key , class KeyValue , class HashTableDetail , class <a class="el" href="struct_hash.html">Hash</a> , class KeyEqual &gt; </div>
  292. <table class="memname">
  293. <tr>
  294. <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>
  295. </tr>
  296. </table>
  297. </div><div class="memdoc">
  298. <p>Properties. </p>
  299. </div>
  300. </div>
  301. <h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
  302. <a id="a5666542a5c019d4e136ad904420d9c12" name="a5666542a5c019d4e136ad904420d9c12"></a>
  303. <h2 class="memtitle"><span class="permalink"><a href="#a5666542a5c019d4e136ad904420d9c12">&#9670;&#160;</a></span>HashTable() <span class="overload">[1/3]</span></h2>
  304. <div class="memitem">
  305. <div class="memproto">
  306. <div class="memtemplate">
  307. template&lt;class Key , class KeyValue , class HashTableDetail , class <a class="el" href="struct_hash.html">Hash</a> , class KeyEqual &gt; </div>
  308. <table class="mlabels">
  309. <tr>
  310. <td class="mlabels-left">
  311. <table class="memname">
  312. <tr>
  313. <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>
  314. <td>(</td>
  315. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  316. <td></td>
  317. </tr>
  318. </table>
  319. </td>
  320. <td class="mlabels-right">
  321. <span class="mlabels"><span class="mlabel">default</span></span> </td>
  322. </tr>
  323. </table>
  324. </div><div class="memdoc">
  325. <p>Default constructor. </p>
  326. </div>
  327. </div>
  328. <a id="a5229f49c49334a4809200e423f96f9cb" name="a5229f49c49334a4809200e423f96f9cb"></a>
  329. <h2 class="memtitle"><span class="permalink"><a href="#a5229f49c49334a4809200e423f96f9cb">&#9670;&#160;</a></span>HashTable() <span class="overload">[2/3]</span></h2>
  330. <div class="memitem">
  331. <div class="memproto">
  332. <div class="memtemplate">
  333. template&lt;class Key , class KeyValue , class HashTableDetail , class <a class="el" href="struct_hash.html">Hash</a> , class KeyEqual &gt; </div>
  334. <table class="mlabels">
  335. <tr>
  336. <td class="mlabels-left">
  337. <table class="memname">
  338. <tr>
  339. <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>
  340. <td>(</td>
  341. <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>
  342. <td></td>
  343. </tr>
  344. </table>
  345. </td>
  346. <td class="mlabels-right">
  347. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  348. </tr>
  349. </table>
  350. </div><div class="memdoc">
  351. <p>Copy constructor. </p>
  352. </div>
  353. </div>
  354. <a id="a84b110219a8be1df516230e797fda034" name="a84b110219a8be1df516230e797fda034"></a>
  355. <h2 class="memtitle"><span class="permalink"><a href="#a84b110219a8be1df516230e797fda034">&#9670;&#160;</a></span>HashTable() <span class="overload">[3/3]</span></h2>
  356. <div class="memitem">
  357. <div class="memproto">
  358. <div class="memtemplate">
  359. template&lt;class Key , class KeyValue , class HashTableDetail , class <a class="el" href="struct_hash.html">Hash</a> , class KeyEqual &gt; </div>
  360. <table class="mlabels">
  361. <tr>
  362. <td class="mlabels-left">
  363. <table class="memname">
  364. <tr>
  365. <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>
  366. <td>(</td>
  367. <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>
  368. <td></td>
  369. </tr>
  370. </table>
  371. </td>
  372. <td class="mlabels-right">
  373. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
  374. </tr>
  375. </table>
  376. </div><div class="memdoc">
  377. <p>Move constructor. </p>
  378. </div>
  379. </div>
  380. <a id="a636d476adbffc2eb46acf9f39d75760d" name="a636d476adbffc2eb46acf9f39d75760d"></a>
  381. <h2 class="memtitle"><span class="permalink"><a href="#a636d476adbffc2eb46acf9f39d75760d">&#9670;&#160;</a></span>~HashTable()</h2>
  382. <div class="memitem">
  383. <div class="memproto">
  384. <div class="memtemplate">
  385. template&lt;class Key , class KeyValue , class HashTableDetail , class <a class="el" href="struct_hash.html">Hash</a> , class KeyEqual &gt; </div>
  386. <table class="mlabels">
  387. <tr>
  388. <td class="mlabels-left">
  389. <table class="memname">
  390. <tr>
  391. <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>
  392. <td>(</td>
  393. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  394. <td></td>
  395. </tr>
  396. </table>
  397. </td>
  398. <td class="mlabels-right">
  399. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  400. </tr>
  401. </table>
  402. </div><div class="memdoc">
  403. <p>Destructor. </p>
  404. </div>
  405. </div>
  406. <h2 class="groupheader">Member Function Documentation</h2>
  407. <a id="a64d9f63b5f1af4430e033691d985ba23" name="a64d9f63b5f1af4430e033691d985ba23"></a>
  408. <h2 class="memtitle"><span class="permalink"><a href="#a64d9f63b5f1af4430e033691d985ba23">&#9670;&#160;</a></span>begin() <span class="overload">[1/2]</span></h2>
  409. <div class="memitem">
  410. <div class="memproto">
  411. <div class="memtemplate">
  412. template&lt;class Key , class KeyValue , class HashTableDetail , class <a class="el" href="struct_hash.html">Hash</a> , class KeyEqual &gt; </div>
  413. <table class="mlabels">
  414. <tr>
  415. <td class="mlabels-left">
  416. <table class="memname">
  417. <tr>
  418. <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>
  419. <td>(</td>
  420. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  421. <td></td>
  422. </tr>
  423. </table>
  424. </td>
  425. <td class="mlabels-right">
  426. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  427. </tr>
  428. </table>
  429. </div><div class="memdoc">
  430. <p>Iterator to first element. </p>
  431. </div>
  432. </div>
  433. <a id="adbce8b2de5b0269fd0cdc3dde8747e4d" name="adbce8b2de5b0269fd0cdc3dde8747e4d"></a>
  434. <h2 class="memtitle"><span class="permalink"><a href="#adbce8b2de5b0269fd0cdc3dde8747e4d">&#9670;&#160;</a></span>begin() <span class="overload">[2/2]</span></h2>
  435. <div class="memitem">
  436. <div class="memproto">
  437. <div class="memtemplate">
  438. template&lt;class Key , class KeyValue , class HashTableDetail , class <a class="el" href="struct_hash.html">Hash</a> , class KeyEqual &gt; </div>
  439. <table class="mlabels">
  440. <tr>
  441. <td class="mlabels-left">
  442. <table class="memname">
  443. <tr>
  444. <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>
  445. <td>(</td>
  446. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  447. <td> const</td>
  448. </tr>
  449. </table>
  450. </td>
  451. <td class="mlabels-right">
  452. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  453. </tr>
  454. </table>
  455. </div><div class="memdoc">
  456. <p>Iterator to first element. </p>
  457. </div>
  458. </div>
  459. <a id="ade9da55303c18d6212d28515447a9a5b" name="ade9da55303c18d6212d28515447a9a5b"></a>
  460. <h2 class="memtitle"><span class="permalink"><a href="#ade9da55303c18d6212d28515447a9a5b">&#9670;&#160;</a></span>bucket_count()</h2>
  461. <div class="memitem">
  462. <div class="memproto">
  463. <div class="memtemplate">
  464. template&lt;class Key , class KeyValue , class HashTableDetail , class <a class="el" href="struct_hash.html">Hash</a> , class KeyEqual &gt; </div>
  465. <table class="mlabels">
  466. <tr>
  467. <td class="mlabels-left">
  468. <table class="memname">
  469. <tr>
  470. <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>
  471. <td>(</td>
  472. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  473. <td> const</td>
  474. </tr>
  475. </table>
  476. </td>
  477. <td class="mlabels-right">
  478. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  479. </tr>
  480. </table>
  481. </div><div class="memdoc">
  482. <p>Number of buckets in the table. </p>
  483. </div>
  484. </div>
  485. <a id="a5ba58aac4668c7c8906d6f00a7181ee0" name="a5ba58aac4668c7c8906d6f00a7181ee0"></a>
  486. <h2 class="memtitle"><span class="permalink"><a href="#a5ba58aac4668c7c8906d6f00a7181ee0">&#9670;&#160;</a></span>cbegin()</h2>
  487. <div class="memitem">
  488. <div class="memproto">
  489. <div class="memtemplate">
  490. template&lt;class Key , class KeyValue , class HashTableDetail , class <a class="el" href="struct_hash.html">Hash</a> , class KeyEqual &gt; </div>
  491. <table class="mlabels">
  492. <tr>
  493. <td class="mlabels-left">
  494. <table class="memname">
  495. <tr>
  496. <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>
  497. <td>(</td>
  498. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  499. <td> const</td>
  500. </tr>
  501. </table>
  502. </td>
  503. <td class="mlabels-right">
  504. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  505. </tr>
  506. </table>
  507. </div><div class="memdoc">
  508. <p>Iterator to first element. </p>
  509. </div>
  510. </div>
  511. <a id="a7557480de53b5b5b940bb38d46f1a6d5" name="a7557480de53b5b5b940bb38d46f1a6d5"></a>
  512. <h2 class="memtitle"><span class="permalink"><a href="#a7557480de53b5b5b940bb38d46f1a6d5">&#9670;&#160;</a></span>cend()</h2>
  513. <div class="memitem">
  514. <div class="memproto">
  515. <div class="memtemplate">
  516. template&lt;class Key , class KeyValue , class HashTableDetail , class <a class="el" href="struct_hash.html">Hash</a> , class KeyEqual &gt; </div>
  517. <table class="mlabels">
  518. <tr>
  519. <td class="mlabels-left">
  520. <table class="memname">
  521. <tr>
  522. <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>
  523. <td>(</td>
  524. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  525. <td> const</td>
  526. </tr>
  527. </table>
  528. </td>
  529. <td class="mlabels-right">
  530. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  531. </tr>
  532. </table>
  533. </div><div class="memdoc">
  534. <p>Iterator to one beyond last element. </p>
  535. </div>
  536. </div>
  537. <a id="a3c220708a3fb98e6b2b90762cc9fa07f" name="a3c220708a3fb98e6b2b90762cc9fa07f"></a>
  538. <h2 class="memtitle"><span class="permalink"><a href="#a3c220708a3fb98e6b2b90762cc9fa07f">&#9670;&#160;</a></span>clear()</h2>
  539. <div class="memitem">
  540. <div class="memproto">
  541. <div class="memtemplate">
  542. template&lt;class Key , class KeyValue , class HashTableDetail , class <a class="el" href="struct_hash.html">Hash</a> , class KeyEqual &gt; </div>
  543. <table class="mlabels">
  544. <tr>
  545. <td class="mlabels-left">
  546. <table class="memname">
  547. <tr>
  548. <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>
  549. <td>(</td>
  550. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  551. <td></td>
  552. </tr>
  553. </table>
  554. </td>
  555. <td class="mlabels-right">
  556. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  557. </tr>
  558. </table>
  559. </div><div class="memdoc">
  560. <p>Destroy the entire hash table. </p>
  561. </div>
  562. </div>
  563. <a id="aa24e3348e2360519ed0debef8e3fe48b" name="aa24e3348e2360519ed0debef8e3fe48b"></a>
  564. <h2 class="memtitle"><span class="permalink"><a href="#aa24e3348e2360519ed0debef8e3fe48b">&#9670;&#160;</a></span>ClearAndKeepMemory()</h2>
  565. <div class="memitem">
  566. <div class="memproto">
  567. <div class="memtemplate">
  568. template&lt;class Key , class KeyValue , class HashTableDetail , class <a class="el" href="struct_hash.html">Hash</a> , class KeyEqual &gt; </div>
  569. <table class="mlabels">
  570. <tr>
  571. <td class="mlabels-left">
  572. <table class="memname">
  573. <tr>
  574. <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>
  575. <td>(</td>
  576. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  577. <td></td>
  578. </tr>
  579. </table>
  580. </td>
  581. <td class="mlabels-right">
  582. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  583. </tr>
  584. </table>
  585. </div><div class="memdoc">
  586. <p>Destroy the entire hash table but keeps the memory allocated. </p>
  587. </div>
  588. </div>
  589. <a id="aa983a56c22510c95ade8ae48d4da781e" name="aa983a56c22510c95ade8ae48d4da781e"></a>
  590. <h2 class="memtitle"><span class="permalink"><a href="#aa983a56c22510c95ade8ae48d4da781e">&#9670;&#160;</a></span>empty()</h2>
  591. <div class="memitem">
  592. <div class="memproto">
  593. <div class="memtemplate">
  594. template&lt;class Key , class KeyValue , class HashTableDetail , class <a class="el" href="struct_hash.html">Hash</a> , class KeyEqual &gt; </div>
  595. <table class="mlabels">
  596. <tr>
  597. <td class="mlabels-left">
  598. <table class="memname">
  599. <tr>
  600. <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>
  601. <td>(</td>
  602. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  603. <td> const</td>
  604. </tr>
  605. </table>
  606. </td>
  607. <td class="mlabels-right">
  608. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  609. </tr>
  610. </table>
  611. </div><div class="memdoc">
  612. <p>Check if there are no elements in the table. </p>
  613. </div>
  614. </div>
  615. <a id="a3fd1542c6f9087d63323416fda0e08c5" name="a3fd1542c6f9087d63323416fda0e08c5"></a>
  616. <h2 class="memtitle"><span class="permalink"><a href="#a3fd1542c6f9087d63323416fda0e08c5">&#9670;&#160;</a></span>end() <span class="overload">[1/2]</span></h2>
  617. <div class="memitem">
  618. <div class="memproto">
  619. <div class="memtemplate">
  620. template&lt;class Key , class KeyValue , class HashTableDetail , class <a class="el" href="struct_hash.html">Hash</a> , class KeyEqual &gt; </div>
  621. <table class="mlabels">
  622. <tr>
  623. <td class="mlabels-left">
  624. <table class="memname">
  625. <tr>
  626. <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>
  627. <td>(</td>
  628. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  629. <td></td>
  630. </tr>
  631. </table>
  632. </td>
  633. <td class="mlabels-right">
  634. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  635. </tr>
  636. </table>
  637. </div><div class="memdoc">
  638. <p>Iterator to one beyond last element. </p>
  639. </div>
  640. </div>
  641. <a id="a6c3e727ae8276d6da7aae9058d91713e" name="a6c3e727ae8276d6da7aae9058d91713e"></a>
  642. <h2 class="memtitle"><span class="permalink"><a href="#a6c3e727ae8276d6da7aae9058d91713e">&#9670;&#160;</a></span>end() <span class="overload">[2/2]</span></h2>
  643. <div class="memitem">
  644. <div class="memproto">
  645. <div class="memtemplate">
  646. template&lt;class Key , class KeyValue , class HashTableDetail , class <a class="el" href="struct_hash.html">Hash</a> , class KeyEqual &gt; </div>
  647. <table class="mlabels">
  648. <tr>
  649. <td class="mlabels-left">
  650. <table class="memname">
  651. <tr>
  652. <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>
  653. <td>(</td>
  654. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  655. <td> const</td>
  656. </tr>
  657. </table>
  658. </td>
  659. <td class="mlabels-right">
  660. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  661. </tr>
  662. </table>
  663. </div><div class="memdoc">
  664. <p>Iterator to one beyond last element. </p>
  665. </div>
  666. </div>
  667. <a id="ad52f6fe9d50a71976d2bf00be01378e4" name="ad52f6fe9d50a71976d2bf00be01378e4"></a>
  668. <h2 class="memtitle"><span class="permalink"><a href="#ad52f6fe9d50a71976d2bf00be01378e4">&#9670;&#160;</a></span>erase() <span class="overload">[1/2]</span></h2>
  669. <div class="memitem">
  670. <div class="memproto">
  671. <div class="memtemplate">
  672. template&lt;class Key , class KeyValue , class HashTableDetail , class <a class="el" href="struct_hash.html">Hash</a> , class KeyEqual &gt; </div>
  673. <table class="mlabels">
  674. <tr>
  675. <td class="mlabels-left">
  676. <table class="memname">
  677. <tr>
  678. <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>
  679. <td>(</td>
  680. <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>
  681. <td></td>
  682. </tr>
  683. </table>
  684. </td>
  685. <td class="mlabels-right">
  686. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  687. </tr>
  688. </table>
  689. </div><div class="memdoc">
  690. <p>Erase an element by iterator. </p>
  691. </div>
  692. </div>
  693. <a id="af056bc485a0dcade6a0745ee64bbb293" name="af056bc485a0dcade6a0745ee64bbb293"></a>
  694. <h2 class="memtitle"><span class="permalink"><a href="#af056bc485a0dcade6a0745ee64bbb293">&#9670;&#160;</a></span>erase() <span class="overload">[2/2]</span></h2>
  695. <div class="memitem">
  696. <div class="memproto">
  697. <div class="memtemplate">
  698. template&lt;class Key , class KeyValue , class HashTableDetail , class <a class="el" href="struct_hash.html">Hash</a> , class KeyEqual &gt; </div>
  699. <table class="mlabels">
  700. <tr>
  701. <td class="mlabels-left">
  702. <table class="memname">
  703. <tr>
  704. <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>
  705. <td>(</td>
  706. <td class="paramtype">const Key &amp;</td> <td class="paramname"><span class="paramname"><em>inKey</em></span></td><td>)</td>
  707. <td></td>
  708. </tr>
  709. </table>
  710. </td>
  711. <td class="mlabels-right">
  712. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  713. </tr>
  714. </table>
  715. </div><div class="memdoc">
  716. <p>Erase an element by key. </p>
  717. </div>
  718. </div>
  719. <a id="a7541e945573a40408181fd63260cafb6" name="a7541e945573a40408181fd63260cafb6"></a>
  720. <h2 class="memtitle"><span class="permalink"><a href="#a7541e945573a40408181fd63260cafb6">&#9670;&#160;</a></span>find()</h2>
  721. <div class="memitem">
  722. <div class="memproto">
  723. <div class="memtemplate">
  724. template&lt;class Key , class KeyValue , class HashTableDetail , class <a class="el" href="struct_hash.html">Hash</a> , class KeyEqual &gt; </div>
  725. <table class="mlabels">
  726. <tr>
  727. <td class="mlabels-left">
  728. <table class="memname">
  729. <tr>
  730. <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>
  731. <td>(</td>
  732. <td class="paramtype">const Key &amp;</td> <td class="paramname"><span class="paramname"><em>inKey</em></span></td><td>)</td>
  733. <td> const</td>
  734. </tr>
  735. </table>
  736. </td>
  737. <td class="mlabels-right">
  738. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  739. </tr>
  740. </table>
  741. </div><div class="memdoc">
  742. <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>
  743. </div>
  744. </div>
  745. <a id="a3c968f0c587c2e368188247147500307" name="a3c968f0c587c2e368188247147500307"></a>
  746. <h2 class="memtitle"><span class="permalink"><a href="#a3c968f0c587c2e368188247147500307">&#9670;&#160;</a></span>GetElement()</h2>
  747. <div class="memitem">
  748. <div class="memproto">
  749. <div class="memtemplate">
  750. template&lt;class Key , class KeyValue , class HashTableDetail , class <a class="el" href="struct_hash.html">Hash</a> , class KeyEqual &gt; </div>
  751. <table class="mlabels">
  752. <tr>
  753. <td class="mlabels-left">
  754. <table class="memname">
  755. <tr>
  756. <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>
  757. <td>(</td>
  758. <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>
  759. <td> const</td>
  760. </tr>
  761. </table>
  762. </td>
  763. <td class="mlabels-right">
  764. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span> </td>
  765. </tr>
  766. </table>
  767. </div><div class="memdoc">
  768. <p>Get an element by index. </p>
  769. </div>
  770. </div>
  771. <a id="ac4a1aea8a17c4fb88d07678846f17c24" name="ac4a1aea8a17c4fb88d07678846f17c24"></a>
  772. <h2 class="memtitle"><span class="permalink"><a href="#ac4a1aea8a17c4fb88d07678846f17c24">&#9670;&#160;</a></span>insert()</h2>
  773. <div class="memitem">
  774. <div class="memproto">
  775. <div class="memtemplate">
  776. template&lt;class Key , class KeyValue , class HashTableDetail , class <a class="el" href="struct_hash.html">Hash</a> , class KeyEqual &gt; </div>
  777. <table class="mlabels">
  778. <tr>
  779. <td class="mlabels-left">
  780. <table class="memname">
  781. <tr>
  782. <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>
  783. <td>(</td>
  784. <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>
  785. <td></td>
  786. </tr>
  787. </table>
  788. </td>
  789. <td class="mlabels-right">
  790. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  791. </tr>
  792. </table>
  793. </div><div class="memdoc">
  794. <p>Insert a new element, returns iterator and if the element was inserted. </p>
  795. </div>
  796. </div>
  797. <a id="a9fc364bfa705f850741658b59a7c93a8" name="a9fc364bfa705f850741658b59a7c93a8"></a>
  798. <h2 class="memtitle"><span class="permalink"><a href="#a9fc364bfa705f850741658b59a7c93a8">&#9670;&#160;</a></span>InsertKey()</h2>
  799. <div class="memitem">
  800. <div class="memproto">
  801. <div class="memtemplate">
  802. template&lt;class Key , class KeyValue , class HashTableDetail , class <a class="el" href="struct_hash.html">Hash</a> , class KeyEqual &gt; </div>
  803. <div class="memtemplate">
  804. template&lt;bool InsertAfterGrow = false&gt; </div>
  805. <table class="mlabels">
  806. <tr>
  807. <td class="mlabels-left">
  808. <table class="memname">
  809. <tr>
  810. <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>
  811. <td>(</td>
  812. <td class="paramtype">const Key &amp;</td> <td class="paramname"><span class="paramname"><em>inKey</em></span>, </td>
  813. </tr>
  814. <tr>
  815. <td class="paramkey"></td>
  816. <td></td>
  817. <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>
  818. </tr>
  819. </table>
  820. </td>
  821. <td class="mlabels-right">
  822. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span> </td>
  823. </tr>
  824. </table>
  825. </div><div class="memdoc">
  826. <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>
  827. </div>
  828. </div>
  829. <a id="a40281814275bc8c120e63a96e232cbd1" name="a40281814275bc8c120e63a96e232cbd1"></a>
  830. <h2 class="memtitle"><span class="permalink"><a href="#a40281814275bc8c120e63a96e232cbd1">&#9670;&#160;</a></span>max_bucket_count()</h2>
  831. <div class="memitem">
  832. <div class="memproto">
  833. <div class="memtemplate">
  834. template&lt;class Key , class KeyValue , class HashTableDetail , class <a class="el" href="struct_hash.html">Hash</a> , class KeyEqual &gt; </div>
  835. <table class="mlabels">
  836. <tr>
  837. <td class="mlabels-left">
  838. <table class="memname">
  839. <tr>
  840. <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>
  841. <td>(</td>
  842. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  843. <td> const</td>
  844. </tr>
  845. </table>
  846. </td>
  847. <td class="mlabels-right">
  848. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">constexpr</span></span> </td>
  849. </tr>
  850. </table>
  851. </div><div class="memdoc">
  852. <p>Max number of buckets that the table can have. </p>
  853. </div>
  854. </div>
  855. <a id="ab95fc88c65616bd424a596658265594f" name="ab95fc88c65616bd424a596658265594f"></a>
  856. <h2 class="memtitle"><span class="permalink"><a href="#ab95fc88c65616bd424a596658265594f">&#9670;&#160;</a></span>max_load_factor()</h2>
  857. <div class="memitem">
  858. <div class="memproto">
  859. <div class="memtemplate">
  860. template&lt;class Key , class KeyValue , class HashTableDetail , class <a class="el" href="struct_hash.html">Hash</a> , class KeyEqual &gt; </div>
  861. <table class="mlabels">
  862. <tr>
  863. <td class="mlabels-left">
  864. <table class="memname">
  865. <tr>
  866. <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>
  867. <td>(</td>
  868. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  869. <td> const</td>
  870. </tr>
  871. </table>
  872. </td>
  873. <td class="mlabels-right">
  874. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">constexpr</span></span> </td>
  875. </tr>
  876. </table>
  877. </div><div class="memdoc">
  878. <p>Get the max load factor for this table (max number of elements / number of buckets) </p>
  879. </div>
  880. </div>
  881. <a id="a89c0fbd55855fa96624374957e8d807e" name="a89c0fbd55855fa96624374957e8d807e"></a>
  882. <h2 class="memtitle"><span class="permalink"><a href="#a89c0fbd55855fa96624374957e8d807e">&#9670;&#160;</a></span>max_size()</h2>
  883. <div class="memitem">
  884. <div class="memproto">
  885. <div class="memtemplate">
  886. template&lt;class Key , class KeyValue , class HashTableDetail , class <a class="el" href="struct_hash.html">Hash</a> , class KeyEqual &gt; </div>
  887. <table class="mlabels">
  888. <tr>
  889. <td class="mlabels-left">
  890. <table class="memname">
  891. <tr>
  892. <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>
  893. <td>(</td>
  894. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  895. <td> const</td>
  896. </tr>
  897. </table>
  898. </td>
  899. <td class="mlabels-right">
  900. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">constexpr</span></span> </td>
  901. </tr>
  902. </table>
  903. </div><div class="memdoc">
  904. <p>Max number of elements that the table can hold. </p>
  905. </div>
  906. </div>
  907. <a id="affd3cd3786f20a0bff6485f422b040f2" name="affd3cd3786f20a0bff6485f422b040f2"></a>
  908. <h2 class="memtitle"><span class="permalink"><a href="#affd3cd3786f20a0bff6485f422b040f2">&#9670;&#160;</a></span>operator=() <span class="overload">[1/2]</span></h2>
  909. <div class="memitem">
  910. <div class="memproto">
  911. <div class="memtemplate">
  912. template&lt;class Key , class KeyValue , class HashTableDetail , class <a class="el" href="struct_hash.html">Hash</a> , class KeyEqual &gt; </div>
  913. <table class="mlabels">
  914. <tr>
  915. <td class="mlabels-left">
  916. <table class="memname">
  917. <tr>
  918. <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>
  919. <td>(</td>
  920. <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>
  921. <td></td>
  922. </tr>
  923. </table>
  924. </td>
  925. <td class="mlabels-right">
  926. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  927. </tr>
  928. </table>
  929. </div><div class="memdoc">
  930. <p>Assignment operator. </p>
  931. </div>
  932. </div>
  933. <a id="a2a21cffd58e0be50fd71c2cb445b8234" name="a2a21cffd58e0be50fd71c2cb445b8234"></a>
  934. <h2 class="memtitle"><span class="permalink"><a href="#a2a21cffd58e0be50fd71c2cb445b8234">&#9670;&#160;</a></span>operator=() <span class="overload">[2/2]</span></h2>
  935. <div class="memitem">
  936. <div class="memproto">
  937. <div class="memtemplate">
  938. template&lt;class Key , class KeyValue , class HashTableDetail , class <a class="el" href="struct_hash.html">Hash</a> , class KeyEqual &gt; </div>
  939. <table class="mlabels">
  940. <tr>
  941. <td class="mlabels-left">
  942. <table class="memname">
  943. <tr>
  944. <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>
  945. <td>(</td>
  946. <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>
  947. <td></td>
  948. </tr>
  949. </table>
  950. </td>
  951. <td class="mlabels-right">
  952. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
  953. </tr>
  954. </table>
  955. </div><div class="memdoc">
  956. <p>Move assignment operator. </p>
  957. </div>
  958. </div>
  959. <a id="abdbff1cecce246b92c74406b300d0433" name="abdbff1cecce246b92c74406b300d0433"></a>
  960. <h2 class="memtitle"><span class="permalink"><a href="#abdbff1cecce246b92c74406b300d0433">&#9670;&#160;</a></span>rehash()</h2>
  961. <div class="memitem">
  962. <div class="memproto">
  963. <div class="memtemplate">
  964. template&lt;class Key , class KeyValue , class HashTableDetail , class <a class="el" href="struct_hash.html">Hash</a> , class KeyEqual &gt; </div>
  965. <table class="mlabels">
  966. <tr>
  967. <td class="mlabels-left">
  968. <table class="memname">
  969. <tr>
  970. <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>
  971. <td>(</td>
  972. <td class="paramtype"><a class="el" href="#aa6e132946e0d852c08166229712780b5">size_type</a></td> <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  973. <td></td>
  974. </tr>
  975. </table>
  976. </td>
  977. <td class="mlabels-right">
  978. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  979. </tr>
  980. </table>
  981. </div><div class="memdoc">
  982. <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>
  983. </div>
  984. </div>
  985. <a id="a288e464fb83b4fc31f8506ddff191d0b" name="a288e464fb83b4fc31f8506ddff191d0b"></a>
  986. <h2 class="memtitle"><span class="permalink"><a href="#a288e464fb83b4fc31f8506ddff191d0b">&#9670;&#160;</a></span>reserve()</h2>
  987. <div class="memitem">
  988. <div class="memproto">
  989. <div class="memtemplate">
  990. template&lt;class Key , class KeyValue , class HashTableDetail , class <a class="el" href="struct_hash.html">Hash</a> , class KeyEqual &gt; </div>
  991. <table class="mlabels">
  992. <tr>
  993. <td class="mlabels-left">
  994. <table class="memname">
  995. <tr>
  996. <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>
  997. <td>(</td>
  998. <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>
  999. <td></td>
  1000. </tr>
  1001. </table>
  1002. </td>
  1003. <td class="mlabels-right">
  1004. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  1005. </tr>
  1006. </table>
  1007. </div><div class="memdoc">
  1008. <p>Reserve memory for a certain number of elements. </p>
  1009. </div>
  1010. </div>
  1011. <a id="a54c7ec0bad84c09fc0e54160229aa42d" name="a54c7ec0bad84c09fc0e54160229aa42d"></a>
  1012. <h2 class="memtitle"><span class="permalink"><a href="#a54c7ec0bad84c09fc0e54160229aa42d">&#9670;&#160;</a></span>size()</h2>
  1013. <div class="memitem">
  1014. <div class="memproto">
  1015. <div class="memtemplate">
  1016. template&lt;class Key , class KeyValue , class HashTableDetail , class <a class="el" href="struct_hash.html">Hash</a> , class KeyEqual &gt; </div>
  1017. <table class="mlabels">
  1018. <tr>
  1019. <td class="mlabels-left">
  1020. <table class="memname">
  1021. <tr>
  1022. <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>
  1023. <td>(</td>
  1024. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  1025. <td> const</td>
  1026. </tr>
  1027. </table>
  1028. </td>
  1029. <td class="mlabels-right">
  1030. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  1031. </tr>
  1032. </table>
  1033. </div><div class="memdoc">
  1034. <p>Number of elements in the table. </p>
  1035. </div>
  1036. </div>
  1037. <a id="a59abad316a005ca41480cad0b8f1015a" name="a59abad316a005ca41480cad0b8f1015a"></a>
  1038. <h2 class="memtitle"><span class="permalink"><a href="#a59abad316a005ca41480cad0b8f1015a">&#9670;&#160;</a></span>swap()</h2>
  1039. <div class="memitem">
  1040. <div class="memproto">
  1041. <div class="memtemplate">
  1042. template&lt;class Key , class KeyValue , class HashTableDetail , class <a class="el" href="struct_hash.html">Hash</a> , class KeyEqual &gt; </div>
  1043. <table class="mlabels">
  1044. <tr>
  1045. <td class="mlabels-left">
  1046. <table class="memname">
  1047. <tr>
  1048. <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>
  1049. <td>(</td>
  1050. <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>
  1051. <td></td>
  1052. </tr>
  1053. </table>
  1054. </td>
  1055. <td class="mlabels-right">
  1056. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
  1057. </tr>
  1058. </table>
  1059. </div><div class="memdoc">
  1060. <p>Swap the contents of two hash tables. </p>
  1061. </div>
  1062. </div>
  1063. <hr/>The documentation for this class was generated from the following file:<ul>
  1064. <li>Jolt/Core/<a class="el" href="_hash_table_8h_source.html">HashTable.h</a></li>
  1065. </ul>
  1066. </div><!-- contents -->
  1067. </div><!-- doc-content -->
  1068. <!-- start footer part -->
  1069. <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  1070. <ul>
  1071. <li class="navelem"><a class="el" href="class_hash_table.html">HashTable</a></li>
  1072. <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>
  1073. </ul>
  1074. </div>
  1075. </body>
  1076. </html>