Sophie

Sophie

distrib > Mageia > 7 > armv7hl > media > core-updates > by-pkgid > bfb47da7e0322bcb0e23e4b1838d9db9 > files > 2975

libstdc++-docs-8.4.0-1.mga7.noarch.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.15"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libstdc++: std::_Hashtable&lt; _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
  $(document).ready(initResizable);
/* @license-end */</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">libstdc++
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.15 -->
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('a05583.html','');});
/* @license-end */
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pri-types">Private Types</a> &#124;
<a href="#pri-methods">Private Member Functions</a> &#124;
<a href="#friends">Friends</a> &#124;
<a href="a05580.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">std::_Hashtable&lt; _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits &gt; Class Template Reference<div class="ingroups"><a class="el" href="a01463.html">Containers</a> &raquo; <a class="el" href="a01466.html">Unordered Associative</a> &raquo; <a class="el" href="a01491.html">Base and Implementation Classes</a></div></div>  </div>
</div><!--header-->
<div class="contents">
<div class="dynheader">
Inheritance diagram for std::_Hashtable&lt; _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits &gt;:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="a05582.svg" width="100%" height="600"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a7069d707e0220b9113cdd6d3e8ddc8f5"><td class="memItemLeft" align="right" valign="top"><a id="a7069d707e0220b9113cdd6d3e8ddc8f5"></a>
typedef _Alloc&#160;</td><td class="memItemRight" valign="bottom"><b>allocator_type</b></td></tr>
<tr class="separator:a7069d707e0220b9113cdd6d3e8ddc8f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a90efa9d706f56915eb4068ce0699ad35"><td class="memItemLeft" align="right" valign="top"><a id="a90efa9d706f56915eb4068ce0699ad35"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>const_iterator</b> = typename <a class="el" href="a05647.html">__hashtable_base::const_iterator</a></td></tr>
<tr class="separator:a90efa9d706f56915eb4068ce0699ad35"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a30f345efa73277abf501de5b95bec07d"><td class="memItemLeft" align="right" valign="top"><a id="a30f345efa73277abf501de5b95bec07d"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>const_local_iterator</b> = typename <a class="el" href="a05775.html">__hashtable_base::const_local_iterator</a></td></tr>
<tr class="separator:a30f345efa73277abf501de5b95bec07d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a480171d4ac3fe86f59f085309cc2de2a"><td class="memItemLeft" align="right" valign="top"><a id="a480171d4ac3fe86f59f085309cc2de2a"></a>
typedef __value_alloc_traits::const_pointer&#160;</td><td class="memItemRight" valign="bottom"><b>const_pointer</b></td></tr>
<tr class="separator:a480171d4ac3fe86f59f085309cc2de2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5cc58c5c69280c4fdea9ba79b1b60e7b"><td class="memItemLeft" align="right" valign="top"><a id="a5cc58c5c69280c4fdea9ba79b1b60e7b"></a>
typedef const value_type &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>const_reference</b></td></tr>
<tr class="separator:a5cc58c5c69280c4fdea9ba79b1b60e7b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af59750b8b4bcd9e7eda3482805c556a0"><td class="memItemLeft" align="right" valign="top"><a id="af59750b8b4bcd9e7eda3482805c556a0"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>difference_type</b> = typename __hashtable_base::difference_type</td></tr>
<tr class="separator:af59750b8b4bcd9e7eda3482805c556a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae40513658333ed8f27f0cb2b0978685c"><td class="memItemLeft" align="right" valign="top"><a id="ae40513658333ed8f27f0cb2b0978685c"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>iterator</b> = typename <a class="el" href="a05643.html">__hashtable_base::iterator</a></td></tr>
<tr class="separator:ae40513658333ed8f27f0cb2b0978685c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a62c381ae1927d6c83f83c2d20542c7f2"><td class="memItemLeft" align="right" valign="top"><a id="a62c381ae1927d6c83f83c2d20542c7f2"></a>
typedef _Equal&#160;</td><td class="memItemRight" valign="bottom"><b>key_equal</b></td></tr>
<tr class="separator:a62c381ae1927d6c83f83c2d20542c7f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a888bfe1feacf262b0ea5d9cc9464011c"><td class="memItemLeft" align="right" valign="top"><a id="a888bfe1feacf262b0ea5d9cc9464011c"></a>
typedef _Key&#160;</td><td class="memItemRight" valign="bottom"><b>key_type</b></td></tr>
<tr class="separator:a888bfe1feacf262b0ea5d9cc9464011c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4a001ea03e4a6b30b5e89dc1986206a9"><td class="memItemLeft" align="right" valign="top"><a id="a4a001ea03e4a6b30b5e89dc1986206a9"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>local_iterator</b> = typename <a class="el" href="a05771.html">__hashtable_base::local_iterator</a></td></tr>
<tr class="separator:a4a001ea03e4a6b30b5e89dc1986206a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afb388be1f5bf8d921c08c8a52ceae566"><td class="memItemLeft" align="right" valign="top"><a id="afb388be1f5bf8d921c08c8a52ceae566"></a>
typedef __value_alloc_traits::pointer&#160;</td><td class="memItemRight" valign="bottom"><b>pointer</b></td></tr>
<tr class="separator:afb388be1f5bf8d921c08c8a52ceae566"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a67c7e313757f66192b7b0ad9c4b2e24e"><td class="memItemLeft" align="right" valign="top"><a id="a67c7e313757f66192b7b0ad9c4b2e24e"></a>
typedef value_type &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>reference</b></td></tr>
<tr class="separator:a67c7e313757f66192b7b0ad9c4b2e24e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab9741df59e0c4950bce5fa5b9fab82ad"><td class="memItemLeft" align="right" valign="top"><a id="ab9741df59e0c4950bce5fa5b9fab82ad"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>size_type</b> = typename __hashtable_base::size_type</td></tr>
<tr class="separator:ab9741df59e0c4950bce5fa5b9fab82ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af9d2aad0679f989298b1c30663bc8243"><td class="memItemLeft" align="right" valign="top"><a id="af9d2aad0679f989298b1c30663bc8243"></a>
typedef _Value&#160;</td><td class="memItemRight" valign="bottom"><b>value_type</b></td></tr>
<tr class="separator:af9d2aad0679f989298b1c30663bc8243"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:af6ba4bb250acb7997062744b3ea47bb3"><td class="memItemLeft" align="right" valign="top"><a id="af6ba4bb250acb7997062744b3ea47bb3"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>_Hashtable</b> (size_type __bucket_hint, const _H1 &amp;, const _H2 &amp;, const _Hash &amp;, const _Equal &amp;, const _ExtractKey &amp;, const allocator_type &amp;)</td></tr>
<tr class="separator:af6ba4bb250acb7997062744b3ea47bb3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1cf67a2bf20dc9fae401c078075ae44c"><td class="memTemplParams" colspan="2"><a id="a1cf67a2bf20dc9fae401c078075ae44c"></a>
template&lt;typename _InputIterator &gt; </td></tr>
<tr class="memitem:a1cf67a2bf20dc9fae401c078075ae44c"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><b>_Hashtable</b> (_InputIterator __first, _InputIterator __last, size_type __bucket_hint, const _H1 &amp;, const _H2 &amp;, const _Hash &amp;, const _Equal &amp;, const _ExtractKey &amp;, const allocator_type &amp;)</td></tr>
<tr class="separator:a1cf67a2bf20dc9fae401c078075ae44c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a61b85c5fb0d83f748b7a6716a8705456"><td class="memItemLeft" align="right" valign="top"><a id="a61b85c5fb0d83f748b7a6716a8705456"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>_Hashtable</b> (const <a class="el" href="a05583.html">_Hashtable</a> &amp;)</td></tr>
<tr class="separator:a61b85c5fb0d83f748b7a6716a8705456"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2c15bbb2df840a5d7f65adf4d13fcb9a"><td class="memItemLeft" align="right" valign="top"><a id="a2c15bbb2df840a5d7f65adf4d13fcb9a"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>_Hashtable</b> (<a class="el" href="a05583.html">_Hashtable</a> &amp;&amp;) noexcept</td></tr>
<tr class="separator:a2c15bbb2df840a5d7f65adf4d13fcb9a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a97ffc4e5fd4482a798bcacc21e5359fc"><td class="memItemLeft" align="right" valign="top"><a id="a97ffc4e5fd4482a798bcacc21e5359fc"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>_Hashtable</b> (const <a class="el" href="a05583.html">_Hashtable</a> &amp;, const allocator_type &amp;)</td></tr>
<tr class="separator:a97ffc4e5fd4482a798bcacc21e5359fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab3012541cbfd10fcbe21003d63eb5ac1"><td class="memItemLeft" align="right" valign="top"><a id="ab3012541cbfd10fcbe21003d63eb5ac1"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>_Hashtable</b> (<a class="el" href="a05583.html">_Hashtable</a> &amp;&amp;, const allocator_type &amp;)</td></tr>
<tr class="separator:ab3012541cbfd10fcbe21003d63eb5ac1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a41061bd78d8350f5b02191831b2c5560"><td class="memItemLeft" align="right" valign="top"><a id="a41061bd78d8350f5b02191831b2c5560"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>_Hashtable</b> (const allocator_type &amp;__a)</td></tr>
<tr class="separator:a41061bd78d8350f5b02191831b2c5560"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a31ceed64aeb37135de5940fd3dc39603"><td class="memItemLeft" align="right" valign="top"><a id="a31ceed64aeb37135de5940fd3dc39603"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>_Hashtable</b> (size_type __n, const _H1 &amp;__hf=_H1(), const key_equal &amp;__eql=key_equal(), const allocator_type &amp;__a=allocator_type())</td></tr>
<tr class="separator:a31ceed64aeb37135de5940fd3dc39603"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adbe6f825b3ab2b784a54939ba3ff0176"><td class="memTemplParams" colspan="2"><a id="adbe6f825b3ab2b784a54939ba3ff0176"></a>
template&lt;typename _InputIterator &gt; </td></tr>
<tr class="memitem:adbe6f825b3ab2b784a54939ba3ff0176"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><b>_Hashtable</b> (_InputIterator __f, _InputIterator __l, size_type __n=0, const _H1 &amp;__hf=_H1(), const key_equal &amp;__eql=key_equal(), const allocator_type &amp;__a=allocator_type())</td></tr>
<tr class="separator:adbe6f825b3ab2b784a54939ba3ff0176"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6cb9a0d1020d82df463fda93704ce9a9"><td class="memItemLeft" align="right" valign="top"><a id="a6cb9a0d1020d82df463fda93704ce9a9"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>_Hashtable</b> (<a class="el" href="a01655.html">initializer_list</a>&lt; value_type &gt; __l, size_type __n=0, const _H1 &amp;__hf=_H1(), const key_equal &amp;__eql=key_equal(), const allocator_type &amp;__a=allocator_type())</td></tr>
<tr class="separator:a6cb9a0d1020d82df463fda93704ce9a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab0a567f0fb6522c55885853d3a1fb205"><td class="memItemLeft" align="right" valign="top"><a id="ab0a567f0fb6522c55885853d3a1fb205"></a>
const _RehashPolicy &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>__rehash_policy</b> () const</td></tr>
<tr class="separator:ab0a567f0fb6522c55885853d3a1fb205"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a85d893c933e338d1300b82eb582d4331"><td class="memItemLeft" align="right" valign="top"><a id="a85d893c933e338d1300b82eb582d4331"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>__rehash_policy</b> (const _RehashPolicy &amp;__pol)</td></tr>
<tr class="separator:a85d893c933e338d1300b82eb582d4331"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af1d601813a3d2157e6c7fbd500bc399e"><td class="memTemplParams" colspan="2"><a id="af1d601813a3d2157e6c7fbd500bc399e"></a>
template&lt;typename... _Args&gt; </td></tr>
<tr class="memitem:af1d601813a3d2157e6c7fbd500bc399e"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><b>_M_emplace</b> (<a class="el" href="a01479.html#ga6a860513044e23d34e553ea986e83fa1">std::true_type</a>, _Args &amp;&amp;... __args) -&gt; <a class="el" href="a07767.html">pair</a>&lt; iterator, bool &gt;</td></tr>
<tr class="separator:af1d601813a3d2157e6c7fbd500bc399e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3a7bc781608a48beedd75b5052074bd4"><td class="memTemplParams" colspan="2"><a id="a3a7bc781608a48beedd75b5052074bd4"></a>
template&lt;typename... _Args&gt; </td></tr>
<tr class="memitem:a3a7bc781608a48beedd75b5052074bd4"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><b>_M_emplace</b> (const_iterator __hint, <a class="el" href="a01479.html#gaebe6729ab5488ecc76c762873d226857">std::false_type</a>, _Args &amp;&amp;... __args) -&gt; iterator</td></tr>
<tr class="separator:a3a7bc781608a48beedd75b5052074bd4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a311197b88d8143faeab19a6cadac0088"><td class="memTemplParams" colspan="2"><a id="a311197b88d8143faeab19a6cadac0088"></a>
template&lt;typename _Arg , typename _NodeGenerator &gt; </td></tr>
<tr class="memitem:a311197b88d8143faeab19a6cadac0088"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><b>_M_insert</b> (_Arg &amp;&amp;__v, const _NodeGenerator &amp;__node_gen, <a class="el" href="a01479.html#ga6a860513044e23d34e553ea986e83fa1">true_type</a>, size_type __n_elt) -&gt; <a class="el" href="a07767.html">pair</a>&lt; iterator, bool &gt;</td></tr>
<tr class="separator:a311197b88d8143faeab19a6cadac0088"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa0192b026430c26e23f1e776f59b1ba7"><td class="memTemplParams" colspan="2"><a id="aa0192b026430c26e23f1e776f59b1ba7"></a>
template&lt;typename _Arg , typename _NodeGenerator &gt; </td></tr>
<tr class="memitem:aa0192b026430c26e23f1e776f59b1ba7"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><b>_M_insert</b> (const_iterator __hint, _Arg &amp;&amp;__v, const _NodeGenerator &amp;__node_gen, <a class="el" href="a01479.html#gaebe6729ab5488ecc76c762873d226857">false_type</a>) -&gt; iterator</td></tr>
<tr class="separator:aa0192b026430c26e23f1e776f59b1ba7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1ac23763ec3027a0e2c7938ee81b5186"><td class="memItemLeft" align="right" valign="top"><a id="a1ac23763ec3027a0e2c7938ee81b5186"></a>
iterator&#160;</td><td class="memItemRight" valign="bottom"><b>begin</b> () noexcept</td></tr>
<tr class="separator:a1ac23763ec3027a0e2c7938ee81b5186"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5579ad9fc1fe6660b77f920f3f667ce7"><td class="memItemLeft" align="right" valign="top"><a id="a5579ad9fc1fe6660b77f920f3f667ce7"></a>
const_iterator&#160;</td><td class="memItemRight" valign="bottom"><b>begin</b> () const noexcept</td></tr>
<tr class="separator:a5579ad9fc1fe6660b77f920f3f667ce7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a73550ff34436f93d50f64401999f00ea"><td class="memItemLeft" align="right" valign="top"><a id="a73550ff34436f93d50f64401999f00ea"></a>
local_iterator&#160;</td><td class="memItemRight" valign="bottom"><b>begin</b> (size_type __n)</td></tr>
<tr class="separator:a73550ff34436f93d50f64401999f00ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aba0196cccbca2e110b870cd14884b40d"><td class="memItemLeft" align="right" valign="top"><a id="aba0196cccbca2e110b870cd14884b40d"></a>
const_local_iterator&#160;</td><td class="memItemRight" valign="bottom"><b>begin</b> (size_type __n) const</td></tr>
<tr class="separator:aba0196cccbca2e110b870cd14884b40d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4315417632cc21c742d987a196d9d6e5"><td class="memItemLeft" align="right" valign="top"><a id="a4315417632cc21c742d987a196d9d6e5"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><b>bucket</b> (const key_type &amp;__k) const</td></tr>
<tr class="separator:a4315417632cc21c742d987a196d9d6e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aefe364cb21582c6857792d7e9eb6418b"><td class="memItemLeft" align="right" valign="top"><a id="aefe364cb21582c6857792d7e9eb6418b"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><b>bucket_count</b> () const noexcept</td></tr>
<tr class="separator:aefe364cb21582c6857792d7e9eb6418b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abcacf9ae74ad581419a5ce5aafb57e17"><td class="memItemLeft" align="right" valign="top"><a id="abcacf9ae74ad581419a5ce5aafb57e17"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><b>bucket_size</b> (size_type __n) const</td></tr>
<tr class="separator:abcacf9ae74ad581419a5ce5aafb57e17"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac9214b0c3ad5057a1586c43ff58a8eda"><td class="memItemLeft" align="right" valign="top"><a id="ac9214b0c3ad5057a1586c43ff58a8eda"></a>
const_iterator&#160;</td><td class="memItemRight" valign="bottom"><b>cbegin</b> () const noexcept</td></tr>
<tr class="separator:ac9214b0c3ad5057a1586c43ff58a8eda"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8451f4ba7002e62b64c9f6f51a63d436"><td class="memItemLeft" align="right" valign="top"><a id="a8451f4ba7002e62b64c9f6f51a63d436"></a>
const_local_iterator&#160;</td><td class="memItemRight" valign="bottom"><b>cbegin</b> (size_type __n) const</td></tr>
<tr class="separator:a8451f4ba7002e62b64c9f6f51a63d436"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a282cb0cff55f60bcbc124b44547fd554"><td class="memItemLeft" align="right" valign="top"><a id="a282cb0cff55f60bcbc124b44547fd554"></a>
const_iterator&#160;</td><td class="memItemRight" valign="bottom"><b>cend</b> () const noexcept</td></tr>
<tr class="separator:a282cb0cff55f60bcbc124b44547fd554"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a04b08fd45a1b48b6ed64a081fe0e3987"><td class="memItemLeft" align="right" valign="top"><a id="a04b08fd45a1b48b6ed64a081fe0e3987"></a>
const_local_iterator&#160;</td><td class="memItemRight" valign="bottom"><b>cend</b> (size_type __n) const</td></tr>
<tr class="separator:a04b08fd45a1b48b6ed64a081fe0e3987"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab92d892ebab8f6450aef931e03f59ad2"><td class="memItemLeft" align="right" valign="top"><a id="ab92d892ebab8f6450aef931e03f59ad2"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>clear</b> () noexcept</td></tr>
<tr class="separator:ab92d892ebab8f6450aef931e03f59ad2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7a9fbb148a13597f8ce43c1b54a047ea"><td class="memItemLeft" align="right" valign="top"><a id="a7a9fbb148a13597f8ce43c1b54a047ea"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><b>count</b> (const key_type &amp;__k) const</td></tr>
<tr class="separator:a7a9fbb148a13597f8ce43c1b54a047ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abb7237b4a3028d0d77b6a2dad3c3b69e"><td class="memTemplParams" colspan="2"><a id="abb7237b4a3028d0d77b6a2dad3c3b69e"></a>
template&lt;typename... _Args&gt; </td></tr>
<tr class="memitem:abb7237b4a3028d0d77b6a2dad3c3b69e"><td class="memTemplItemLeft" align="right" valign="top">__ireturn_type&#160;</td><td class="memTemplItemRight" valign="bottom"><b>emplace</b> (_Args &amp;&amp;... __args)</td></tr>
<tr class="separator:abb7237b4a3028d0d77b6a2dad3c3b69e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acf52dfea8cf7503605793790449409ae"><td class="memTemplParams" colspan="2"><a id="acf52dfea8cf7503605793790449409ae"></a>
template&lt;typename... _Args&gt; </td></tr>
<tr class="memitem:acf52dfea8cf7503605793790449409ae"><td class="memTemplItemLeft" align="right" valign="top">iterator&#160;</td><td class="memTemplItemRight" valign="bottom"><b>emplace_hint</b> (const_iterator __hint, _Args &amp;&amp;... __args)</td></tr>
<tr class="separator:acf52dfea8cf7503605793790449409ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a250c3fb81639f3f906b2d8f9825a548c"><td class="memItemLeft" align="right" valign="top"><a id="a250c3fb81639f3f906b2d8f9825a548c"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>empty</b> () const noexcept</td></tr>
<tr class="separator:a250c3fb81639f3f906b2d8f9825a548c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a59dd79b0d68a56464dbce2c73a4ab288"><td class="memItemLeft" align="right" valign="top"><a id="a59dd79b0d68a56464dbce2c73a4ab288"></a>
iterator&#160;</td><td class="memItemRight" valign="bottom"><b>end</b> () noexcept</td></tr>
<tr class="separator:a59dd79b0d68a56464dbce2c73a4ab288"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab9927d961e60876f3a6f008fe2eb5898"><td class="memItemLeft" align="right" valign="top"><a id="ab9927d961e60876f3a6f008fe2eb5898"></a>
const_iterator&#160;</td><td class="memItemRight" valign="bottom"><b>end</b> () const noexcept</td></tr>
<tr class="separator:ab9927d961e60876f3a6f008fe2eb5898"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a42c5d83fa14cce361b4cf46d894a5c87"><td class="memItemLeft" align="right" valign="top"><a id="a42c5d83fa14cce361b4cf46d894a5c87"></a>
local_iterator&#160;</td><td class="memItemRight" valign="bottom"><b>end</b> (size_type __n)</td></tr>
<tr class="separator:a42c5d83fa14cce361b4cf46d894a5c87"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a172f13d073115effe843b73ba1275115"><td class="memItemLeft" align="right" valign="top"><a id="a172f13d073115effe843b73ba1275115"></a>
const_local_iterator&#160;</td><td class="memItemRight" valign="bottom"><b>end</b> (size_type __n) const</td></tr>
<tr class="separator:a172f13d073115effe843b73ba1275115"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a53a4aa7cca0f0debe0109060f1af7fe0"><td class="memItemLeft" align="right" valign="top"><a id="a53a4aa7cca0f0debe0109060f1af7fe0"></a>
<a class="el" href="a07767.html">std::pair</a>&lt; iterator, iterator &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>equal_range</b> (const key_type &amp;__k)</td></tr>
<tr class="separator:a53a4aa7cca0f0debe0109060f1af7fe0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a12ac1350e6a679571232be672b1d0ea4"><td class="memItemLeft" align="right" valign="top"><a id="a12ac1350e6a679571232be672b1d0ea4"></a>
<a class="el" href="a07767.html">std::pair</a>&lt; const_iterator, const_iterator &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>equal_range</b> (const key_type &amp;__k) const</td></tr>
<tr class="separator:a12ac1350e6a679571232be672b1d0ea4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4d04065209dc1f96b8ac0c1bf27383fa"><td class="memItemLeft" align="right" valign="top"><a id="a4d04065209dc1f96b8ac0c1bf27383fa"></a>
iterator&#160;</td><td class="memItemRight" valign="bottom"><b>erase</b> (const_iterator)</td></tr>
<tr class="separator:a4d04065209dc1f96b8ac0c1bf27383fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4e342b4715415db09a89de326575bf11"><td class="memItemLeft" align="right" valign="top"><a id="a4e342b4715415db09a89de326575bf11"></a>
iterator&#160;</td><td class="memItemRight" valign="bottom"><b>erase</b> (iterator __it)</td></tr>
<tr class="separator:a4e342b4715415db09a89de326575bf11"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adfdef9f8b4737bf2e1ebff467a2d8deb"><td class="memItemLeft" align="right" valign="top"><a id="adfdef9f8b4737bf2e1ebff467a2d8deb"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><b>erase</b> (const key_type &amp;__k)</td></tr>
<tr class="separator:adfdef9f8b4737bf2e1ebff467a2d8deb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a46a360f79a9daa46b3042b2ad1e84bf8"><td class="memItemLeft" align="right" valign="top"><a id="a46a360f79a9daa46b3042b2ad1e84bf8"></a>
iterator&#160;</td><td class="memItemRight" valign="bottom"><b>erase</b> (const_iterator, const_iterator)</td></tr>
<tr class="separator:a46a360f79a9daa46b3042b2ad1e84bf8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a993d4a16c1a239ebad0a2ddba4f4ef78"><td class="memItemLeft" align="right" valign="top"><a id="a993d4a16c1a239ebad0a2ddba4f4ef78"></a>
iterator&#160;</td><td class="memItemRight" valign="bottom"><b>find</b> (const key_type &amp;__k)</td></tr>
<tr class="separator:a993d4a16c1a239ebad0a2ddba4f4ef78"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af0e96fe82d212db46372ed374d73d0a8"><td class="memItemLeft" align="right" valign="top"><a id="af0e96fe82d212db46372ed374d73d0a8"></a>
const_iterator&#160;</td><td class="memItemRight" valign="bottom"><b>find</b> (const key_type &amp;__k) const</td></tr>
<tr class="separator:af0e96fe82d212db46372ed374d73d0a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab44d057f462afd0e791403ef224706fe"><td class="memItemLeft" align="right" valign="top"><a id="ab44d057f462afd0e791403ef224706fe"></a>
allocator_type&#160;</td><td class="memItemRight" valign="bottom"><b>get_allocator</b> () const noexcept</td></tr>
<tr class="separator:ab44d057f462afd0e791403ef224706fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a993763fc4d19c3328d4f9466012253d0"><td class="memItemLeft" align="right" valign="top"><a id="a993763fc4d19c3328d4f9466012253d0"></a>
key_equal&#160;</td><td class="memItemRight" valign="bottom"><b>key_eq</b> () const</td></tr>
<tr class="separator:a993763fc4d19c3328d4f9466012253d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad4fe00f41e89f17eff7d7cdb114e5348"><td class="memItemLeft" align="right" valign="top"><a id="ad4fe00f41e89f17eff7d7cdb114e5348"></a>
float&#160;</td><td class="memItemRight" valign="bottom"><b>load_factor</b> () const noexcept</td></tr>
<tr class="separator:ad4fe00f41e89f17eff7d7cdb114e5348"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3429450f680e2fab3e736fd1161edf6b"><td class="memItemLeft" align="right" valign="top"><a id="a3429450f680e2fab3e736fd1161edf6b"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><b>max_bucket_count</b> () const noexcept</td></tr>
<tr class="separator:a3429450f680e2fab3e736fd1161edf6b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a67345350a46352bae13f829a96a04928"><td class="memItemLeft" align="right" valign="top"><a id="a67345350a46352bae13f829a96a04928"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><b>max_size</b> () const noexcept</td></tr>
<tr class="separator:a67345350a46352bae13f829a96a04928"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab91c32894c4bd1c2d1428528ea595696"><td class="memItemLeft" align="right" valign="top"><a id="ab91c32894c4bd1c2d1428528ea595696"></a>
<a class="el" href="a05583.html">_Hashtable</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (const <a class="el" href="a05583.html">_Hashtable</a> &amp;__ht)</td></tr>
<tr class="separator:ab91c32894c4bd1c2d1428528ea595696"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2b4b39512bce8adfdbcd1b22b8d8658f"><td class="memItemLeft" align="right" valign="top"><a id="a2b4b39512bce8adfdbcd1b22b8d8658f"></a>
<a class="el" href="a05583.html">_Hashtable</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (<a class="el" href="a05583.html">_Hashtable</a> &amp;&amp;__ht) noexcept(__node_alloc_traits::_S_nothrow_move() &amp;&amp;<a class="el" href="a03755.html">is_nothrow_move_assignable</a>&lt; _H1 &gt;::value &amp;&amp;<a class="el" href="a03755.html">is_nothrow_move_assignable</a>&lt; _Equal &gt;::value)</td></tr>
<tr class="separator:a2b4b39512bce8adfdbcd1b22b8d8658f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2fc00cdd7851942cd4dcaf1966e9b8af"><td class="memItemLeft" align="right" valign="top"><a id="a2fc00cdd7851942cd4dcaf1966e9b8af"></a>
<a class="el" href="a05583.html">_Hashtable</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (<a class="el" href="a01655.html">initializer_list</a>&lt; value_type &gt; __l)</td></tr>
<tr class="separator:a2fc00cdd7851942cd4dcaf1966e9b8af"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a38381d3179f362033500db4cfc9f900d"><td class="memItemLeft" align="right" valign="top"><a id="a38381d3179f362033500db4cfc9f900d"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>rehash</b> (size_type __n)</td></tr>
<tr class="separator:a38381d3179f362033500db4cfc9f900d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4aa9f7b93b1ee5641f0804752bda0f2f"><td class="memItemLeft" align="right" valign="top"><a id="a4aa9f7b93b1ee5641f0804752bda0f2f"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><b>size</b> () const noexcept</td></tr>
<tr class="separator:a4aa9f7b93b1ee5641f0804752bda0f2f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae12e86e12df0d3114e0b06bce56e26c2"><td class="memItemLeft" align="right" valign="top"><a id="ae12e86e12df0d3114e0b06bce56e26c2"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>swap</b> (<a class="el" href="a05583.html">_Hashtable</a> &amp;) noexcept(__and_&lt; __is_nothrow_swappable&lt; _H1 &gt;, __is_nothrow_swappable&lt; _Equal &gt;&gt;::value)</td></tr>
<tr class="separator:ae12e86e12df0d3114e0b06bce56e26c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:ae818b9afc8945aba59274387ea4a3653"><td class="memItemLeft" align="right" valign="top"><a id="ae818b9afc8945aba59274387ea4a3653"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><b>_M_bucket_index</b> (<a class="el" href="a05627.html">__node_type</a> *__n) const noexcept</td></tr>
<tr class="separator:ae818b9afc8945aba59274387ea4a3653"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeb029c359f445cf4a189487a07f2b028"><td class="memItemLeft" align="right" valign="top"><a id="aeb029c359f445cf4a189487a07f2b028"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><b>_M_bucket_index</b> (const key_type &amp;__k, __hash_code __c) const</td></tr>
<tr class="separator:aeb029c359f445cf4a189487a07f2b028"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6a676a54373cc981716c8d7fa32e3943"><td class="memTemplParams" colspan="2"><a id="a6a676a54373cc981716c8d7fa32e3943"></a>
template&lt;typename... _Args&gt; </td></tr>
<tr class="memitem:a6a676a54373cc981716c8d7fa32e3943"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a07767.html">std::pair</a>&lt; iterator, bool &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><b>_M_emplace</b> (<a class="el" href="a01479.html#ga6a860513044e23d34e553ea986e83fa1">std::true_type</a>, _Args &amp;&amp;... __args)</td></tr>
<tr class="separator:a6a676a54373cc981716c8d7fa32e3943"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad2e267b32310670229f12e7a6c809c41"><td class="memTemplParams" colspan="2"><a id="ad2e267b32310670229f12e7a6c809c41"></a>
template&lt;typename... _Args&gt; </td></tr>
<tr class="memitem:ad2e267b32310670229f12e7a6c809c41"><td class="memTemplItemLeft" align="right" valign="top">iterator&#160;</td><td class="memTemplItemRight" valign="bottom"><b>_M_emplace</b> (<a class="el" href="a01479.html#gaebe6729ab5488ecc76c762873d226857">std::false_type</a> __uk, _Args &amp;&amp;... __args)</td></tr>
<tr class="separator:ad2e267b32310670229f12e7a6c809c41"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a656170b5152a7dc5b5b55b9c23ded858"><td class="memTemplParams" colspan="2"><a id="a656170b5152a7dc5b5b55b9c23ded858"></a>
template&lt;typename... _Args&gt; </td></tr>
<tr class="memitem:a656170b5152a7dc5b5b55b9c23ded858"><td class="memTemplItemLeft" align="right" valign="top">iterator&#160;</td><td class="memTemplItemRight" valign="bottom"><b>_M_emplace</b> (const_iterator, <a class="el" href="a01479.html#ga6a860513044e23d34e553ea986e83fa1">std::true_type</a> __uk, _Args &amp;&amp;... __args)</td></tr>
<tr class="separator:a656170b5152a7dc5b5b55b9c23ded858"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aff7afc49279b76622d33a195c57b608c"><td class="memTemplParams" colspan="2"><a id="aff7afc49279b76622d33a195c57b608c"></a>
template&lt;typename... _Args&gt; </td></tr>
<tr class="memitem:aff7afc49279b76622d33a195c57b608c"><td class="memTemplItemLeft" align="right" valign="top">iterator&#160;</td><td class="memTemplItemRight" valign="bottom"><b>_M_emplace</b> (const_iterator, <a class="el" href="a01479.html#gaebe6729ab5488ecc76c762873d226857">std::false_type</a>, _Args &amp;&amp;... __args)</td></tr>
<tr class="separator:aff7afc49279b76622d33a195c57b608c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2c02394ae010f75cbe465197f3bc5047"><td class="memItemLeft" align="right" valign="top"><a id="a2c02394ae010f75cbe465197f3bc5047"></a>
const _Equal &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>_M_eq</b> () const</td></tr>
<tr class="separator:a2c02394ae010f75cbe465197f3bc5047"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a18e53fa11711bcb965291aa96727deab"><td class="memItemLeft" align="right" valign="top"><a id="a18e53fa11711bcb965291aa96727deab"></a>
_Equal &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>_M_eq</b> ()</td></tr>
<tr class="separator:a18e53fa11711bcb965291aa96727deab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af1a2acf3430aa32190eb592669767221"><td class="memItemLeft" align="right" valign="top"><a id="af1a2acf3430aa32190eb592669767221"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>_M_equals</b> (const _Key &amp;__k, __hash_code __c, <a class="el" href="a05627.html">__node_type</a> *__n) const</td></tr>
<tr class="separator:af1a2acf3430aa32190eb592669767221"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5f6b0757ce5d458b93df9e451ceda8b2"><td class="memItemLeft" align="right" valign="top"><a id="a5f6b0757ce5d458b93df9e451ceda8b2"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><b>_M_erase</b> (<a class="el" href="a01479.html#ga6a860513044e23d34e553ea986e83fa1">std::true_type</a>, const key_type &amp;)</td></tr>
<tr class="separator:a5f6b0757ce5d458b93df9e451ceda8b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6d62a6c04171d4c72dc0002460133f87"><td class="memItemLeft" align="right" valign="top"><a id="a6d62a6c04171d4c72dc0002460133f87"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><b>_M_erase</b> (<a class="el" href="a01479.html#gaebe6729ab5488ecc76c762873d226857">std::false_type</a>, const key_type &amp;)</td></tr>
<tr class="separator:a6d62a6c04171d4c72dc0002460133f87"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a59de0d6e69337eba2dc88f03e641d9c8"><td class="memItemLeft" align="right" valign="top"><a id="a59de0d6e69337eba2dc88f03e641d9c8"></a>
iterator&#160;</td><td class="memItemRight" valign="bottom"><b>_M_erase</b> (size_type __bkt, __node_base *__prev_n, <a class="el" href="a05627.html">__node_type</a> *__n)</td></tr>
<tr class="separator:a59de0d6e69337eba2dc88f03e641d9c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad237401be4f753ce2c07e6dd736b341a"><td class="memItemLeft" align="right" valign="top"><a id="ad237401be4f753ce2c07e6dd736b341a"></a>
__node_base *&#160;</td><td class="memItemRight" valign="bottom"><b>_M_find_before_node</b> (size_type, const key_type &amp;, __hash_code) const</td></tr>
<tr class="separator:ad237401be4f753ce2c07e6dd736b341a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af571205aa9854b6b87b54299bba9b7ab"><td class="memItemLeft" align="right" valign="top"><a id="af571205aa9854b6b87b54299bba9b7ab"></a>
<a class="el" href="a05627.html">__node_type</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>_M_find_node</b> (size_type __bkt, const key_type &amp;__key, __hash_code __c) const</td></tr>
<tr class="separator:af571205aa9854b6b87b54299bba9b7ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6753aa6f42abd944b6daecc8f7b187b9"><td class="memItemLeft" align="right" valign="top"><a id="a6753aa6f42abd944b6daecc8f7b187b9"></a>
__node_base *&#160;</td><td class="memItemRight" valign="bottom"><b>_M_get_previous_node</b> (size_type __bkt, __node_base *__n)</td></tr>
<tr class="separator:a6753aa6f42abd944b6daecc8f7b187b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afad8e4ef421535d67bacb395fd21a696"><td class="memTemplParams" colspan="2"><a id="afad8e4ef421535d67bacb395fd21a696"></a>
template&lt;typename _Arg , typename _NodeGenerator &gt; </td></tr>
<tr class="memitem:afad8e4ef421535d67bacb395fd21a696"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a07767.html">std::pair</a>&lt; iterator, bool &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><b>_M_insert</b> (_Arg &amp;&amp;, const _NodeGenerator &amp;, <a class="el" href="a01479.html#ga6a860513044e23d34e553ea986e83fa1">true_type</a>, size_type=1)</td></tr>
<tr class="separator:afad8e4ef421535d67bacb395fd21a696"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6068148015240801199b06da6c97bc30"><td class="memTemplParams" colspan="2"><a id="a6068148015240801199b06da6c97bc30"></a>
template&lt;typename _Arg , typename _NodeGenerator &gt; </td></tr>
<tr class="memitem:a6068148015240801199b06da6c97bc30"><td class="memTemplItemLeft" align="right" valign="top">iterator&#160;</td><td class="memTemplItemRight" valign="bottom"><b>_M_insert</b> (_Arg &amp;&amp;__arg, const _NodeGenerator &amp;__node_gen, <a class="el" href="a01479.html#gaebe6729ab5488ecc76c762873d226857">false_type</a> __uk)</td></tr>
<tr class="separator:a6068148015240801199b06da6c97bc30"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aea6eac6a5f61bac415defb9e99336710"><td class="memTemplParams" colspan="2"><a id="aea6eac6a5f61bac415defb9e99336710"></a>
template&lt;typename _Arg , typename _NodeGenerator &gt; </td></tr>
<tr class="memitem:aea6eac6a5f61bac415defb9e99336710"><td class="memTemplItemLeft" align="right" valign="top">iterator&#160;</td><td class="memTemplItemRight" valign="bottom"><b>_M_insert</b> (const_iterator, _Arg &amp;&amp;__arg, const _NodeGenerator &amp;__node_gen, <a class="el" href="a01479.html#ga6a860513044e23d34e553ea986e83fa1">true_type</a> __uk)</td></tr>
<tr class="separator:aea6eac6a5f61bac415defb9e99336710"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1869976bba7db6ac8c0be7f4bea4aff1"><td class="memTemplParams" colspan="2"><a id="a1869976bba7db6ac8c0be7f4bea4aff1"></a>
template&lt;typename _Arg , typename _NodeGenerator &gt; </td></tr>
<tr class="memitem:a1869976bba7db6ac8c0be7f4bea4aff1"><td class="memTemplItemLeft" align="right" valign="top">iterator&#160;</td><td class="memTemplItemRight" valign="bottom"><b>_M_insert</b> (const_iterator, _Arg &amp;&amp;, const _NodeGenerator &amp;, <a class="el" href="a01479.html#gaebe6729ab5488ecc76c762873d226857">false_type</a>)</td></tr>
<tr class="separator:a1869976bba7db6ac8c0be7f4bea4aff1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a95be485aa74b9766a62f52a8eef0c4a9"><td class="memItemLeft" align="right" valign="top"><a id="a95be485aa74b9766a62f52a8eef0c4a9"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>_M_insert_bucket_begin</b> (size_type, <a class="el" href="a05627.html">__node_type</a> *)</td></tr>
<tr class="separator:a95be485aa74b9766a62f52a8eef0c4a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a24b03f28bc09a85b950c59d0c9b74ce4"><td class="memItemLeft" align="right" valign="top"><a id="a24b03f28bc09a85b950c59d0c9b74ce4"></a>
iterator&#160;</td><td class="memItemRight" valign="bottom"><b>_M_insert_multi_node</b> (<a class="el" href="a05627.html">__node_type</a> *__hint, __hash_code __code, <a class="el" href="a05627.html">__node_type</a> *__n)</td></tr>
<tr class="separator:a24b03f28bc09a85b950c59d0c9b74ce4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aed837b34e95b260bf3c6b9b509ea5de6"><td class="memItemLeft" align="right" valign="top"><a id="aed837b34e95b260bf3c6b9b509ea5de6"></a>
iterator&#160;</td><td class="memItemRight" valign="bottom"><b>_M_insert_unique_node</b> (size_type __bkt, __hash_code __code, <a class="el" href="a05627.html">__node_type</a> *__n, size_type __n_elt=1)</td></tr>
<tr class="separator:aed837b34e95b260bf3c6b9b509ea5de6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7b28040ed0e842b2d1cad0cc62cadcfa"><td class="memItemLeft" align="right" valign="top"><a id="a7b28040ed0e842b2d1cad0cc62cadcfa"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>_M_remove_bucket_begin</b> (size_type __bkt, <a class="el" href="a05627.html">__node_type</a> *__next_n, size_type __next_bkt)</td></tr>
<tr class="separator:a7b28040ed0e842b2d1cad0cc62cadcfa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a98feb403ba79ebae0005afc24d2dbeef"><td class="memItemLeft" align="right" valign="top"><a id="a98feb403ba79ebae0005afc24d2dbeef"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>_M_swap</b> (_Hashtable_base &amp;__x)</td></tr>
<tr class="separator:a98feb403ba79ebae0005afc24d2dbeef"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-types"></a>
Private Types</h2></td></tr>
<tr class="memitem:a80b7ec3185c8d5a7c16c28b667d5cb92"><td class="memItemLeft" align="right" valign="top"><a id="a80b7ec3185c8d5a7c16c28b667d5cb92"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>__bucket_alloc_traits</b> = <a class="el" href="a04639.html">std::allocator_traits</a>&lt; __bucket_alloc_type &gt;</td></tr>
<tr class="separator:a80b7ec3185c8d5a7c16c28b667d5cb92"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa7dd266fe29d598767121ea6c1e47dff"><td class="memItemLeft" align="right" valign="top"><a id="aa7dd266fe29d598767121ea6c1e47dff"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>__bucket_alloc_type</b> = __alloc_rebind&lt; __node_alloc_type, __bucket_type &gt;</td></tr>
<tr class="separator:aa7dd266fe29d598767121ea6c1e47dff"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a>
Private Member Functions</h2></td></tr>
<tr class="memitem:ga9fd26115e8e8961dd58e7519317d50ee"><td class="memItemLeft" align="right" valign="top"><a id="ga9fd26115e8e8961dd58e7519317d50ee"></a>
__bucket_type *&#160;</td><td class="memItemRight" valign="bottom"><b>_M_allocate_buckets</b> (std::size_t __n)</td></tr>
<tr class="separator:ga9fd26115e8e8961dd58e7519317d50ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac81fde5e7550fdf5079be865fce27c78"><td class="memItemLeft" align="right" valign="top"><a id="gac81fde5e7550fdf5079be865fce27c78"></a>
<a class="el" href="a05627.html">__node_type</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>_M_allocate_node</b> (_Args &amp;&amp;... __args)</td></tr>
<tr class="separator:gac81fde5e7550fdf5079be865fce27c78"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae7af83fe7a2506a6a5766a6f2dc205aa"><td class="memItemLeft" align="right" valign="top"><a id="gae7af83fe7a2506a6a5766a6f2dc205aa"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>_M_deallocate_buckets</b> (__bucket_type *, std::size_t __n)</td></tr>
<tr class="separator:gae7af83fe7a2506a6a5766a6f2dc205aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2c97f49a4efae55ec984c25e80fe537b"><td class="memItemLeft" align="right" valign="top"><a id="ga2c97f49a4efae55ec984c25e80fe537b"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>_M_deallocate_node</b> (<a class="el" href="a05627.html">__node_type</a> *__n)</td></tr>
<tr class="separator:ga2c97f49a4efae55ec984c25e80fe537b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa73c1ceb72cc1a4348dc506611f68c31"><td class="memItemLeft" align="right" valign="top"><a id="gaa73c1ceb72cc1a4348dc506611f68c31"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>_M_deallocate_nodes</b> (<a class="el" href="a05627.html">__node_type</a> *__n)</td></tr>
<tr class="separator:gaa73c1ceb72cc1a4348dc506611f68c31"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a91675a8c0df4decf638dcdc610311db6"><td class="memItemLeft" align="right" valign="top"><a id="a91675a8c0df4decf638dcdc610311db6"></a>
__node_alloc_type &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>_M_node_allocator</b> ()</td></tr>
<tr class="separator:a91675a8c0df4decf638dcdc610311db6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8e70a0ad681e92db0cc26327514cdb3e"><td class="memItemLeft" align="right" valign="top"><a id="a8e70a0ad681e92db0cc26327514cdb3e"></a>
const __node_alloc_type &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>_M_node_allocator</b> () const</td></tr>
<tr class="separator:a8e70a0ad681e92db0cc26327514cdb3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
Friends</h2></td></tr>
<tr class="memitem:a6de8030eb645eefa6c623a4d1ded7786"><td class="memTemplParams" colspan="2"><a id="a6de8030eb645eefa6c623a4d1ded7786"></a>
template&lt;typename _Keya , typename _Valuea , typename _Alloca , typename _ExtractKeya , typename _Equala , typename _H1a , typename _H2a , typename _Hasha , typename _RehashPolicya , typename _Traitsa , bool _Constant_iteratorsa&gt; </td></tr>
<tr class="memitem:a6de8030eb645eefa6c623a4d1ded7786"><td class="memTemplItemLeft" align="right" valign="top">struct&#160;</td><td class="memTemplItemRight" valign="bottom"><b>__detail::_Insert</b></td></tr>
<tr class="separator:a6de8030eb645eefa6c623a4d1ded7786"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6aa8b728af7f0730634944a1d56fa0f2"><td class="memTemplParams" colspan="2"><a id="a6aa8b728af7f0730634944a1d56fa0f2"></a>
template&lt;typename _Keya , typename _Valuea , typename _Alloca , typename _ExtractKeya , typename _Equala , typename _H1a , typename _H2a , typename _Hasha , typename _RehashPolicya , typename _Traitsa &gt; </td></tr>
<tr class="memitem:a6aa8b728af7f0730634944a1d56fa0f2"><td class="memTemplItemLeft" align="right" valign="top">struct&#160;</td><td class="memTemplItemRight" valign="bottom"><b>__detail::_Insert_base</b></td></tr>
<tr class="separator:a6aa8b728af7f0730634944a1d56fa0f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a49ad735c6f015503245dc713431caccf"><td class="memTemplParams" colspan="2"><a id="a49ad735c6f015503245dc713431caccf"></a>
template&lt;typename _Keya , typename _Valuea , typename _Alloca , typename _ExtractKeya , typename _Equala , typename _H1a , typename _H2a , typename _Hasha , typename _RehashPolicya , typename _Traitsa , bool _Unique_keysa&gt; </td></tr>
<tr class="memitem:a49ad735c6f015503245dc713431caccf"><td class="memTemplItemLeft" align="right" valign="top">struct&#160;</td><td class="memTemplItemRight" valign="bottom"><b>__detail::_Map_base</b></td></tr>
<tr class="separator:a49ad735c6f015503245dc713431caccf"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;typename _Key, typename _Value, typename _Alloc, typename _ExtractKey, typename _Equal, typename _H1, typename _H2, typename _Hash, typename _RehashPolicy, typename _Traits&gt;<br />
class std::_Hashtable&lt; _Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits &gt;</h3>

