class_hash_table.html 65 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145
  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. <table class="memberdecls">
  117. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
  118. Classes</h2></td></tr>
  119. <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>
  120. <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>
  121. <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
  122. <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>
  123. <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>
  124. <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
  125. </table><table class="memberdecls">
  126. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-types" name="pub-types"></a>
  127. Public Types</h2></td></tr>
  128. <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>
  129. <tr class="memdesc:a9e0354e8e22ff27d0548a4d5b62b30ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Properties. <br /></td></tr>
  130. <tr class="separator:a9e0354e8e22ff27d0548a4d5b62b30ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
  131. <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>
  132. <tr class="separator:aa6e132946e0d852c08166229712780b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
  133. <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>
  134. <tr class="separator:a2dab10b4f1528f7c3e57ca31813e085e"><td class="memSeparator" colspan="2">&#160;</td></tr>
  135. </table><table class="memberdecls">
  136. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
  137. Public Member Functions</h2></td></tr>
  138. <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>
  139. <tr class="memdesc:a5666542a5c019d4e136ad904420d9c12"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor. <br /></td></tr>
  140. <tr class="separator:a5666542a5c019d4e136ad904420d9c12"><td class="memSeparator" colspan="2">&#160;</td></tr>
  141. <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>
  142. <tr class="memdesc:a5229f49c49334a4809200e423f96f9cb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor. <br /></td></tr>
  143. <tr class="separator:a5229f49c49334a4809200e423f96f9cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
  144. <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>
  145. <tr class="memdesc:a84b110219a8be1df516230e797fda034"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move constructor. <br /></td></tr>
  146. <tr class="separator:a84b110219a8be1df516230e797fda034"><td class="memSeparator" colspan="2">&#160;</td></tr>
  147. <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>
  148. <tr class="memdesc:affd3cd3786f20a0bff6485f422b040f2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Assignment operator. <br /></td></tr>
  149. <tr class="separator:affd3cd3786f20a0bff6485f422b040f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
  150. <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>
  151. <tr class="memdesc:a2a21cffd58e0be50fd71c2cb445b8234"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move assignment operator. <br /></td></tr>
  152. <tr class="separator:a2a21cffd58e0be50fd71c2cb445b8234"><td class="memSeparator" colspan="2">&#160;</td></tr>
  153. <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>
  154. <tr class="memdesc:a636d476adbffc2eb46acf9f39d75760d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor. <br /></td></tr>
  155. <tr class="separator:a636d476adbffc2eb46acf9f39d75760d"><td class="memSeparator" colspan="2">&#160;</td></tr>
  156. <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>
  157. <tr class="memdesc:a288e464fb83b4fc31f8506ddff191d0b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reserve memory for a certain number of elements. <br /></td></tr>
  158. <tr class="separator:a288e464fb83b4fc31f8506ddff191d0b"><td class="memSeparator" colspan="2">&#160;</td></tr>
  159. <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>
  160. <tr class="memdesc:a3c220708a3fb98e6b2b90762cc9fa07f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroy the entire hash table. <br /></td></tr>
  161. <tr class="separator:a3c220708a3fb98e6b2b90762cc9fa07f"><td class="memSeparator" colspan="2">&#160;</td></tr>
  162. <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>
  163. <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>
  164. <tr class="separator:aa24e3348e2360519ed0debef8e3fe48b"><td class="memSeparator" colspan="2">&#160;</td></tr>
  165. <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>
  166. <tr class="memdesc:a64d9f63b5f1af4430e033691d985ba23"><td class="mdescLeft">&#160;</td><td class="mdescRight">Iterator to first element. <br /></td></tr>
  167. <tr class="separator:a64d9f63b5f1af4430e033691d985ba23"><td class="memSeparator" colspan="2">&#160;</td></tr>
  168. <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>
  169. <tr class="memdesc:a3fd1542c6f9087d63323416fda0e08c5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Iterator to one beyond last element. <br /></td></tr>
  170. <tr class="separator:a3fd1542c6f9087d63323416fda0e08c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
  171. <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>
  172. <tr class="memdesc:adbce8b2de5b0269fd0cdc3dde8747e4d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Iterator to first element. <br /></td></tr>
  173. <tr class="separator:adbce8b2de5b0269fd0cdc3dde8747e4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
  174. <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>
  175. <tr class="memdesc:a6c3e727ae8276d6da7aae9058d91713e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Iterator to one beyond last element. <br /></td></tr>
  176. <tr class="separator:a6c3e727ae8276d6da7aae9058d91713e"><td class="memSeparator" colspan="2">&#160;</td></tr>
  177. <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>
  178. <tr class="memdesc:a5ba58aac4668c7c8906d6f00a7181ee0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Iterator to first element. <br /></td></tr>
  179. <tr class="separator:a5ba58aac4668c7c8906d6f00a7181ee0"><td class="memSeparator" colspan="2">&#160;</td></tr>
  180. <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>
  181. <tr class="memdesc:a7557480de53b5b5b940bb38d46f1a6d5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Iterator to one beyond last element. <br /></td></tr>
  182. <tr class="separator:a7557480de53b5b5b940bb38d46f1a6d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
  183. <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>
  184. <tr class="memdesc:ade9da55303c18d6212d28515447a9a5b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of buckets in the table. <br /></td></tr>
  185. <tr class="separator:ade9da55303c18d6212d28515447a9a5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
  186. <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>
  187. <tr class="memdesc:a40281814275bc8c120e63a96e232cbd1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Max number of buckets that the table can have. <br /></td></tr>
  188. <tr class="separator:a40281814275bc8c120e63a96e232cbd1"><td class="memSeparator" colspan="2">&#160;</td></tr>
  189. <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>
  190. <tr class="memdesc:aa983a56c22510c95ade8ae48d4da781e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if there are no elements in the table. <br /></td></tr>
  191. <tr class="separator:aa983a56c22510c95ade8ae48d4da781e"><td class="memSeparator" colspan="2">&#160;</td></tr>
  192. <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>
  193. <tr class="memdesc:a54c7ec0bad84c09fc0e54160229aa42d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of elements in the table. <br /></td></tr>
  194. <tr class="separator:a54c7ec0bad84c09fc0e54160229aa42d"><td class="memSeparator" colspan="2">&#160;</td></tr>
  195. <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>
  196. <tr class="memdesc:a89c0fbd55855fa96624374957e8d807e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Max number of elements that the table can hold. <br /></td></tr>
  197. <tr class="separator:a89c0fbd55855fa96624374957e8d807e"><td class="memSeparator" colspan="2">&#160;</td></tr>
  198. <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>
  199. <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>
  200. <tr class="separator:ab95fc88c65616bd424a596658265594f"><td class="memSeparator" colspan="2">&#160;</td></tr>
  201. <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>
  202. <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>
  203. <tr class="separator:ac4a1aea8a17c4fb88d07678846f17c24"><td class="memSeparator" colspan="2">&#160;</td></tr>
  204. <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>
  205. <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>
  206. <tr class="separator:a7541e945573a40408181fd63260cafb6"><td class="memSeparator" colspan="2">&#160;</td></tr>
  207. <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>
  208. <tr class="memdesc:ad52f6fe9d50a71976d2bf00be01378e4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Erase an element by iterator. <br /></td></tr>
  209. <tr class="separator:ad52f6fe9d50a71976d2bf00be01378e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
  210. <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>
  211. <tr class="memdesc:af056bc485a0dcade6a0745ee64bbb293"><td class="mdescLeft">&#160;</td><td class="mdescRight">Erase an element by key. <br /></td></tr>
  212. <tr class="separator:af056bc485a0dcade6a0745ee64bbb293"><td class="memSeparator" colspan="2">&#160;</td></tr>
  213. <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>
  214. <tr class="memdesc:a59abad316a005ca41480cad0b8f1015a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Swap the contents of two hash tables. <br /></td></tr>
  215. <tr class="separator:a59abad316a005ca41480cad0b8f1015a"><td class="memSeparator" colspan="2">&#160;</td></tr>
  216. <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>
  217. <tr class="separator:abdbff1cecce246b92c74406b300d0433"><td class="memSeparator" colspan="2">&#160;</td></tr>
  218. </table><table class="memberdecls">
  219. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-methods" name="pro-methods"></a>
  220. Protected Member Functions</h2></td></tr>
  221. <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>
  222. <tr class="memdesc:a3c968f0c587c2e368188247147500307"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get an element by index. <br /></td></tr>
  223. <tr class="separator:a3c968f0c587c2e368188247147500307"><td class="memSeparator" colspan="2">&#160;</td></tr>
  224. <tr class="memitem:a9fc364bfa705f850741658b59a7c93a8" id="r_a9fc364bfa705f850741658b59a7c93a8"><td class="memTemplParams" colspan="2">template&lt;bool InsertAfterGrow = false&gt; </td></tr>
  225. <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>
  226. <tr class="separator:a9fc364bfa705f850741658b59a7c93a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
  227. </table>
  228. <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
  229. <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 />
  230. 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>
  231. </div><h2 class="groupheader">Member Typedef Documentation</h2>
  232. <a id="a2dab10b4f1528f7c3e57ca31813e085e" name="a2dab10b4f1528f7c3e57ca31813e085e"></a>
  233. <h2 class="memtitle"><span class="permalink"><a href="#a2dab10b4f1528f7c3e57ca31813e085e">&#9670;&#160;</a></span>difference_type</h2>
  234. <div class="memitem">
  235. <div class="memproto">
  236. <div class="memtemplate">
  237. template&lt;class Key , class KeyValue , class HashTableDetail , class <a class="el" href="struct_hash.html">Hash</a> , class KeyEqual &gt; </div>
  238. <table class="memname">
  239. <tr>
  240. <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>
  241. </tr>
  242. </table>
  243. </div><div class="memdoc">
  244. </div>
  245. </div>
  246. <a id="aa6e132946e0d852c08166229712780b5" name="aa6e132946e0d852c08166229712780b5"></a>
  247. <h2 class="memtitle"><span class="permalink"><a href="#aa6e132946e0d852c08166229712780b5">&#9670;&#160;</a></span>size_type</h2>
  248. <div class="memitem">
  249. <div class="memproto">
  250. <div class="memtemplate">
  251. template&lt;class Key , class KeyValue , class HashTableDetail , class <a class="el" href="struct_hash.html">Hash</a> , class KeyEqual &gt; </div>
  252. <table class="memname">
  253. <tr>
  254. <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>
  255. </tr>
  256. </table>
  257. </div><div class="memdoc">
  258. </div>
  259. </div>
  260. <a id="a9e0354e8e22ff27d0548a4d5b62b30ed" name="a9e0354e8e22ff27d0548a4d5b62b30ed"></a>
  261. <h2 class="memtitle"><span class="permalink"><a href="#a9e0354e8e22ff27d0548a4d5b62b30ed">&#9670;&#160;</a></span>value_type</h2>
  262. <div class="memitem">
  263. <div class="memproto">
  264. <div class="memtemplate">
  265. template&lt;class Key , class KeyValue , class HashTableDetail , class <a class="el" href="struct_hash.html">Hash</a> , class KeyEqual &gt; </div>
  266. <table class="memname">
  267. <tr>
  268. <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>
  269. </tr>
  270. </table>
  271. </div><div class="memdoc">
  272. <p>Properties. </p>
  273. </div>
  274. </div>
  275. <h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
  276. <a id="a5666542a5c019d4e136ad904420d9c12" name="a5666542a5c019d4e136ad904420d9c12"></a>
  277. <h2 class="memtitle"><span class="permalink"><a href="#a5666542a5c019d4e136ad904420d9c12">&#9670;&#160;</a></span>HashTable() <span class="overload">[1/3]</span></h2>
  278. <div class="memitem">
  279. <div class="memproto">
  280. <div class="memtemplate">
  281. template&lt;class Key , class KeyValue , class HashTableDetail , class <a class="el" href="struct_hash.html">Hash</a> , class KeyEqual &gt; </div>
  282. <table class="mlabels">
  283. <tr>
  284. <td class="mlabels-left">
  285. <table class="memname">
  286. <tr>
  287. <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>
  288. <td>(</td>
  289. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  290. <td></td>
  291. </tr>
  292. </table>
  293. </td>
  294. <td class="mlabels-right">
  295. <span class="mlabels"><span class="mlabel">default</span></span> </td>
  296. </tr>
  297. </table>
  298. </div><div class="memdoc">
  299. <p>Default constructor. </p>
  300. </div>
  301. </div>
  302. <a id="a5229f49c49334a4809200e423f96f9cb" name="a5229f49c49334a4809200e423f96f9cb"></a>
  303. <h2 class="memtitle"><span class="permalink"><a href="#a5229f49c49334a4809200e423f96f9cb">&#9670;&#160;</a></span>HashTable() <span class="overload">[2/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="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>
  316. <td></td>
  317. </tr>
  318. </table>
  319. </td>
  320. <td class="mlabels-right">
  321. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  322. </tr>
  323. </table>
  324. </div><div class="memdoc">
  325. <p>Copy constructor. </p>
  326. </div>
  327. </div>
  328. <a id="a84b110219a8be1df516230e797fda034" name="a84b110219a8be1df516230e797fda034"></a>
  329. <h2 class="memtitle"><span class="permalink"><a href="#a84b110219a8be1df516230e797fda034">&#9670;&#160;</a></span>HashTable() <span class="overload">[3/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"><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>
  342. <td></td>
  343. </tr>
  344. </table>
  345. </td>
  346. <td class="mlabels-right">
  347. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
  348. </tr>
  349. </table>
  350. </div><div class="memdoc">
  351. <p>Move constructor. </p>
  352. </div>
  353. </div>
  354. <a id="a636d476adbffc2eb46acf9f39d75760d" name="a636d476adbffc2eb46acf9f39d75760d"></a>
  355. <h2 class="memtitle"><span class="permalink"><a href="#a636d476adbffc2eb46acf9f39d75760d">&#9670;&#160;</a></span>~HashTable()</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="paramname"><span class="paramname"><em></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> </td>
  374. </tr>
  375. </table>
  376. </div><div class="memdoc">
  377. <p>Destructor. </p>
  378. </div>
  379. </div>
  380. <h2 class="groupheader">Member Function Documentation</h2>
  381. <a id="a64d9f63b5f1af4430e033691d985ba23" name="a64d9f63b5f1af4430e033691d985ba23"></a>
  382. <h2 class="memtitle"><span class="permalink"><a href="#a64d9f63b5f1af4430e033691d985ba23">&#9670;&#160;</a></span>begin() <span class="overload">[1/2]</span></h2>
  383. <div class="memitem">
  384. <div class="memproto">
  385. <div class="memtemplate">
  386. template&lt;class Key , class KeyValue , class HashTableDetail , class <a class="el" href="struct_hash.html">Hash</a> , class KeyEqual &gt; </div>
  387. <table class="mlabels">
  388. <tr>
  389. <td class="mlabels-left">
  390. <table class="memname">
  391. <tr>
  392. <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>
  393. <td>(</td>
  394. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  395. <td></td>
  396. </tr>
  397. </table>
  398. </td>
  399. <td class="mlabels-right">
  400. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  401. </tr>
  402. </table>
  403. </div><div class="memdoc">
  404. <p>Iterator to first element. </p>
  405. </div>
  406. </div>
  407. <a id="adbce8b2de5b0269fd0cdc3dde8747e4d" name="adbce8b2de5b0269fd0cdc3dde8747e4d"></a>
  408. <h2 class="memtitle"><span class="permalink"><a href="#adbce8b2de5b0269fd0cdc3dde8747e4d">&#9670;&#160;</a></span>begin() <span class="overload">[2/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_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>
  419. <td>(</td>
  420. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  421. <td> const</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="ade9da55303c18d6212d28515447a9a5b" name="ade9da55303c18d6212d28515447a9a5b"></a>
  434. <h2 class="memtitle"><span class="permalink"><a href="#ade9da55303c18d6212d28515447a9a5b">&#9670;&#160;</a></span>bucket_count()</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="#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>
  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>Number of buckets in the table. </p>
  457. </div>
  458. </div>
  459. <a id="a5ba58aac4668c7c8906d6f00a7181ee0" name="a5ba58aac4668c7c8906d6f00a7181ee0"></a>
  460. <h2 class="memtitle"><span class="permalink"><a href="#a5ba58aac4668c7c8906d6f00a7181ee0">&#9670;&#160;</a></span>cbegin()</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="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>
  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>Iterator to first element. </p>
  483. </div>
  484. </div>
  485. <a id="a7557480de53b5b5b940bb38d46f1a6d5" name="a7557480de53b5b5b940bb38d46f1a6d5"></a>
  486. <h2 class="memtitle"><span class="permalink"><a href="#a7557480de53b5b5b940bb38d46f1a6d5">&#9670;&#160;</a></span>cend()</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;::cend </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 one beyond last element. </p>
  509. </div>
  510. </div>
  511. <a id="a3c220708a3fb98e6b2b90762cc9fa07f" name="a3c220708a3fb98e6b2b90762cc9fa07f"></a>
  512. <h2 class="memtitle"><span class="permalink"><a href="#a3c220708a3fb98e6b2b90762cc9fa07f">&#9670;&#160;</a></span>clear()</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">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>
  523. <td>(</td>
  524. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  525. <td></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>Destroy the entire hash table. </p>
  535. </div>
  536. </div>
  537. <a id="aa24e3348e2360519ed0debef8e3fe48b" name="aa24e3348e2360519ed0debef8e3fe48b"></a>
  538. <h2 class="memtitle"><span class="permalink"><a href="#aa24e3348e2360519ed0debef8e3fe48b">&#9670;&#160;</a></span>ClearAndKeepMemory()</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;::ClearAndKeepMemory </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 but keeps the memory allocated. </p>
  561. </div>
  562. </div>
  563. <a id="aa983a56c22510c95ade8ae48d4da781e" name="aa983a56c22510c95ade8ae48d4da781e"></a>
  564. <h2 class="memtitle"><span class="permalink"><a href="#aa983a56c22510c95ade8ae48d4da781e">&#9670;&#160;</a></span>empty()</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">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>
  575. <td>(</td>
  576. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  577. <td> const</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>Check if there are no elements in the table. </p>
  587. </div>
  588. </div>
  589. <a id="a3fd1542c6f9087d63323416fda0e08c5" name="a3fd1542c6f9087d63323416fda0e08c5"></a>
  590. <h2 class="memtitle"><span class="permalink"><a href="#a3fd1542c6f9087d63323416fda0e08c5">&#9670;&#160;</a></span>end() <span class="overload">[1/2]</span></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"><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>
  601. <td>(</td>
  602. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  603. <td></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>Iterator to one beyond last element. </p>
  613. </div>
  614. </div>
  615. <a id="a6c3e727ae8276d6da7aae9058d91713e" name="a6c3e727ae8276d6da7aae9058d91713e"></a>
  616. <h2 class="memtitle"><span class="permalink"><a href="#a6c3e727ae8276d6da7aae9058d91713e">&#9670;&#160;</a></span>end() <span class="overload">[2/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_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>
  627. <td>(</td>
  628. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  629. <td> const</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="ad52f6fe9d50a71976d2bf00be01378e4" name="ad52f6fe9d50a71976d2bf00be01378e4"></a>
  642. <h2 class="memtitle"><span class="permalink"><a href="#ad52f6fe9d50a71976d2bf00be01378e4">&#9670;&#160;</a></span>erase() <span class="overload">[1/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">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>
  653. <td>(</td>
  654. <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>
  655. <td></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>Erase an element by iterator. </p>
  665. </div>
  666. </div>
  667. <a id="af056bc485a0dcade6a0745ee64bbb293" name="af056bc485a0dcade6a0745ee64bbb293"></a>
  668. <h2 class="memtitle"><span class="permalink"><a href="#af056bc485a0dcade6a0745ee64bbb293">&#9670;&#160;</a></span>erase() <span class="overload">[2/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"><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>
  679. <td>(</td>
  680. <td class="paramtype">const Key &amp;</td> <td class="paramname"><span class="paramname"><em>inKey</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 key. </p>
  691. </div>
  692. </div>
  693. <a id="a7541e945573a40408181fd63260cafb6" name="a7541e945573a40408181fd63260cafb6"></a>
  694. <h2 class="memtitle"><span class="permalink"><a href="#a7541e945573a40408181fd63260cafb6">&#9670;&#160;</a></span>find()</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="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>
  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> const</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>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>
  717. </div>
  718. </div>
  719. <a id="a3c968f0c587c2e368188247147500307" name="a3c968f0c587c2e368188247147500307"></a>
  720. <h2 class="memtitle"><span class="permalink"><a href="#a3c968f0c587c2e368188247147500307">&#9670;&#160;</a></span>GetElement()</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">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>
  731. <td>(</td>
  732. <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>
  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 class="mlabel">protected</span></span> </td>
  739. </tr>
  740. </table>
  741. </div><div class="memdoc">
  742. <p>Get an element by index. </p>
  743. </div>
  744. </div>
  745. <a id="ac4a1aea8a17c4fb88d07678846f17c24" name="ac4a1aea8a17c4fb88d07678846f17c24"></a>
  746. <h2 class="memtitle"><span class="permalink"><a href="#ac4a1aea8a17c4fb88d07678846f17c24">&#9670;&#160;</a></span>insert()</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">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>
  757. <td>(</td>
  758. <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>
  759. <td></td>
  760. </tr>
  761. </table>
  762. </td>
  763. <td class="mlabels-right">
  764. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  765. </tr>
  766. </table>
  767. </div><div class="memdoc">
  768. <p>Insert a new element, returns iterator and if the element was inserted. </p>
  769. </div>
  770. </div>
  771. <a id="a9fc364bfa705f850741658b59a7c93a8" name="a9fc364bfa705f850741658b59a7c93a8"></a>
  772. <h2 class="memtitle"><span class="permalink"><a href="#a9fc364bfa705f850741658b59a7c93a8">&#9670;&#160;</a></span>InsertKey()</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. <div class="memtemplate">
  778. template&lt;bool InsertAfterGrow = false&gt; </div>
  779. <table class="mlabels">
  780. <tr>
  781. <td class="mlabels-left">
  782. <table class="memname">
  783. <tr>
  784. <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>
  785. <td>(</td>
  786. <td class="paramtype">const Key &amp;</td> <td class="paramname"><span class="paramname"><em>inKey</em></span>, </td>
  787. </tr>
  788. <tr>
  789. <td class="paramkey"></td>
  790. <td></td>
  791. <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>
  792. </tr>
  793. </table>
  794. </td>
  795. <td class="mlabels-right">
  796. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span> </td>
  797. </tr>
  798. </table>
  799. </div><div class="memdoc">
  800. <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>
  801. </div>
  802. </div>
  803. <a id="a40281814275bc8c120e63a96e232cbd1" name="a40281814275bc8c120e63a96e232cbd1"></a>
  804. <h2 class="memtitle"><span class="permalink"><a href="#a40281814275bc8c120e63a96e232cbd1">&#9670;&#160;</a></span>max_bucket_count()</h2>
  805. <div class="memitem">
  806. <div class="memproto">
  807. <div class="memtemplate">
  808. template&lt;class Key , class KeyValue , class HashTableDetail , class <a class="el" href="struct_hash.html">Hash</a> , class KeyEqual &gt; </div>
  809. <table class="mlabels">
  810. <tr>
  811. <td class="mlabels-left">
  812. <table class="memname">
  813. <tr>
  814. <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>
  815. <td>(</td>
  816. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  817. <td> const</td>
  818. </tr>
  819. </table>
  820. </td>
  821. <td class="mlabels-right">
  822. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">constexpr</span></span> </td>
  823. </tr>
  824. </table>
  825. </div><div class="memdoc">
  826. <p>Max number of buckets that the table can have. </p>
  827. </div>
  828. </div>
  829. <a id="ab95fc88c65616bd424a596658265594f" name="ab95fc88c65616bd424a596658265594f"></a>
  830. <h2 class="memtitle"><span class="permalink"><a href="#ab95fc88c65616bd424a596658265594f">&#9670;&#160;</a></span>max_load_factor()</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">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>
  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>Get the max load factor for this table (max number of elements / number of buckets) </p>
  853. </div>
  854. </div>
  855. <a id="a89c0fbd55855fa96624374957e8d807e" name="a89c0fbd55855fa96624374957e8d807e"></a>
  856. <h2 class="memtitle"><span class="permalink"><a href="#a89c0fbd55855fa96624374957e8d807e">&#9670;&#160;</a></span>max_size()</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"><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>
  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>Max number of elements that the table can hold. </p>
  879. </div>
  880. </div>
  881. <a id="affd3cd3786f20a0bff6485f422b040f2" name="affd3cd3786f20a0bff6485f422b040f2"></a>
  882. <h2 class="memtitle"><span class="permalink"><a href="#affd3cd3786f20a0bff6485f422b040f2">&#9670;&#160;</a></span>operator=() <span class="overload">[1/2]</span></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="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>
  893. <td>(</td>
  894. <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>
  895. <td></td>
  896. </tr>
  897. </table>
  898. </td>
  899. <td class="mlabels-right">
  900. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  901. </tr>
  902. </table>
  903. </div><div class="memdoc">
  904. <p>Assignment operator. </p>
  905. </div>
  906. </div>
  907. <a id="a2a21cffd58e0be50fd71c2cb445b8234" name="a2a21cffd58e0be50fd71c2cb445b8234"></a>
  908. <h2 class="memtitle"><span class="permalink"><a href="#a2a21cffd58e0be50fd71c2cb445b8234">&#9670;&#160;</a></span>operator=() <span class="overload">[2/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"><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>
  921. <td></td>
  922. </tr>
  923. </table>
  924. </td>
  925. <td class="mlabels-right">
  926. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
  927. </tr>
  928. </table>
  929. </div><div class="memdoc">
  930. <p>Move assignment operator. </p>
  931. </div>
  932. </div>
  933. <a id="abdbff1cecce246b92c74406b300d0433" name="abdbff1cecce246b92c74406b300d0433"></a>
  934. <h2 class="memtitle"><span class="permalink"><a href="#abdbff1cecce246b92c74406b300d0433">&#9670;&#160;</a></span>rehash()</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">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>
  945. <td>(</td>
  946. <td class="paramtype"><a class="el" href="#aa6e132946e0d852c08166229712780b5">size_type</a></td> <td class="paramname"><span class="paramname"><em></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> </td>
  953. </tr>
  954. </table>
  955. </div><div class="memdoc">
  956. <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>
  957. </div>
  958. </div>
  959. <a id="a288e464fb83b4fc31f8506ddff191d0b" name="a288e464fb83b4fc31f8506ddff191d0b"></a>
  960. <h2 class="memtitle"><span class="permalink"><a href="#a288e464fb83b4fc31f8506ddff191d0b">&#9670;&#160;</a></span>reserve()</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;::reserve </td>
  971. <td>(</td>
  972. <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>
  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>Reserve memory for a certain number of elements. </p>
  983. </div>
  984. </div>
  985. <a id="a54c7ec0bad84c09fc0e54160229aa42d" name="a54c7ec0bad84c09fc0e54160229aa42d"></a>
  986. <h2 class="memtitle"><span class="permalink"><a href="#a54c7ec0bad84c09fc0e54160229aa42d">&#9670;&#160;</a></span>size()</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"><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>
  997. <td>(</td>
  998. <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
  999. <td> const</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>Number of elements in the table. </p>
  1009. </div>
  1010. </div>
  1011. <a id="a59abad316a005ca41480cad0b8f1015a" name="a59abad316a005ca41480cad0b8f1015a"></a>
  1012. <h2 class="memtitle"><span class="permalink"><a href="#a59abad316a005ca41480cad0b8f1015a">&#9670;&#160;</a></span>swap()</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">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>
  1023. <td>(</td>
  1024. <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>
  1025. <td></td>
  1026. </tr>
  1027. </table>
  1028. </td>
  1029. <td class="mlabels-right">
  1030. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
  1031. </tr>
  1032. </table>
  1033. </div><div class="memdoc">
  1034. <p>Swap the contents of two hash tables. </p>
  1035. </div>
  1036. </div>
  1037. <hr/>The documentation for this class was generated from the following file:<ul>
  1038. <li>Jolt/Core/<a class="el" href="_hash_table_8h_source.html">HashTable.h</a></li>
  1039. </ul>
  1040. </div><!-- contents -->
  1041. </div><!-- doc-content -->
  1042. <!-- start footer part -->
  1043. <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  1044. <ul>
  1045. <li class="navelem"><a class="el" href="class_hash_table.html">HashTable</a></li>
  1046. <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>
  1047. </ul>
  1048. </div>
  1049. </body>
  1050. </html>