<p>Primary class template _Hashtable.</p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
  <table class="tparams">
    <tr><td class="paramname">_Value</td><td>CopyConstructible type.</td></tr>
    <tr><td class="paramname">_Key</td><td>CopyConstructible type.</td></tr>
    <tr><td class="paramname">_Alloc</td><td>An allocator type ([lib.allocator.requirements]) whose _Alloc::value_type is _Value. As a conforming extension, we allow for _Alloc::value_type != _Value.</td></tr>
    <tr><td class="paramname">_ExtractKey</td><td>Function object that takes an object of type _Value and returns a value of type _Key.</td></tr>
    <tr><td class="paramname">_Equal</td><td>Function object that takes two objects of type k and returns a bool-like value that is true if the two objects are considered equal.</td></tr>
    <tr><td class="paramname">_H1</td><td>The hash function. A unary function object with argument type _Key and result type size_t. Return values should be distributed over the entire range [0, numeric_limits&lt;size_t&gt;:::max()].</td></tr>
    <tr><td class="paramname">_H2</td><td>The range-hashing function (in the terminology of Tavori and Dreizin). A binary function object whose argument types and result type are all size_t. Given arguments r and N, the return value is in the range [0, N).</td></tr>
    <tr><td class="paramname">_Hash</td><td>The ranged hash function (Tavori and Dreizin). A binary function whose argument types are _Key and size_t and whose result type is size_t. Given arguments k and N, the return value is in the range [0, N). Default: hash(k, N) = h2(h1(k), N). If _Hash is anything other than the default, _H1 and _H2 are ignored.</td></tr>
    <tr><td class="paramname">_RehashPolicy</td><td>Policy class with three members, all of which govern the bucket count. _M_next_bkt(n) returns a bucket count no smaller than n. _M_bkt_for_elements(n) returns a bucket count appropriate for an element count of n. _M_need_rehash(n_bkt, n_elt, n_ins) determines whether, if the current bucket count is n_bkt and the current element count is n_elt, we need to increase the bucket count. If so, returns make_pair(true, n), where n is the new bucket count. If not, returns make_pair(false, &lt;anything&gt;)</td></tr>
    <tr><td class="paramname">_Traits</td><td>Compile-time class with three boolean std::integral_constant members: __cache_hash_code, __constant_iterators, __unique_keys.</td></tr>
  </table>
  </dd>
</dl>
<p>Each _Hashtable data structure has:</p>
<ul>
<li>_Bucket[] _M_buckets</li>
<li>_Hash_node_base _M_before_begin</li>
<li>size_type _M_bucket_count</li>
<li>size_type _M_element_count</li>
</ul>
<p>with _Bucket being _Hash_node* and _Hash_node containing:</p>
<ul>
<li>_Hash_node* _M_next</li>
<li>Tp _M_value</li>
<li>size_t _M_hash_code if cache_hash_code is true</li>
</ul>
<p>In terms of Standard containers the hashtable is like the aggregation of:</p>
<ul>
<li>std::forward_list&lt;_Node&gt; containing the elements</li>
<li>std::vector&lt;std::forward_list&lt;_Node&gt;::iterator&gt; representing the buckets</li>
</ul>
<p>The non-empty buckets contain the node before the first node in the bucket. This design makes it possible to implement something like a std::forward_list::insert_after on container insertion and std::forward_list::erase_after on container erase calls. _M_before_begin is equivalent to std::forward_list::before_begin. Empty buckets contain nullptr. Note that one of the non-empty buckets contains &amp;_M_before_begin which is not a dereferenceable node so the node pointer in a bucket shall never be dereferenced, only its next node can be.</p>
<p>Walking through a bucket's nodes requires a check on the hash code to see if each node is still in the bucket. Such a design assumes a quite efficient hash functor and is one of the reasons it is highly advisable to set __cache_hash_code to true.</p>
<p>The container iterators are simply built from nodes. This way incrementing the iterator is perfectly efficient independent of how many empty buckets there are in the container.</p>
<p>On insert we compute the element's hash code and use it to find the bucket index. If the element must be inserted in an empty bucket we add it at the beginning of the singly linked list and make the bucket point to _M_before_begin. The bucket that used to point to _M_before_begin, if any, is updated to point to its new before begin node.</p>
<p>On erase, the simple iterator design requires using the hash functor to get the index of the bucket to update. For this reason, when __cache_hash_code is set to false the hash functor must not throw and this is enforced by a static assertion.</p>
<p>Functionality is implemented by decomposition into base classes, where the derived _Hashtable class is used in _Map_base, _Insert, _Rehash_base, and _Equality base classes to access the "this" pointer. _Hashtable_base is used in the base classes as a non-recursive, fully-completed-type so that detailed nested type information, such as iterator type and node type, can be used. This is similar to the "Curiously Recurring Template
Pattern" (CRTP) technique, but uses a reconstructed, not explicitly passed, template pattern.</p>
<p>Base class templates are:</p><ul>
<li>__detail::_Hashtable_base</li>
<li>__detail::_Map_base</li>
<li>__detail::_Insert</li>
<li>__detail::_Rehash_base</li>
<li>__detail::_Equality </li>
</ul>

<p class="definition">Definition at line <a class="el" href="a16827_source.html#l00173">173</a> of file <a class="el" href="a16827_source.html">bits/hashtable.h</a>.</p>
</div><hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="a16827_source.html">bits/hashtable.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="a01541.html">std</a></li><li class="navelem"><a class="el" href="a05583.html">_Hashtable</a></li>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
  </ul>
</div>
</body>
</html>