diff options
Diffstat (limited to 'doc/html/boost/intrusive/hashtable.html')
-rw-r--r-- | doc/html/boost/intrusive/hashtable.html | 391 |
1 files changed, 204 insertions, 187 deletions
diff --git a/doc/html/boost/intrusive/hashtable.html b/doc/html/boost/intrusive/hashtable.html index 695e69506e..6dbd27ec79 100644 --- a/doc/html/boost/intrusive/hashtable.html +++ b/doc/html/boost/intrusive/hashtable.html @@ -7,8 +7,9 @@ <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"> <link rel="home" href="../../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset"> <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.hashtable_hpp" title="Header <boost/intrusive/hashtable.hpp>"> -<link rel="prev" href="derivation_value_traits.html" title="Struct template derivation_value_traits"> -<link rel="next" href="make_hashtable.html" title="Struct template make_hashtable"> +<link rel="prev" href="hashdata_internal.html" title="Struct template hashdata_internal"> +<link rel="next" href="hashtable_defaults.html" title="Struct hashtable_defaults"> +<meta name="viewport" content="width=device-width, initial-scale=1"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> <table cellpadding="2" width="100%"><tr> @@ -21,7 +22,7 @@ </tr></table> <hr> <div class="spirit-nav"> -<a accesskey="p" href="derivation_value_traits.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.hashtable_hpp"><img src="../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="make_hashtable.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +<a accesskey="p" href="hashdata_internal.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.hashtable_hpp"><img src="../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="hashtable_defaults.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> </div> <div class="refentry"> <a name="boost.intrusive.hashtable"></a><div class="titlepage"></div> @@ -29,144 +30,149 @@ <h2><span class="refentrytitle">Class template hashtable</span></h2> <p>boost::intrusive::hashtable</p> </div> -<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> -<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../intrusive/reference.html#header.boost.intrusive.hashtable_hpp" title="Header <boost/intrusive/hashtable.hpp>">boost/intrusive/hashtable.hpp</a>> +<h2 class="refsynopsisdiv-title">Synopsis</h2> +<div class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../intrusive/reference.html#header.boost.intrusive.hashtable_hpp" title="Header <boost/intrusive/hashtable.hpp>">boost/intrusive/hashtable.hpp</a>> </span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T<span class="special">,</span> <span class="keyword">class</span> <span class="special">...</span> Options<span class="special">></span> -<span class="keyword">class</span> <a class="link" href="hashtable.html" title="Class template hashtable">hashtable</a> <span class="special">:</span> <span class="keyword">private</span> hashtable_size_traits_wrapper< hashdata_internal< ValueTraits, VoidOrKeyOfValue, VoidOrKeyHash, VoidOrKeyEqual, BucketTraits, SizeType, BoolFlags &(hash_bool_flags::incremental_pos|hash_bool_flags::cache_begin_pos) >, SizeType,(BoolFlags &hash_bool_flags::constant_time_size_pos) !=0 > +<span class="keyword">class</span> <a class="link" href="hashtable.html" title="Class template hashtable">hashtable</a> <span class="special">:</span> <span class="keyword">private</span> boost::intrusive::hashtable_size_wrapper< DeriveFrom, SizeType, bool > <span class="special">{</span> <span class="keyword">public</span><span class="special">:</span> <span class="comment">// types</span> - <span class="keyword">typedef</span> <span class="identifier">ValueTraits</span> <a name="boost.intrusive.hashtable.value_traits"></a><span class="identifier">value_traits</span><span class="special">;</span> - <span class="keyword">typedef</span> <span class="identifier">value_traits</span><span class="special">::</span><span class="identifier">pointer</span> <a name="boost.intrusive.hashtable.pointer"></a><span class="identifier">pointer</span><span class="special">;</span> - <span class="keyword">typedef</span> <span class="identifier">value_traits</span><span class="special">::</span><span class="identifier">const_pointer</span> <a name="boost.intrusive.hashtable.const_pointer"></a><span class="identifier">const_pointer</span><span class="special">;</span> - <span class="keyword">typedef</span> <span class="identifier">value_traits</span><span class="special">::</span><span class="identifier">value_type</span> <a name="boost.intrusive.hashtable.value_type"></a><span class="identifier">value_type</span><span class="special">;</span> - <span class="keyword">typedef</span> <span class="identifier">hash_types_base</span><span class="special">::</span><span class="identifier">key_type</span> <a name="boost.intrusive.hashtable.key_type"></a><span class="identifier">key_type</span><span class="special">;</span> - <span class="keyword">typedef</span> <span class="identifier">hash_types_base</span><span class="special">::</span><span class="identifier">key_of_value</span> <a name="boost.intrusive.hashtable.key_of_value"></a><span class="identifier">key_of_value</span><span class="special">;</span> - <span class="keyword">typedef</span> <a class="link" href="pointer_traits.html" title="Struct template pointer_traits">pointer_traits</a><span class="special"><</span> <span class="identifier">pointer</span> <span class="special">></span><span class="special">::</span><span class="identifier">reference</span> <a name="boost.intrusive.hashtable.reference"></a><span class="identifier">reference</span><span class="special">;</span> - <span class="keyword">typedef</span> <a class="link" href="pointer_traits.html" title="Struct template pointer_traits">pointer_traits</a><span class="special"><</span> <span class="identifier">const_pointer</span> <span class="special">></span><span class="special">::</span><span class="identifier">reference</span> <a name="boost.intrusive.hashtable.const_reference"></a><span class="identifier">const_reference</span><span class="special">;</span> - <span class="keyword">typedef</span> <a class="link" href="pointer_traits.html" title="Struct template pointer_traits">pointer_traits</a><span class="special"><</span> <span class="identifier">pointer</span> <span class="special">></span><span class="special">::</span><span class="identifier">difference_type</span> <a name="boost.intrusive.hashtable.difference_type"></a><span class="identifier">difference_type</span><span class="special">;</span> - <span class="keyword">typedef</span> <span class="identifier">SizeType</span> <a name="boost.intrusive.hashtable.size_type"></a><span class="identifier">size_type</span><span class="special">;</span> - <span class="keyword">typedef</span> <span class="identifier">internal_type</span><span class="special">::</span><span class="identifier">key_equal</span> <a name="boost.intrusive.hashtable.key_equal"></a><span class="identifier">key_equal</span><span class="special">;</span> - <span class="keyword">typedef</span> <span class="identifier">internal_type</span><span class="special">::</span><span class="identifier">hasher</span> <a name="boost.intrusive.hashtable.hasher"></a><span class="identifier">hasher</span><span class="special">;</span> - <span class="keyword">typedef</span> <span class="identifier">bucket_impl</span><span class="special"><</span> <a class="link" href="slist.html" title="Class template slist">slist</a> <span class="special">></span> <a name="boost.intrusive.hashtable.bucket_type"></a><span class="identifier">bucket_type</span><span class="special">;</span> - <span class="keyword">typedef</span> <span class="identifier">internal_type</span><span class="special">::</span><span class="identifier">bucket_ptr</span> <a name="boost.intrusive.hashtable.bucket_ptr"></a><span class="identifier">bucket_ptr</span><span class="special">;</span> - <span class="keyword">typedef</span> <span class="identifier">slist</span><span class="special">::</span><span class="identifier">iterator</span> <a name="boost.intrusive.hashtable.siterator"></a><span class="identifier">siterator</span><span class="special">;</span> - <span class="keyword">typedef</span> <span class="identifier">slist</span><span class="special">::</span><span class="identifier">const_iterator</span> <a name="boost.intrusive.hashtable.const_siterator"></a><span class="identifier">const_siterator</span><span class="special">;</span> - <span class="keyword">typedef</span> <span class="identifier">internal_type</span><span class="special">::</span><span class="identifier">iterator</span> <a name="boost.intrusive.hashtable.iterator"></a><span class="identifier">iterator</span><span class="special">;</span> - <span class="keyword">typedef</span> <span class="identifier">internal_type</span><span class="special">::</span><span class="identifier">const_iterator</span> <a name="boost.intrusive.hashtable.const_iterator"></a><span class="identifier">const_iterator</span><span class="special">;</span> - <span class="keyword">typedef</span> <span class="identifier">internal_type</span><span class="special">::</span><span class="identifier">local_iterator</span> <a name="boost.intrusive.hashtable.local_iterator"></a><span class="identifier">local_iterator</span><span class="special">;</span> - <span class="keyword">typedef</span> <span class="identifier">internal_type</span><span class="special">::</span><span class="identifier">const_local_iterator</span> <a name="boost.intrusive.hashtable.const_local_iterator"></a><span class="identifier">const_local_iterator</span><span class="special">;</span> - <span class="keyword">typedef</span> <span class="identifier">value_traits</span><span class="special">::</span><span class="identifier">node_traits</span> <a name="boost.intrusive.hashtable.node_traits"></a><span class="identifier">node_traits</span><span class="special">;</span> - <span class="keyword">typedef</span> <span class="identifier">node_traits</span><span class="special">::</span><span class="identifier">node</span> <a name="boost.intrusive.hashtable.node"></a><span class="identifier">node</span><span class="special">;</span> - <span class="keyword">typedef</span> <a class="link" href="pointer_traits.html" title="Struct template pointer_traits">pointer_traits</a><span class="special"><</span> <span class="identifier">pointer</span> <span class="special">></span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">rebind_pointer</span><span class="special"><</span> <span class="identifier">node</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> <a name="boost.intrusive.hashtable.node_ptr"></a><span class="identifier">node_ptr</span><span class="special">;</span> - <span class="keyword">typedef</span> <a class="link" href="pointer_traits.html" title="Struct template pointer_traits">pointer_traits</a><span class="special"><</span> <span class="identifier">pointer</span> <span class="special">></span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">rebind_pointer</span><span class="special"><</span> <span class="keyword">const</span> <span class="identifier">node</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> <a name="boost.intrusive.hashtable.const_node_ptr"></a><span class="identifier">const_node_ptr</span><span class="special">;</span> - <span class="keyword">typedef</span> <a class="link" href="pointer_traits.html" title="Struct template pointer_traits">pointer_traits</a><span class="special"><</span> <span class="identifier">node_ptr</span> <span class="special">></span><span class="special">::</span><span class="identifier">reference</span> <a name="boost.intrusive.hashtable.node_reference"></a><span class="identifier">node_reference</span><span class="special">;</span> - <span class="keyword">typedef</span> <a class="link" href="pointer_traits.html" title="Struct template pointer_traits">pointer_traits</a><span class="special"><</span> <span class="identifier">const_node_ptr</span> <span class="special">></span><span class="special">::</span><span class="identifier">reference</span> <a name="boost.intrusive.hashtable.const_node_reference"></a><span class="identifier">const_node_reference</span><span class="special">;</span> - <span class="keyword">typedef</span> <span class="identifier">slist</span><span class="special">::</span><span class="identifier">node_algorithms</span> <a name="boost.intrusive.hashtable.node_algorithms"></a><span class="identifier">node_algorithms</span><span class="special">;</span> - <span class="keyword">typedef</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span> <a name="boost.intrusive.hashtable.insert_commit_data"></a><span class="identifier">insert_commit_data</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">ValueTraits</span> <a name="boost.intrusive.hashtable.value_traits"></a><span class="identifier">value_traits</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">value_traits</span><span class="special">::</span><span class="identifier">pointer</span> <a name="boost.intrusive.hashtable.pointer"></a><span class="identifier">pointer</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">value_traits</span><span class="special">::</span><span class="identifier">const_pointer</span> <a name="boost.intrusive.hashtable.const_pointer"></a><span class="identifier">const_pointer</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">value_traits</span><span class="special">::</span><span class="identifier">value_type</span> <a name="boost.intrusive.hashtable.value_type"></a><span class="identifier">value_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">hash_types_base</span><span class="special">::</span><span class="identifier">key_type</span> <a name="boost.intrusive.hashtable.key_type"></a><span class="identifier">key_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">hash_types_base</span><span class="special">::</span><span class="identifier">key_of_value</span> <a name="boost.intrusive.hashtable.key_of_value"></a><span class="identifier">key_of_value</span><span class="special">;</span> + <span class="keyword">typedef</span> <a class="link" href="pointer_traits.html" title="Struct template pointer_traits">pointer_traits</a><span class="special"><</span> <span class="identifier">pointer</span> <span class="special">></span><span class="special">::</span><span class="identifier">reference</span> <a name="boost.intrusive.hashtable.reference"></a><span class="identifier">reference</span><span class="special">;</span> + <span class="keyword">typedef</span> <a class="link" href="pointer_traits.html" title="Struct template pointer_traits">pointer_traits</a><span class="special"><</span> <span class="identifier">const_pointer</span> <span class="special">></span><span class="special">::</span><span class="identifier">reference</span> <a name="boost.intrusive.hashtable.const_reference"></a><span class="identifier">const_reference</span><span class="special">;</span> + <span class="keyword">typedef</span> <a class="link" href="pointer_traits.html" title="Struct template pointer_traits">pointer_traits</a><span class="special"><</span> <span class="identifier">pointer</span> <span class="special">></span><span class="special">::</span><span class="identifier">difference_type</span> <a name="boost.intrusive.hashtable.difference_type"></a><span class="identifier">difference_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">SizeType</span> <a name="boost.intrusive.hashtable.size_type"></a><span class="identifier">size_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">internal_type</span><span class="special">::</span><span class="identifier">key_equal</span> <a name="boost.intrusive.hashtable.key_equal"></a><span class="identifier">key_equal</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">internal_type</span><span class="special">::</span><span class="identifier">hasher</span> <a name="boost.intrusive.hashtable.hasher"></a><span class="identifier">hasher</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">internal_type</span><span class="special">::</span><span class="identifier">bucket_type</span> <a name="boost.intrusive.hashtable.bucket_type"></a><span class="identifier">bucket_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">internal_type</span><span class="special">::</span><span class="identifier">bucket_ptr</span> <a name="boost.intrusive.hashtable.bucket_ptr"></a><span class="identifier">bucket_ptr</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">internal_type</span><span class="special">::</span><span class="identifier">iterator</span> <a name="boost.intrusive.hashtable.iterator"></a><span class="identifier">iterator</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">internal_type</span><span class="special">::</span><span class="identifier">const_iterator</span> <a name="boost.intrusive.hashtable.const_iterator"></a><span class="identifier">const_iterator</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">internal_type</span><span class="special">::</span><span class="identifier">local_iterator</span> <a name="boost.intrusive.hashtable.local_iterator"></a><span class="identifier">local_iterator</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">internal_type</span><span class="special">::</span><span class="identifier">const_local_iterator</span> <a name="boost.intrusive.hashtable.const_local_iterator"></a><span class="identifier">const_local_iterator</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">value_traits</span><span class="special">::</span><span class="identifier">node_traits</span> <a name="boost.intrusive.hashtable.node_traits"></a><span class="identifier">node_traits</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">node_traits</span><span class="special">::</span><span class="identifier">node</span> <a name="boost.intrusive.hashtable.node"></a><span class="identifier">node</span><span class="special">;</span> + <span class="keyword">typedef</span> <a class="link" href="pointer_traits.html" title="Struct template pointer_traits">pointer_traits</a><span class="special"><</span> <span class="identifier">pointer</span> <span class="special">></span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">rebind_pointer</span><span class="special"><</span> <span class="identifier">node</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> <a name="boost.intrusive.hashtable.node_ptr"></a><span class="identifier">node_ptr</span><span class="special">;</span> + <span class="keyword">typedef</span> <a class="link" href="pointer_traits.html" title="Struct template pointer_traits">pointer_traits</a><span class="special"><</span> <span class="identifier">pointer</span> <span class="special">></span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">rebind_pointer</span><span class="special"><</span> <span class="identifier">constnode</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> <a name="boost.intrusive.hashtable.const_node_ptr"></a><span class="identifier">const_node_ptr</span><span class="special">;</span> + <span class="keyword">typedef</span> <a class="link" href="pointer_traits.html" title="Struct template pointer_traits">pointer_traits</a><span class="special"><</span> <span class="identifier">node_ptr</span> <span class="special">></span><span class="special">::</span><span class="identifier">reference</span> <a name="boost.intrusive.hashtable.node_reference"></a><span class="identifier">node_reference</span><span class="special">;</span> + <span class="keyword">typedef</span> <a class="link" href="pointer_traits.html" title="Struct template pointer_traits">pointer_traits</a><span class="special"><</span> <span class="identifier">const_node_ptr</span> <span class="special">></span><span class="special">::</span><span class="identifier">reference</span> <a name="boost.intrusive.hashtable.const_node_reference"></a><span class="identifier">const_node_reference</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">internal_type</span><span class="special">::</span><span class="identifier">slist_node_algorithms</span> <a name="boost.intrusive.hashtable.slist_node_algorithms"></a><span class="identifier">slist_node_algorithms</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">insert_commit_data_impl</span><span class="special"><</span> <a class="link" href="store_hash.html" title="Struct template store_hash">store_hash</a> <span class="special">></span> <a name="boost.intrusive.hashtable.insert_commit_data"></a><span class="identifier">insert_commit_data</span><span class="special">;</span> <span class="comment">// <a class="link" href="hashtable.html#boost.intrusive.hashtableconstruct-copy-destruct">construct/copy/destruct</a></span> - <span class="keyword">explicit</span> <a class="link" href="hashtable.html#idm45971715032576-bb"><span class="identifier">hashtable</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="bucket_traits.html" title="Struct template bucket_traits">bucket_traits</a> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">hasher</span> <span class="special">&</span> <span class="special">=</span> <span class="identifier">hasher</span><span class="special">(</span><span class="special">)</span><span class="special">,</span> + <span class="keyword">explicit</span> <a class="link" href="hashtable.html#idm32258-bb"><span class="identifier">hashtable</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="bucket_traits.html" title="Struct template bucket_traits">bucket_traits</a> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">hasher</span> <span class="special">&</span> <span class="special">=</span> <span class="identifier">hasher</span><span class="special">(</span><span class="special">)</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">key_equal</span> <span class="special">&</span> <span class="special">=</span> <span class="identifier">key_equal</span><span class="special">(</span><span class="special">)</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">value_traits</span> <span class="special">&</span> <span class="special">=</span> <span class="identifier">value_traits</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span> <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Iterator<span class="special">></span> - <a class="link" href="hashtable.html#idm45971715022512-bb"><span class="identifier">hashtable</span></a><span class="special">(</span><span class="keyword">bool</span><span class="special">,</span> <span class="identifier">Iterator</span><span class="special">,</span> <span class="identifier">Iterator</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="bucket_traits.html" title="Struct template bucket_traits">bucket_traits</a> <span class="special">&</span><span class="special">,</span> + <a class="link" href="hashtable.html#idm32283-bb"><span class="identifier">hashtable</span></a><span class="special">(</span><span class="keyword">bool</span><span class="special">,</span> <span class="identifier">Iterator</span><span class="special">,</span> <span class="identifier">Iterator</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="bucket_traits.html" title="Struct template bucket_traits">bucket_traits</a> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">hasher</span> <span class="special">&</span> <span class="special">=</span> <span class="identifier">hasher</span><span class="special">(</span><span class="special">)</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">key_equal</span> <span class="special">&</span> <span class="special">=</span> <span class="identifier">key_equal</span><span class="special">(</span><span class="special">)</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">value_traits</span> <span class="special">&</span> <span class="special">=</span> <span class="identifier">value_traits</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span> - <a class="link" href="hashtable.html#idm45971715010400-bb"><span class="identifier">hashtable</span></a><span class="special">(</span><a class="link" href="hashtable.html" title="Class template hashtable">hashtable</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> - <a class="link" href="hashtable.html" title="Class template hashtable">hashtable</a> <span class="special">&</span> <a class="link" href="hashtable.html#idm45971715006096-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><a class="link" href="hashtable.html" title="Class template hashtable">hashtable</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> - <a class="link" href="hashtable.html#idm45971715003280-bb"><span class="special">~</span><span class="identifier">hashtable</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="hashtable.html#idm32315-bb"><span class="identifier">hashtable</span></a><span class="special">(</span><a class="link" href="hashtable.html" title="Class template hashtable">hashtable</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="hashtable.html" title="Class template hashtable">hashtable</a> <span class="special">&</span> <a class="link" href="hashtable.html#idm32326-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><a class="link" href="hashtable.html" title="Class template hashtable">hashtable</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="../interprocess/named_sharable_mutex.html#idm32335-bb"><span class="special">~</span><span class="identifier">hashtable</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> - <span class="comment">// <a class="link" href="hashtable.html#idm45971715454528-bb">public member functions</a></span> - <span class="identifier">iterator</span> <a class="link" href="hashtable.html#idm45971715453968-bb"><span class="identifier">begin</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="identifier">const_iterator</span> <a class="link" href="hashtable.html#idm45971715448624-bb"><span class="identifier">begin</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="identifier">const_iterator</span> <a class="link" href="hashtable.html#idm45971715443264-bb"><span class="identifier">cbegin</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="hashtable.html#idm45971715437904-bb"><span class="identifier">end</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="identifier">const_iterator</span> <a class="link" href="hashtable.html#idm45971715433344-bb"><span class="identifier">end</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="identifier">const_iterator</span> <a class="link" href="hashtable.html#idm45971715428784-bb"><span class="identifier">cend</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="identifier">hasher</span> <a class="link" href="hashtable.html#idm45971715424224-bb"><span class="identifier">hash_function</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">key_equal</span> <a class="link" href="hashtable.html#idm45971715419648-bb"><span class="identifier">key_eq</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="keyword">bool</span> <a class="link" href="hashtable.html#idm45971715415056-bb"><span class="identifier">empty</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="identifier">size_type</span> <a class="link" href="hashtable.html#idm45971715410368-bb"><span class="identifier">size</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">void</span> <a class="link" href="hashtable.html#idm45971715405024-bb"><span class="identifier">swap</span></a><span class="special">(</span><a class="link" href="hashtable.html" title="Class template hashtable">hashtable</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="comment">// <a class="link" href="hashtable.html#idm31271-bb">private member functions</a></span> + <span class="keyword">void</span> <a class="link" href="hashtable.html#idm31272-bb"><span class="identifier">default_init_actions</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">SizeType</span> <a class="link" href="../interprocess/interprocess_upgr_idm31107.html#idm31274-bb"><span class="identifier">priv_size_count</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="hashtable.html#idm31276-bb"><span class="identifier">priv_size_count</span></a><span class="special">(</span><span class="identifier">SizeType</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="hashtable.html#idm31280-bb"><span class="identifier">priv_size_inc</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="hashtable.html#idm31282-bb"><span class="identifier">priv_size_dec</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="../interprocess/interprocess_upgr_idm31107.html#idm31284-bb">public member functions</a></span> + <span class="identifier">iterator</span> <a class="link" href="hashtable.html#idm31285-bb"><span class="identifier">begin</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">const_iterator</span> <a class="link" href="hashtable.html#idm31296-bb"><span class="identifier">begin</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">const_iterator</span> <a class="link" href="../container/vector.html#idm31307-bb"><span class="identifier">cbegin</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="hashtable.html#idm31318-bb"><span class="identifier">end</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">const_iterator</span> <a class="link" href="hashtable.html#idm31328-bb"><span class="identifier">end</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">const_iterator</span> <a class="link" href="hashtable.html#idm31338-bb"><span class="identifier">cend</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">hasher</span> <a class="link" href="hashtable.html#idm31348-bb"><span class="identifier">hash_function</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">key_equal</span> <a class="link" href="hashtable.html#idm31358-bb"><span class="identifier">key_eq</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="keyword">bool</span> <a class="link" href="hashtable.html#idm31368-bb"><span class="identifier">empty</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">size_type</span> <a class="link" href="hashtable.html#idm31378-bb"><span class="identifier">size</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="hashtable.html#idm31389-bb"><span class="identifier">swap</span></a><span class="special">(</span><a class="link" href="hashtable.html" title="Class template hashtable">hashtable</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span> <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Cloner<span class="special">,</span> <span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="keyword">void</span> <a class="link" href="hashtable.html#idm45971715399440-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="hashtable.html" title="Class template hashtable">hashtable</a> <span class="special">&</span><span class="special">,</span> <span class="identifier">Cloner</span><span class="special">,</span> <span class="identifier">Disposer</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="hashtable.html#idm31403-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="hashtable.html" title="Class template hashtable">hashtable</a> <span class="special">&</span><span class="special">,</span> <span class="identifier">Cloner</span><span class="special">,</span> <span class="identifier">Disposer</span><span class="special">)</span><span class="special">;</span> <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Cloner<span class="special">,</span> <span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="keyword">void</span> <a class="link" href="hashtable.html#idm45971715389216-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><a class="link" href="hashtable.html" title="Class template hashtable">hashtable</a> <span class="special">&&</span><span class="special">,</span> <span class="identifier">Cloner</span><span class="special">,</span> <span class="identifier">Disposer</span><span class="special">)</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="hashtable.html#idm45971715379168-bb"><span class="identifier">insert_equal</span></a><span class="special">(</span><span class="identifier">reference</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Iterator<span class="special">></span> <span class="keyword">void</span> <a class="link" href="hashtable.html#idm45971715371456-bb"><span class="identifier">insert_equal</span></a><span class="special">(</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="identifier">Iterator</span><span class="special">)</span><span class="special">;</span> - <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">iterator</span><span class="special">,</span> <span class="keyword">bool</span> <span class="special">></span> <a class="link" href="hashtable.html#idm45971715363712-bb"><span class="identifier">insert_unique</span></a><span class="special">(</span><span class="identifier">reference</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Iterator<span class="special">></span> <span class="keyword">void</span> <a class="link" href="hashtable.html#idm45971715355792-bb"><span class="identifier">insert_unique</span></a><span class="special">(</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="identifier">Iterator</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="hashtable.html#idm31427-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><a class="link" href="hashtable.html" title="Class template hashtable">hashtable</a> <span class="special">&&</span><span class="special">,</span> <span class="identifier">Cloner</span><span class="special">,</span> <span class="identifier">Disposer</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="hashtable.html#idm31451-bb"><span class="identifier">insert_equal</span></a><span class="special">(</span><span class="identifier">reference</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Iterator<span class="special">></span> <span class="keyword">void</span> <a class="link" href="../interprocess/named_condition.html#idm31469-bb"><span class="identifier">insert_equal</span></a><span class="special">(</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="identifier">Iterator</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">iterator</span><span class="special">,</span> <span class="keyword">bool</span> <span class="special">></span> <a class="link" href="hashtable.html#idm31488-bb"><span class="identifier">insert_unique</span></a><span class="special">(</span><span class="identifier">reference</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Iterator<span class="special">></span> <span class="keyword">void</span> <a class="link" href="hashtable.html#idm31506-bb"><span class="identifier">insert_unique</span></a><span class="special">(</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="identifier">Iterator</span><span class="special">)</span><span class="special">;</span> <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> KeyType<span class="special">,</span> <span class="keyword">typename</span> KeyHasher<span class="special">,</span> <span class="keyword">typename</span> KeyEqual<span class="special">></span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">iterator</span><span class="special">,</span> <span class="keyword">bool</span> <span class="special">></span> - <a class="link" href="hashtable.html#idm45971715348048-bb"><span class="identifier">insert_unique_check</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyHasher</span><span class="special">,</span> <span class="identifier">KeyEqual</span><span class="special">,</span> + <a class="link" href="hashtable.html#idm31525-bb"><span class="identifier">insert_unique_check</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyHasher</span><span class="special">,</span> <span class="identifier">KeyEqual</span><span class="special">,</span> <span class="identifier">insert_commit_data</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">iterator</span><span class="special">,</span> <span class="keyword">bool</span> <span class="special">></span> - <a class="link" href="hashtable.html#idm45971715333264-bb"><span class="identifier">insert_unique_check</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">insert_commit_data</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="hashtable.html#idm45971715323280-bb"><span class="identifier">insert_unique_commit</span></a><span class="special">(</span><span class="identifier">reference</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">insert_commit_data</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">void</span> <a class="link" href="hashtable.html#idm45971715313216-bb"><span class="identifier">erase</span></a><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">void</span> <a class="link" href="hashtable.html#idm45971715307760-bb"><span class="identifier">erase</span></a><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="identifier">size_type</span> <a class="link" href="hashtable.html#idm45971715301568-bb"><span class="identifier">erase</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="hashtable.html#idm31558-bb"><span class="identifier">insert_unique_check</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">insert_commit_data</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="hashtable.html#idm31580-bb"><span class="identifier">insert_unique_commit</span></a><span class="special">(</span><span class="identifier">reference</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">insert_commit_data</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="hashtable.html#idm31602-bb"><span class="identifier">erase</span></a><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="hashtable.html#idm31615-bb"><span class="identifier">erase</span></a><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">size_type</span> <a class="link" href="hashtable.html#idm31630-bb"><span class="identifier">erase</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> KeyType<span class="special">,</span> <span class="keyword">typename</span> KeyHasher<span class="special">,</span> <span class="keyword">typename</span> KeyEqual<span class="special">></span> - <span class="identifier">size_type</span> <a class="link" href="hashtable.html#idm45971715295408-bb"><span class="identifier">erase</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyHasher</span><span class="special">,</span> <span class="identifier">KeyEqual</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">size_type</span> <a class="link" href="../container/vector.html#idm31645-bb"><span class="identifier">erase</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyHasher</span><span class="special">,</span> <span class="identifier">KeyEqual</span><span class="special">)</span><span class="special">;</span> <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="keyword">void</span> <a class="link" href="hashtable.html#idm45971715284448-bb"><span class="identifier">erase_and_dispose</span></a><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">,</span> <span class="identifier">Disposer</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="../container/vector.html#idm31671-bb"><span class="identifier">erase_and_dispose</span></a><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">,</span> <span class="identifier">Disposer</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="keyword">void</span> <a class="link" href="hashtable.html#idm45971715276560-bb"><span class="identifier">erase_and_dispose</span></a><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span><span class="special">,</span> <span class="identifier">Disposer</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="hashtable.html#idm31690-bb"><span class="identifier">erase_and_dispose</span></a><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span><span class="special">,</span> <span class="identifier">Disposer</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="identifier">size_type</span> <a class="link" href="hashtable.html#idm45971715267952-bb"><span class="identifier">erase_and_dispose</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">Disposer</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">size_type</span> <a class="link" href="hashtable.html#idm31711-bb"><span class="identifier">erase_and_dispose</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">Disposer</span><span class="special">)</span><span class="special">;</span> <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> KeyType<span class="special">,</span> <span class="keyword">typename</span> KeyHasher<span class="special">,</span> <span class="keyword">typename</span> KeyEqual<span class="special">,</span> <span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="identifier">size_type</span> <a class="link" href="hashtable.html#idm45971715259312-bb"><span class="identifier">erase_and_dispose</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyHasher</span><span class="special">,</span> <span class="identifier">KeyEqual</span><span class="special">,</span> + <span class="identifier">size_type</span> <a class="link" href="../interprocess/named_condition_any.html#idm31732-bb"><span class="identifier">erase_and_dispose</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyHasher</span><span class="special">,</span> <span class="identifier">KeyEqual</span><span class="special">,</span> <span class="identifier">Disposer</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">void</span> <a class="link" href="hashtable.html#idm45971715247664-bb"><span class="identifier">clear</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Disposer<span class="special">></span> <span class="keyword">void</span> <a class="link" href="hashtable.html#idm45971715242800-bb"><span class="identifier">clear_and_dispose</span></a><span class="special">(</span><span class="identifier">Disposer</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="identifier">size_type</span> <a class="link" href="hashtable.html#idm45971715235536-bb"><span class="identifier">count</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="hashtable.html#idm31760-bb"><span class="identifier">clear</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Disposer<span class="special">></span> <span class="keyword">void</span> <a class="link" href="../interprocess/named_condition_any.html#idm31771-bb"><span class="identifier">clear_and_dispose</span></a><span class="special">(</span><span class="identifier">Disposer</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">size_type</span> <a class="link" href="hashtable.html#idm31788-bb"><span class="identifier">count</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> KeyType<span class="special">,</span> <span class="keyword">typename</span> KeyHasher<span class="special">,</span> <span class="keyword">typename</span> KeyEqual<span class="special">></span> - <span class="identifier">size_type</span> <a class="link" href="hashtable.html#idm45971715230928-bb"><span class="identifier">count</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyHasher</span><span class="special">,</span> <span class="identifier">KeyEqual</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="hashtable.html#idm45971715221552-bb"><span class="identifier">find</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">size_type</span> <a class="link" href="../container/vector.html#idm31799-bb"><span class="identifier">count</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyHasher</span><span class="special">,</span> <span class="identifier">KeyEqual</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="hashtable.html#idm31821-bb"><span class="identifier">find</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> KeyType<span class="special">,</span> <span class="keyword">typename</span> KeyHasher<span class="special">,</span> <span class="keyword">typename</span> KeyEqual<span class="special">></span> - <span class="identifier">iterator</span> <a class="link" href="hashtable.html#idm45971715217184-bb"><span class="identifier">find</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyHasher</span><span class="special">,</span> <span class="identifier">KeyEqual</span><span class="special">)</span><span class="special">;</span> - <span class="identifier">const_iterator</span> <a class="link" href="hashtable.html#idm45971715206992-bb"><span class="identifier">find</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="hashtable.html#idm31832-bb"><span class="identifier">find</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyHasher</span><span class="special">,</span> <span class="identifier">KeyEqual</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">const_iterator</span> <a class="link" href="hashtable.html#idm31856-bb"><span class="identifier">find</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> KeyType<span class="special">,</span> <span class="keyword">typename</span> KeyHasher<span class="special">,</span> <span class="keyword">typename</span> KeyEqual<span class="special">></span> - <span class="identifier">const_iterator</span> <a class="link" href="hashtable.html#idm45971715202336-bb"><span class="identifier">find</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyHasher</span><span class="special">,</span> <span class="identifier">KeyEqual</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">iterator</span><span class="special">,</span> <span class="identifier">iterator</span> <span class="special">></span> <a class="link" href="hashtable.html#idm45971715191872-bb"><span class="identifier">equal_range</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">const_iterator</span> <a class="link" href="../container/vector.html#idm31867-bb"><span class="identifier">find</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyHasher</span><span class="special">,</span> <span class="identifier">KeyEqual</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">iterator</span><span class="special">,</span> <span class="identifier">iterator</span> <span class="special">></span> <a class="link" href="hashtable.html#idm31891-bb"><span class="identifier">equal_range</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> KeyType<span class="special">,</span> <span class="keyword">typename</span> KeyHasher<span class="special">,</span> <span class="keyword">typename</span> KeyEqual<span class="special">></span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">iterator</span><span class="special">,</span> <span class="identifier">iterator</span> <span class="special">></span> - <a class="link" href="hashtable.html#idm45971715187424-bb"><span class="identifier">equal_range</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyHasher</span><span class="special">,</span> <span class="identifier">KeyEqual</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="hashtable.html#idm31902-bb"><span class="identifier">equal_range</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyHasher</span><span class="special">,</span> <span class="identifier">KeyEqual</span><span class="special">)</span><span class="special">;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">></span> - <a class="link" href="hashtable.html#idm45971715177184-bb"><span class="identifier">equal_range</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <a class="link" href="hashtable.html#idm31926-bb"><span class="identifier">equal_range</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> KeyType<span class="special">,</span> <span class="keyword">typename</span> KeyHasher<span class="special">,</span> <span class="keyword">typename</span> KeyEqual<span class="special">></span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">></span> - <a class="link" href="hashtable.html#idm45971715172448-bb"><span class="identifier">equal_range</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyHasher</span><span class="special">,</span> <span class="identifier">KeyEqual</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="hashtable.html#idm45971715161920-bb"><span class="identifier">iterator_to</span></a><span class="special">(</span><span class="identifier">reference</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="identifier">const_iterator</span> <a class="link" href="hashtable.html#idm45971715154960-bb"><span class="identifier">iterator_to</span></a><span class="special">(</span><span class="identifier">const_reference</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="identifier">local_iterator</span> <a class="link" href="hashtable.html#idm45971715148000-bb"><span class="identifier">local_iterator_to</span></a><span class="special">(</span><span class="identifier">reference</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="identifier">const_local_iterator</span> <a class="link" href="hashtable.html#idm45971715141072-bb"><span class="identifier">local_iterator_to</span></a><span class="special">(</span><span class="identifier">const_reference</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="identifier">size_type</span> <a class="link" href="hashtable.html#idm45971715134128-bb"><span class="identifier">bucket_count</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="identifier">size_type</span> <a class="link" href="hashtable.html#idm45971715130272-bb"><span class="identifier">bucket_size</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="identifier">size_type</span> <a class="link" href="hashtable.html#idm45971715124880-bb"><span class="identifier">bucket</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <a class="link" href="hashtable.html#idm31937-bb"><span class="identifier">equal_range</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyHasher</span><span class="special">,</span> <span class="identifier">KeyEqual</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="hashtable.html#idm31961-bb"><span class="identifier">iterator_to</span></a><span class="special">(</span><span class="identifier">reference</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">const_iterator</span> <a class="link" href="hashtable.html#idm31976-bb"><span class="identifier">iterator_to</span></a><span class="special">(</span><span class="identifier">const_reference</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">local_iterator</span> <a class="link" href="hashtable.html#idm31991-bb"><span class="identifier">local_iterator_to</span></a><span class="special">(</span><span class="identifier">reference</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">const_local_iterator</span> <a class="link" href="hashtable.html#idm32006-bb"><span class="identifier">local_iterator_to</span></a><span class="special">(</span><span class="identifier">const_reference</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">size_type</span> <a class="link" href="hashtable.html#idm32021-bb"><span class="identifier">bucket_count</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">size_type</span> <a class="link" href="hashtable.html#idm32030-bb"><span class="identifier">bucket_size</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">size_type</span> <a class="link" href="hashtable.html#idm32043-bb"><span class="identifier">bucket</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> KeyType<span class="special">,</span> <span class="keyword">typename</span> KeyHasher<span class="special">></span> - <span class="identifier">size_type</span> <a class="link" href="hashtable.html#idm45971715119376-bb"><span class="identifier">bucket</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyHasher</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">bucket_ptr</span> <a class="link" href="hashtable.html#idm45971715110784-bb"><span class="identifier">bucket_pointer</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="identifier">local_iterator</span> <a class="link" href="hashtable.html#idm45971715106912-bb"><span class="identifier">begin</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="identifier">const_local_iterator</span> <a class="link" href="hashtable.html#idm45971715100544-bb"><span class="identifier">begin</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="identifier">const_local_iterator</span> <a class="link" href="hashtable.html#idm45971715094176-bb"><span class="identifier">cbegin</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="identifier">local_iterator</span> <a class="link" href="hashtable.html#idm45971715087808-bb"><span class="identifier">end</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="identifier">const_local_iterator</span> <a class="link" href="hashtable.html#idm45971715081456-bb"><span class="identifier">end</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="identifier">const_local_iterator</span> <a class="link" href="hashtable.html#idm45971715075088-bb"><span class="identifier">cend</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">void</span> <a class="link" href="hashtable.html#idm45971715068720-bb"><span class="identifier">rehash</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="bucket_traits.html" title="Struct template bucket_traits">bucket_traits</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">void</span> <a class="link" href="hashtable.html#idm45971715058624-bb"><span class="identifier">full_rehash</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">bool</span> <a class="link" href="hashtable.html#idm45971715051216-bb"><span class="identifier">incremental_rehash</span></a><span class="special">(</span><span class="keyword">bool</span> <span class="special">=</span> <span class="keyword">true</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">bool</span> <a class="link" href="hashtable.html#idm45971715044544-bb"><span class="identifier">incremental_rehash</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="bucket_traits.html" title="Struct template bucket_traits">bucket_traits</a> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="identifier">size_type</span> <a class="link" href="hashtable.html#idm45971715037408-bb"><span class="identifier">split_count</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">size_type</span> <a class="link" href="hashtable.html#idm32056-bb"><span class="identifier">bucket</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyHasher</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">bucket_ptr</span> <a class="link" href="../interprocess/named_recursive_mutex.html#idm32076-bb"><span class="identifier">bucket_pointer</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">local_iterator</span> <a class="link" href="hashtable.html#idm32085-bb"><span class="identifier">begin</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">const_local_iterator</span> <a class="link" href="hashtable.html#idm32100-bb"><span class="identifier">begin</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">const_local_iterator</span> <a class="link" href="hashtable.html#idm32115-bb"><span class="identifier">cbegin</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">local_iterator</span> <a class="link" href="hashtable.html#idm32130-bb"><span class="identifier">end</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">const_local_iterator</span> <a class="link" href="hashtable.html#idm32145-bb"><span class="identifier">end</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">const_local_iterator</span> <a class="link" href="hashtable.html#idm32160-bb"><span class="identifier">cend</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="hashtable.html#idm32175-bb"><span class="identifier">rehash</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="bucket_traits.html" title="Struct template bucket_traits">bucket_traits</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="hashtable.html#idm32197-bb"><span class="identifier">full_rehash</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">bool</span> <a class="link" href="hashtable.html#idm32213-bb"><span class="identifier">incremental_rehash</span></a><span class="special">(</span><span class="keyword">bool</span> <span class="special">=</span> <span class="keyword">true</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">bool</span> <a class="link" href="hashtable.html#idm32231-bb"><span class="identifier">incremental_rehash</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="bucket_traits.html" title="Struct template bucket_traits">bucket_traits</a> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">size_type</span> <a class="link" href="hashtable.html#idm32247-bb"><span class="identifier">split_count</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="comment">// <a class="link" href="hashtable.html#idm45971714998704-bb">public static functions</a></span> - <span class="keyword">static</span> <span class="identifier">local_iterator</span> <a class="link" href="hashtable.html#idm45971714998144-bb"><span class="identifier">s_local_iterator_to</span></a><span class="special">(</span><span class="identifier">reference</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="identifier">const_local_iterator</span> <a class="link" href="hashtable.html#idm45971714989616-bb"><span class="identifier">s_local_iterator_to</span></a><span class="special">(</span><span class="identifier">const_reference</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="identifier">size_type</span> <a class="link" href="hashtable.html#idm45971714981072-bb"><span class="identifier">suggested_upper_bucket_count</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="identifier">size_type</span> <a class="link" href="hashtable.html#idm45971714976016-bb"><span class="identifier">suggested_lower_bucket_count</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="comment">// <a class="link" href="hashtable.html#idm32345-bb">public static functions</a></span> + <span class="keyword">static</span> <span class="identifier">local_iterator</span> <a class="link" href="hashtable.html#idm32346-bb"><span class="identifier">s_local_iterator_to</span></a><span class="special">(</span><span class="identifier">reference</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">const_local_iterator</span> <a class="link" href="hashtable.html#idm32364-bb"><span class="identifier">s_local_iterator_to</span></a><span class="special">(</span><span class="identifier">const_reference</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">size_type</span> <a class="link" href="hashtable.html#idm32382-bb"><span class="identifier">suggested_upper_bucket_count</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">size_type</span> <a class="link" href="hashtable.html#idm32393-bb"><span class="identifier">suggested_lower_bucket_count</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> <span class="comment">// public data members</span> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">bool</span> <span class="identifier">stateful_value_traits</span><span class="special">;</span> @@ -178,9 +184,12 @@ <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">bool</span> <span class="identifier">incremental</span><span class="special">;</span> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">bool</span> <span class="identifier">power_2_buckets</span><span class="special">;</span> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">bool</span> <span class="identifier">optimize_multikey</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">bool</span> <span class="identifier">linear_buckets</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">bool</span> <span class="identifier">fastmod_buckets</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">bucket_overhead</span><span class="special">;</span> <span class="special">}</span><span class="special">;</span></pre></div> <div class="refsect1"> -<a name="id-1.3.20.42.14.3.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.14.25.4"></a><h2>Description</h2> <p>The class template hashtable is an intrusive hash table container, that is used to construct intrusive <a class="link" href="unordered_set.html" title="Class template unordered_set">unordered_set</a> and <a class="link" href="unordered_multiset.html" title="Class template unordered_multiset">unordered_multiset</a> containers. The no-throw guarantee holds only, if the VoidOrKeyEqual object and Hasher don't throw.</p> <p>hashtable is a semi-intrusive container: each object to be stored in the container must contain a proper hook, but the container also needs additional auxiliary memory to work: hashtable needs a pointer to an array of type <code class="computeroutput">bucket_type</code> to be passed in the constructor. This bucket array must have at least the same lifetime as the container. This makes the use of hashtable more complicated than purely intrusive containers. <code class="computeroutput">bucket_type</code> is default-constructible, copyable and assignable</p> <p>The template parameter <code class="computeroutput">T</code> is the type to be managed by the container. The user can specify additional options and if no options are provided default options are used.</p> @@ -190,13 +199,13 @@ <p>hashtables, does not make automatic rehashings nor offers functions related to a load factor. Rehashing can be explicitly requested and the user must provide a new bucket array that will be used from that moment.</p> <p>Since no automatic rehashing is done, iterators are never invalidated when inserting or erasing elements. Iterators are only invalidated when rehashing. </p> <div class="refsect2"> -<a name="id-1.3.20.42.14.3.4.10"></a><h3> +<a name="id-1.3.18.42.14.25.4.10"></a><h3> <a name="boost.intrusive.hashtableconstruct-copy-destruct"></a><code class="computeroutput">hashtable</code> public construct/copy/destruct</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> <li class="listitem"> -<pre class="literallayout"><span class="keyword">explicit</span> <a name="idm45971715032576-bb"></a><span class="identifier">hashtable</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="bucket_traits.html" title="Struct template bucket_traits">bucket_traits</a> <span class="special">&</span> b_traits<span class="special">,</span> +<pre class="literallayout"><span class="keyword">explicit</span> <a name="idm32258-bb"></a><span class="identifier">hashtable</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="bucket_traits.html" title="Struct template bucket_traits">bucket_traits</a> <span class="special">&</span> b_traits<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">hasher</span> <span class="special">&</span> hash_func <span class="special">=</span> <span class="identifier">hasher</span><span class="special">(</span><span class="special">)</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">key_equal</span> <span class="special">&</span> equal_func <span class="special">=</span> <span class="identifier">key_equal</span><span class="special">(</span><span class="special">)</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">value_traits</span> <span class="special">&</span> v_traits <span class="special">=</span> <span class="identifier">value_traits</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span></pre> @@ -208,7 +217,7 @@ </li> <li class="listitem"> <pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Iterator<span class="special">></span> - <a name="idm45971715022512-bb"></a><span class="identifier">hashtable</span><span class="special">(</span><span class="keyword">bool</span> unique<span class="special">,</span> <span class="identifier">Iterator</span> b<span class="special">,</span> <span class="identifier">Iterator</span> e<span class="special">,</span> + <a name="idm32283-bb"></a><span class="identifier">hashtable</span><span class="special">(</span><span class="keyword">bool</span> unique<span class="special">,</span> <span class="identifier">Iterator</span> b<span class="special">,</span> <span class="identifier">Iterator</span> e<span class="special">,</span> <span class="keyword">const</span> <a class="link" href="bucket_traits.html" title="Struct template bucket_traits">bucket_traits</a> <span class="special">&</span> b_traits<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">hasher</span> <span class="special">&</span> hash_func <span class="special">=</span> <span class="identifier">hasher</span><span class="special">(</span><span class="special">)</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">key_equal</span> <span class="special">&</span> equal_func <span class="special">=</span> <span class="identifier">key_equal</span><span class="special">(</span><span class="special">)</span><span class="special">,</span> @@ -220,17 +229,17 @@ <p><span class="bold"><strong>Notes</strong></span>: buckets array must be disposed only after *this is disposed. </p> </li> <li class="listitem"> -<pre class="literallayout"><a name="idm45971715010400-bb"></a><span class="identifier">hashtable</span><span class="special">(</span><a class="link" href="hashtable.html" title="Class template hashtable">hashtable</a> <span class="special">&&</span> x<span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm32315-bb"></a><span class="identifier">hashtable</span><span class="special">(</span><a class="link" href="hashtable.html" title="Class template hashtable">hashtable</a> <span class="special">&&</span> x<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Constructs a container moving resources from another container. Internal value traits, bucket traits, hasher and comparison are move constructed and nodes belonging to x are linked to *this.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> <p><span class="bold"><strong>Throws</strong></span>: If value_traits::node_traits::node's move constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the move constructor of value traits, bucket traits, hasher or comparison throws. </p> </li> <li class="listitem"> -<pre class="literallayout"><a class="link" href="hashtable.html" title="Class template hashtable">hashtable</a> <span class="special">&</span> <a name="idm45971715006096-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><a class="link" href="hashtable.html" title="Class template hashtable">hashtable</a> <span class="special">&&</span> x<span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a class="link" href="hashtable.html" title="Class template hashtable">hashtable</a> <span class="special">&</span> <a name="idm32326-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><a class="link" href="hashtable.html" title="Class template hashtable">hashtable</a> <span class="special">&&</span> x<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Equivalent to swap. </p> </li> <li class="listitem"> -<pre class="literallayout"><a name="idm45971715003280-bb"></a><span class="special">~</span><span class="identifier">hashtable</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm32335-bb"></a><span class="special">~</span><span class="identifier">hashtable</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Detaches all elements from this. The objects in the <code class="computeroutput"><a class="link" href="unordered_set.html" title="Class template unordered_set">unordered_set</a></code> are not deleted (i.e. no destructors are called).</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to the number of elements in the <code class="computeroutput"><a class="link" href="unordered_set.html" title="Class template unordered_set">unordered_set</a></code>, if it's a safe-mode or auto-unlink value. Otherwise constant.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> @@ -238,71 +247,82 @@ </ol></div> </div> <div class="refsect2"> -<a name="id-1.3.20.42.14.3.4.11"></a><h3> -<a name="idm45971715454528-bb"></a><code class="computeroutput">hashtable</code> public member functions</h3> +<a name="id-1.3.18.42.14.25.4.11"></a><h3> +<a name="idm31271-bb"></a><code class="computeroutput">hashtable</code> private member functions</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"><pre class="literallayout"><span class="keyword">void</span> <a name="idm31272-bb"></a><span class="identifier">default_init_actions</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">SizeType</span> <a name="idm31274-bb"></a><span class="identifier">priv_size_count</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">void</span> <a name="idm31276-bb"></a><span class="identifier">priv_size_count</span><span class="special">(</span><span class="identifier">SizeType</span> s<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">void</span> <a name="idm31280-bb"></a><span class="identifier">priv_size_inc</span><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">void</span> <a name="idm31282-bb"></a><span class="identifier">priv_size_dec</span><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +</ol></div> +</div> +<div class="refsect2"> +<a name="id-1.3.18.42.14.25.4.12"></a><h3> +<a name="idm31284-bb"></a><code class="computeroutput">hashtable</code> public member functions</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971715453968-bb"></a><span class="identifier">begin</span><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm31285-bb"></a><span class="identifier">begin</span><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Returns an iterator pointing to the beginning of the <code class="computeroutput"><a class="link" href="unordered_set.html" title="Class template unordered_set">unordered_set</a></code>.</p> <p><span class="bold"><strong>Complexity</strong></span>: Amortized constant time. Worst case (empty <code class="computeroutput"><a class="link" href="unordered_set.html" title="Class template unordered_set">unordered_set</a></code>): O(this->bucket_count())</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971715448624-bb"></a><span class="identifier">begin</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm31296-bb"></a><span class="identifier">begin</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Returns a const_iterator pointing to the beginning of the <code class="computeroutput"><a class="link" href="unordered_set.html" title="Class template unordered_set">unordered_set</a></code>.</p> <p><span class="bold"><strong>Complexity</strong></span>: Amortized constant time. Worst case (empty <code class="computeroutput"><a class="link" href="unordered_set.html" title="Class template unordered_set">unordered_set</a></code>): O(this->bucket_count())</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971715443264-bb"></a><span class="identifier">cbegin</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm31307-bb"></a><span class="identifier">cbegin</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Returns a const_iterator pointing to the beginning of the <code class="computeroutput"><a class="link" href="unordered_set.html" title="Class template unordered_set">unordered_set</a></code>.</p> <p><span class="bold"><strong>Complexity</strong></span>: Amortized constant time. Worst case (empty <code class="computeroutput"><a class="link" href="unordered_set.html" title="Class template unordered_set">unordered_set</a></code>): O(this->bucket_count())</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971715437904-bb"></a><span class="identifier">end</span><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm31318-bb"></a><span class="identifier">end</span><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Returns an iterator pointing to the end of the <code class="computeroutput"><a class="link" href="unordered_set.html" title="Class template unordered_set">unordered_set</a></code>.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971715433344-bb"></a><span class="identifier">end</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm31328-bb"></a><span class="identifier">end</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Returns a const_iterator pointing to the end of the <code class="computeroutput"><a class="link" href="unordered_set.html" title="Class template unordered_set">unordered_set</a></code>.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971715428784-bb"></a><span class="identifier">cend</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm31338-bb"></a><span class="identifier">cend</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Returns a const_iterator pointing to the end of the <code class="computeroutput"><a class="link" href="unordered_set.html" title="Class template unordered_set">unordered_set</a></code>.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">hasher</span> <a name="idm45971715424224-bb"></a><span class="identifier">hash_function</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="identifier">hasher</span> <a name="idm31348-bb"></a><span class="identifier">hash_function</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Returns the hasher object used by the <code class="computeroutput"><a class="link" href="unordered_set.html" title="Class template unordered_set">unordered_set</a></code>.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> <p><span class="bold"><strong>Throws</strong></span>: If hasher copy-constructor throws. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">key_equal</span> <a name="idm45971715419648-bb"></a><span class="identifier">key_eq</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="identifier">key_equal</span> <a name="idm31358-bb"></a><span class="identifier">key_eq</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Returns the key_equal object used by the <code class="computeroutput"><a class="link" href="unordered_set.html" title="Class template unordered_set">unordered_set</a></code>.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> <p><span class="bold"><strong>Throws</strong></span>: If key_equal copy-constructor throws. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">bool</span> <a name="idm45971715415056-bb"></a><span class="identifier">empty</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">bool</span> <a name="idm31368-bb"></a><span class="identifier">empty</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Returns true if the container is empty.</p> <p><span class="bold"><strong>Complexity</strong></span>: if constant-time size and <code class="computeroutput"><a class="link" href="cache_begin.html" title="Struct template cache_begin">cache_begin</a></code> options are disabled, average constant time (worst case, with empty() == true: O(this->bucket_count()). Otherwise constant.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">size_type</span> <a name="idm45971715410368-bb"></a><span class="identifier">size</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="identifier">size_type</span> <a name="idm31378-bb"></a><span class="identifier">size</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Returns the number of elements stored in the <code class="computeroutput"><a class="link" href="unordered_set.html" title="Class template unordered_set">unordered_set</a></code>.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to elements contained in *this if <code class="computeroutput"><a class="link" href="constant_time_size.html" title="Struct template constant_time_size">constant_time_size</a></code> is false. Constant-time otherwise.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971715405024-bb"></a><span class="identifier">swap</span><span class="special">(</span><a class="link" href="hashtable.html" title="Class template hashtable">hashtable</a> <span class="special">&</span> other<span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">void</span> <a name="idm31389-bb"></a><span class="identifier">swap</span><span class="special">(</span><a class="link" href="hashtable.html" title="Class template hashtable">hashtable</a> <span class="special">&</span> other<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: the hasher and the equality function unqualified swap call should not throw.</p> <p><span class="bold"><strong>Effects</strong></span>: Swaps the contents of two unordered_sets. Swaps also the contained bucket array and equality and hasher functors.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> @@ -310,7 +330,7 @@ </li> <li class="listitem"> <pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Cloner<span class="special">,</span> <span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="keyword">void</span> <a name="idm45971715399440-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="hashtable.html" title="Class template hashtable">hashtable</a> <span class="special">&</span> src<span class="special">,</span> <span class="identifier">Cloner</span> cloner<span class="special">,</span> <span class="identifier">Disposer</span> disposer<span class="special">)</span><span class="special">;</span></pre> + <span class="keyword">void</span> <a name="idm31403-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="hashtable.html" title="Class template hashtable">hashtable</a> <span class="special">&</span> src<span class="special">,</span> <span class="identifier">Cloner</span> cloner<span class="special">,</span> <span class="identifier">Disposer</span> disposer<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: Disposer::operator()(pointer) shouldn't throw Cloner should yield to nodes that compare equal and produce the same hash than the original node.</p> <p><span class="bold"><strong>Effects</strong></span>: Erases all the elements from *this calling Disposer::operator()(pointer), clones all the elements from src calling Cloner::operator()(const_reference ) and inserts them on *this. The hash function and the equality predicate are copied from the source.</p> <p>If <code class="computeroutput"><a class="link" href="store_hash.html" title="Struct template store_hash">store_hash</a></code> option is true, this method does not use the hash function.</p> @@ -320,7 +340,7 @@ </li> <li class="listitem"> <pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Cloner<span class="special">,</span> <span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="keyword">void</span> <a name="idm45971715389216-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><a class="link" href="hashtable.html" title="Class template hashtable">hashtable</a> <span class="special">&&</span> src<span class="special">,</span> <span class="identifier">Cloner</span> cloner<span class="special">,</span> <span class="identifier">Disposer</span> disposer<span class="special">)</span><span class="special">;</span></pre> + <span class="keyword">void</span> <a name="idm31427-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><a class="link" href="hashtable.html" title="Class template hashtable">hashtable</a> <span class="special">&&</span> src<span class="special">,</span> <span class="identifier">Cloner</span> cloner<span class="special">,</span> <span class="identifier">Disposer</span> disposer<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: Disposer::operator()(pointer) shouldn't throw Cloner should yield to nodes that compare equal and produce the same hash than the original node.</p> <p><span class="bold"><strong>Effects</strong></span>: Erases all the elements from *this calling Disposer::operator()(pointer), clones all the elements from src calling Cloner::operator()(reference) and inserts them on *this. The hash function and the equality predicate are copied from the source.</p> <p>If <code class="computeroutput"><a class="link" href="store_hash.html" title="Struct template store_hash">store_hash</a></code> option is true, this method does not use the hash function.</p> @@ -329,7 +349,7 @@ <p><span class="bold"><strong>Throws</strong></span>: If cloner or hasher throw or hash or equality predicate copying throws. Basic guarantee. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971715379168-bb"></a><span class="identifier">insert_equal</span><span class="special">(</span><span class="identifier">reference</span> value<span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm31451-bb"></a><span class="identifier">insert_equal</span><span class="special">(</span><span class="identifier">reference</span> value<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: value must be an lvalue</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts the value into the <code class="computeroutput"><a class="link" href="unordered_set.html" title="Class template unordered_set">unordered_set</a></code>.</p> <p><span class="bold"><strong>Returns</strong></span>: An iterator to the inserted value.</p> @@ -338,7 +358,7 @@ <p><span class="bold"><strong>Note</strong></span>: Does not affect the validity of iterators and references. No copy-constructors are called. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Iterator<span class="special">></span> <span class="keyword">void</span> <a name="idm45971715371456-bb"></a><span class="identifier">insert_equal</span><span class="special">(</span><span class="identifier">Iterator</span> b<span class="special">,</span> <span class="identifier">Iterator</span> e<span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Iterator<span class="special">></span> <span class="keyword">void</span> <a name="idm31469-bb"></a><span class="identifier">insert_equal</span><span class="special">(</span><span class="identifier">Iterator</span> b<span class="special">,</span> <span class="identifier">Iterator</span> e<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: Dereferencing iterator must yield an lvalue of type value_type.</p> <p><span class="bold"><strong>Effects</strong></span>: Equivalent to this->insert_equal(t) for each element in [b, e).</p> <p><span class="bold"><strong>Complexity</strong></span>: Average case O(N), where N is distance(b, e). Worst case O(N*this->size()).</p> @@ -346,7 +366,7 @@ <p><span class="bold"><strong>Note</strong></span>: Does not affect the validity of iterators and references. No copy-constructors are called. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">iterator</span><span class="special">,</span> <span class="keyword">bool</span> <span class="special">></span> <a name="idm45971715363712-bb"></a><span class="identifier">insert_unique</span><span class="special">(</span><span class="identifier">reference</span> value<span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">iterator</span><span class="special">,</span> <span class="keyword">bool</span> <span class="special">></span> <a name="idm31488-bb"></a><span class="identifier">insert_unique</span><span class="special">(</span><span class="identifier">reference</span> value<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: value must be an lvalue</p> <p><span class="bold"><strong>Effects</strong></span>: Tries to inserts value into the <code class="computeroutput"><a class="link" href="unordered_set.html" title="Class template unordered_set">unordered_set</a></code>.</p> <p><span class="bold"><strong>Returns</strong></span>: If the value is not already present inserts it and returns a pair containing the iterator to the new value and true. If there is an equivalent value returns a pair containing an iterator to the already present value and false.</p> @@ -355,7 +375,7 @@ <p><span class="bold"><strong>Note</strong></span>: Does not affect the validity of iterators and references. No copy-constructors are called. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Iterator<span class="special">></span> <span class="keyword">void</span> <a name="idm45971715355792-bb"></a><span class="identifier">insert_unique</span><span class="special">(</span><span class="identifier">Iterator</span> b<span class="special">,</span> <span class="identifier">Iterator</span> e<span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Iterator<span class="special">></span> <span class="keyword">void</span> <a name="idm31506-bb"></a><span class="identifier">insert_unique</span><span class="special">(</span><span class="identifier">Iterator</span> b<span class="special">,</span> <span class="identifier">Iterator</span> e<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: Dereferencing iterator must yield an lvalue of type value_type.</p> <p><span class="bold"><strong>Effects</strong></span>: Equivalent to this->insert_unique(t) for each element in [b, e).</p> <p><span class="bold"><strong>Complexity</strong></span>: Average case O(N), where N is distance(b, e). Worst case O(N*this->size()).</p> @@ -365,7 +385,7 @@ <li class="listitem"> <pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> KeyType<span class="special">,</span> <span class="keyword">typename</span> KeyHasher<span class="special">,</span> <span class="keyword">typename</span> KeyEqual<span class="special">></span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">iterator</span><span class="special">,</span> <span class="keyword">bool</span> <span class="special">></span> - <a name="idm45971715348048-bb"></a><span class="identifier">insert_unique_check</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> key<span class="special">,</span> <span class="identifier">KeyHasher</span> hash_func<span class="special">,</span> + <a name="idm31525-bb"></a><span class="identifier">insert_unique_check</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> key<span class="special">,</span> <span class="identifier">KeyHasher</span> hash_func<span class="special">,</span> <span class="identifier">KeyEqual</span> equal_func<span class="special">,</span> <span class="identifier">insert_commit_data</span> <span class="special">&</span> commit_data<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "hash_func" must be a hash function that induces the same hash values as the stored hasher. The difference is that "hash_func" hashes the given key instead of the value_type.</p> <p>"equal_func" must be a equality function that induces the same equality as key_equal. The difference is that "equal_func" compares an arbitrary key with the contained values.</p> @@ -380,7 +400,7 @@ </li> <li class="listitem"> <pre class="literallayout"><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">iterator</span><span class="special">,</span> <span class="keyword">bool</span> <span class="special">></span> -<a name="idm45971715333264-bb"></a><span class="identifier">insert_unique_check</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> key<span class="special">,</span> <span class="identifier">insert_commit_data</span> <span class="special">&</span> commit_data<span class="special">)</span><span class="special">;</span></pre> +<a name="idm31558-bb"></a><span class="identifier">insert_unique_check</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> key<span class="special">,</span> <span class="identifier">insert_commit_data</span> <span class="special">&</span> commit_data<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Checks if a value can be inserted in the <code class="computeroutput"><a class="link" href="unordered_set.html" title="Class template unordered_set">unordered_set</a></code>, using a user provided key instead of the value itself.</p> <p><span class="bold"><strong>Returns</strong></span>: If there is an equivalent value returns a pair containing an iterator to the already present value and false. If the value can be inserted returns true in the returned pair boolean and fills "commit_data" that is meant to be used with the "insert_commit" function.</p> <p><span class="bold"><strong>Complexity</strong></span>: Average case O(1), worst case O(this->size()).</p> @@ -391,7 +411,7 @@ <p>After a successful rehashing insert_commit_data remains valid. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971715323280-bb"></a><span class="identifier">insert_unique_commit</span><span class="special">(</span><span class="identifier">reference</span> value<span class="special">,</span> +<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm31580-bb"></a><span class="identifier">insert_unique_commit</span><span class="special">(</span><span class="identifier">reference</span> value<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">insert_commit_data</span> <span class="special">&</span> commit_data<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: value must be an lvalue of type value_type. commit_data must have been obtained from a previous call to "insert_check". No objects should have been inserted or erased from the <code class="computeroutput"><a class="link" href="unordered_set.html" title="Class template unordered_set">unordered_set</a></code> between the "insert_check" that filled "commit_data" and the call to "insert_commit".</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts the value in the <code class="computeroutput"><a class="link" href="unordered_set.html" title="Class template unordered_set">unordered_set</a></code> using the information obtained from the "commit_data" that a previous "insert_check" filled.</p> @@ -402,21 +422,21 @@ <p>After a successful rehashing insert_commit_data remains valid. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971715313216-bb"></a><span class="identifier">erase</span><span class="special">(</span><span class="identifier">const_iterator</span> i<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">void</span> <a name="idm31602-bb"></a><span class="identifier">erase</span><span class="special">(</span><span class="identifier">const_iterator</span> i<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Erases the element pointed to by i.</p> <p><span class="bold"><strong>Complexity</strong></span>: Average case O(1), worst case O(this->size()).</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Note</strong></span>: Invalidates the iterators (but not the references) to the erased element. No destructors are called. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971715307760-bb"></a><span class="identifier">erase</span><span class="special">(</span><span class="identifier">const_iterator</span> b<span class="special">,</span> <span class="identifier">const_iterator</span> e<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">void</span> <a name="idm31615-bb"></a><span class="identifier">erase</span><span class="special">(</span><span class="identifier">const_iterator</span> b<span class="special">,</span> <span class="identifier">const_iterator</span> e<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Erases the range pointed to by b end e.</p> <p><span class="bold"><strong>Complexity</strong></span>: Average case O(distance(b, e)), worst case O(this->size()).</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Note</strong></span>: Invalidates the iterators (but not the references) to the erased elements. No destructors are called. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">size_type</span> <a name="idm45971715301568-bb"></a><span class="identifier">erase</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> key<span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="identifier">size_type</span> <a name="idm31630-bb"></a><span class="identifier">erase</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> key<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Erases all the elements with the given value.</p> <p><span class="bold"><strong>Returns</strong></span>: The number of erased elements.</p> <p><span class="bold"><strong>Complexity</strong></span>: Average case O(this->count(value)). Worst case O(this->size()).</p> @@ -425,7 +445,7 @@ </li> <li class="listitem"> <pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> KeyType<span class="special">,</span> <span class="keyword">typename</span> KeyHasher<span class="special">,</span> <span class="keyword">typename</span> KeyEqual<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971715295408-bb"></a><span class="identifier">erase</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> key<span class="special">,</span> <span class="identifier">KeyHasher</span> hash_func<span class="special">,</span> + <span class="identifier">size_type</span> <a name="idm31645-bb"></a><span class="identifier">erase</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> key<span class="special">,</span> <span class="identifier">KeyHasher</span> hash_func<span class="special">,</span> <span class="identifier">KeyEqual</span> equal_func<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "hash_func" must be a hash function that induces the same hash values as the stored hasher. The difference is that "hash_func" hashes the given key instead of the value_type.</p> <p>"equal_func" must be a equality function that induces the same equality as key_equal. The difference is that "equal_func" compares an arbitrary key with the contained values.</p> @@ -437,7 +457,7 @@ </li> <li class="listitem"> <pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="keyword">void</span> <a name="idm45971715284448-bb"></a><span class="identifier">erase_and_dispose</span><span class="special">(</span><span class="identifier">const_iterator</span> i<span class="special">,</span> <span class="identifier">Disposer</span> disposer<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> + <span class="keyword">void</span> <a name="idm31671-bb"></a><span class="identifier">erase_and_dispose</span><span class="special">(</span><span class="identifier">const_iterator</span> i<span class="special">,</span> <span class="identifier">Disposer</span> disposer<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: Disposer::operator()(pointer) shouldn't throw.</p> <p><span class="bold"><strong>Effects</strong></span>: Erases the element pointed to by i. Disposer::operator()(pointer) is called for the removed element.</p> <p><span class="bold"><strong>Complexity</strong></span>: Average case O(1), worst case O(this->size()).</p> @@ -446,7 +466,7 @@ </li> <li class="listitem"> <pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="keyword">void</span> <a name="idm45971715276560-bb"></a><span class="identifier">erase_and_dispose</span><span class="special">(</span><span class="identifier">const_iterator</span> b<span class="special">,</span> <span class="identifier">const_iterator</span> e<span class="special">,</span> + <span class="keyword">void</span> <a name="idm31690-bb"></a><span class="identifier">erase_and_dispose</span><span class="special">(</span><span class="identifier">const_iterator</span> b<span class="special">,</span> <span class="identifier">const_iterator</span> e<span class="special">,</span> <span class="identifier">Disposer</span> disposer<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: Disposer::operator()(pointer) shouldn't throw.</p> <p><span class="bold"><strong>Effects</strong></span>: Erases the range pointed to by b end e. Disposer::operator()(pointer) is called for the removed elements.</p> @@ -456,7 +476,7 @@ </li> <li class="listitem"> <pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971715267952-bb"></a><span class="identifier">erase_and_dispose</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> key<span class="special">,</span> <span class="identifier">Disposer</span> disposer<span class="special">)</span><span class="special">;</span></pre> + <span class="identifier">size_type</span> <a name="idm31711-bb"></a><span class="identifier">erase_and_dispose</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> key<span class="special">,</span> <span class="identifier">Disposer</span> disposer<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: Disposer::operator()(pointer) shouldn't throw.</p> <p><span class="bold"><strong>Effects</strong></span>: Erases all the elements with the given value. Disposer::operator()(pointer) is called for the removed elements.</p> <p><span class="bold"><strong>Returns</strong></span>: The number of erased elements.</p> @@ -467,7 +487,7 @@ <li class="listitem"> <pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> KeyType<span class="special">,</span> <span class="keyword">typename</span> KeyHasher<span class="special">,</span> <span class="keyword">typename</span> KeyEqual<span class="special">,</span> <span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971715259312-bb"></a><span class="identifier">erase_and_dispose</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> key<span class="special">,</span> <span class="identifier">KeyHasher</span> hash_func<span class="special">,</span> + <span class="identifier">size_type</span> <a name="idm31732-bb"></a><span class="identifier">erase_and_dispose</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> key<span class="special">,</span> <span class="identifier">KeyHasher</span> hash_func<span class="special">,</span> <span class="identifier">KeyEqual</span> equal_func<span class="special">,</span> <span class="identifier">Disposer</span> disposer<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: Disposer::operator()(pointer) shouldn't throw.</p> <p><span class="bold"><strong>Effects</strong></span>: Erases all the elements with the given key. according to the comparison functor "equal_func". Disposer::operator()(pointer) is called for the removed elements.</p> @@ -477,14 +497,14 @@ <p><span class="bold"><strong>Note</strong></span>: Invalidates the iterators to the erased elements. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971715247664-bb"></a><span class="identifier">clear</span><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">void</span> <a name="idm31760-bb"></a><span class="identifier">clear</span><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Erases all of the elements.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to the number of elements on the container. if it's a safe-mode or auto-unlink value_type. Constant time otherwise.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Note</strong></span>: Invalidates the iterators (but not the references) to the erased elements. No destructors are called. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Disposer<span class="special">></span> <span class="keyword">void</span> <a name="idm45971715242800-bb"></a><span class="identifier">clear_and_dispose</span><span class="special">(</span><span class="identifier">Disposer</span> disposer<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Disposer<span class="special">></span> <span class="keyword">void</span> <a name="idm31771-bb"></a><span class="identifier">clear_and_dispose</span><span class="special">(</span><span class="identifier">Disposer</span> disposer<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: Disposer::operator()(pointer) shouldn't throw.</p> <p><span class="bold"><strong>Effects</strong></span>: Erases all of the elements.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to the number of elements on the container. Disposer::operator()(pointer) is called for the removed elements.</p> @@ -492,14 +512,14 @@ <p><span class="bold"><strong>Note</strong></span>: Invalidates the iterators (but not the references) to the erased elements. No destructors are called. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">size_type</span> <a name="idm45971715235536-bb"></a><span class="identifier">count</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> key<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="identifier">size_type</span> <a name="idm31788-bb"></a><span class="identifier">count</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> key<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Returns the number of contained elements with the given value</p> <p><span class="bold"><strong>Complexity</strong></span>: Average case O(1), worst case O(this->size()).</p> <p><span class="bold"><strong>Throws</strong></span>: If the internal hasher or the equality functor throws. </p> </li> <li class="listitem"> <pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> KeyType<span class="special">,</span> <span class="keyword">typename</span> KeyHasher<span class="special">,</span> <span class="keyword">typename</span> KeyEqual<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971715230928-bb"></a><span class="identifier">count</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> key<span class="special">,</span> <span class="identifier">KeyHasher</span> hash_func<span class="special">,</span> + <span class="identifier">size_type</span> <a name="idm31799-bb"></a><span class="identifier">count</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> key<span class="special">,</span> <span class="identifier">KeyHasher</span> hash_func<span class="special">,</span> <span class="identifier">KeyEqual</span> equal_func<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "hash_func" must be a hash function that induces the same hash values as the stored hasher. The difference is that "hash_func" hashes the given key instead of the value_type.</p> <p>"equal_func" must be a equality function that induces the same equality as key_equal. The difference is that "equal_func" compares an arbitrary key with the contained values.</p> @@ -508,14 +528,14 @@ <p><span class="bold"><strong>Throws</strong></span>: If hash_func or equal throw. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971715221552-bb"></a><span class="identifier">find</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> key<span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm31821-bb"></a><span class="identifier">find</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> key<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Finds an iterator to the first element is equal to "value" or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Average case O(1), worst case O(this->size()).</p> <p><span class="bold"><strong>Throws</strong></span>: If the internal hasher or the equality functor throws. </p> </li> <li class="listitem"> <pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> KeyType<span class="special">,</span> <span class="keyword">typename</span> KeyHasher<span class="special">,</span> <span class="keyword">typename</span> KeyEqual<span class="special">></span> - <span class="identifier">iterator</span> <a name="idm45971715217184-bb"></a><span class="identifier">find</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> key<span class="special">,</span> <span class="identifier">KeyHasher</span> hash_func<span class="special">,</span> <span class="identifier">KeyEqual</span> equal_func<span class="special">)</span><span class="special">;</span></pre> + <span class="identifier">iterator</span> <a name="idm31832-bb"></a><span class="identifier">find</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> key<span class="special">,</span> <span class="identifier">KeyHasher</span> hash_func<span class="special">,</span> <span class="identifier">KeyEqual</span> equal_func<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "hash_func" must be a hash function that induces the same hash values as the stored hasher. The difference is that "hash_func" hashes the given key instead of the value_type.</p> <p>"equal_func" must be a equality function that induces the same equality as key_equal. The difference is that "equal_func" compares an arbitrary key with the contained values.</p> <p><span class="bold"><strong>Effects</strong></span>: Finds an iterator to the first element whose key is "key" according to the given hash and equality functor or end() if that element does not exist.</p> @@ -524,7 +544,7 @@ <p><span class="bold"><strong>Note</strong></span>: This function is used when constructing a value_type is expensive and the value_type can be compared with a cheaper key type. Usually this key is part of the value_type. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971715206992-bb"></a><span class="identifier">find</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> key<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm31856-bb"></a><span class="identifier">find</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> key<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Finds a const_iterator to the first element whose key is "key" or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Average case O(1), worst case O(this->size()).</p> <p><span class="bold"><strong>Throws</strong></span>: If the internal hasher or the equality functor throws. </p> @@ -532,7 +552,7 @@ <li class="listitem"> <pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> KeyType<span class="special">,</span> <span class="keyword">typename</span> KeyHasher<span class="special">,</span> <span class="keyword">typename</span> KeyEqual<span class="special">></span> <span class="identifier">const_iterator</span> - <a name="idm45971715202336-bb"></a><span class="identifier">find</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> key<span class="special">,</span> <span class="identifier">KeyHasher</span> hash_func<span class="special">,</span> <span class="identifier">KeyEqual</span> equal_func<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> + <a name="idm31867-bb"></a><span class="identifier">find</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> key<span class="special">,</span> <span class="identifier">KeyHasher</span> hash_func<span class="special">,</span> <span class="identifier">KeyEqual</span> equal_func<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "hash_func" must be a hash function that induces the same hash values as the stored hasher. The difference is that "hash_func" hashes the given key instead of the value_type.</p> <p>"equal_func" must be a equality function that induces the same equality as key_equal. The difference is that "equal_func" compares an arbitrary key with the contained values.</p> <p><span class="bold"><strong>Effects</strong></span>: Finds an iterator to the first element whose key is "key" according to the given hasher and equality functor or end() if that element does not exist.</p> @@ -541,7 +561,7 @@ <p><span class="bold"><strong>Note</strong></span>: This function is used when constructing a value_type is expensive and the value_type can be compared with a cheaper key type. Usually this key is part of the value_type. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">iterator</span><span class="special">,</span> <span class="identifier">iterator</span> <span class="special">></span> <a name="idm45971715191872-bb"></a><span class="identifier">equal_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> key<span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">iterator</span><span class="special">,</span> <span class="identifier">iterator</span> <span class="special">></span> <a name="idm31891-bb"></a><span class="identifier">equal_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> key<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Returns a range containing all elements with values equivalent to value. Returns std::make_pair(this->end(), this->end()) if no such elements exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Average case O(this->count(value)). Worst case O(this->size()).</p> <p><span class="bold"><strong>Throws</strong></span>: If the internal hasher or the equality functor throws. </p> @@ -549,7 +569,7 @@ <li class="listitem"> <pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> KeyType<span class="special">,</span> <span class="keyword">typename</span> KeyHasher<span class="special">,</span> <span class="keyword">typename</span> KeyEqual<span class="special">></span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">iterator</span><span class="special">,</span> <span class="identifier">iterator</span> <span class="special">></span> - <a name="idm45971715187424-bb"></a><span class="identifier">equal_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> key<span class="special">,</span> <span class="identifier">KeyHasher</span> hash_func<span class="special">,</span> <span class="identifier">KeyEqual</span> equal_func<span class="special">)</span><span class="special">;</span></pre> + <a name="idm31902-bb"></a><span class="identifier">equal_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> key<span class="special">,</span> <span class="identifier">KeyHasher</span> hash_func<span class="special">,</span> <span class="identifier">KeyEqual</span> equal_func<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "hash_func" must be a hash function that induces the same hash values as the stored hasher. The difference is that "hash_func" hashes the given key instead of the value_type.</p> <p>"equal_func" must be a equality function that induces the same equality as key_equal. The difference is that "equal_func" compares an arbitrary key with the contained values.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns a range containing all elements with equivalent keys. Returns std::make_pair(this->end(), this->end()) if no such elements exist.</p> @@ -559,7 +579,7 @@ </li> <li class="listitem"> <pre class="literallayout"><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">></span> -<a name="idm45971715177184-bb"></a><span class="identifier">equal_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> key<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<a name="idm31926-bb"></a><span class="identifier">equal_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> key<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Returns a range containing all elements with values equivalent to value. Returns std::make_pair(this->end(), this->end()) if no such elements exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Average case O(this->count(value)). Worst case O(this->size()).</p> <p><span class="bold"><strong>Throws</strong></span>: If the internal hasher or the equality functor throws. </p> @@ -567,7 +587,7 @@ <li class="listitem"> <pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> KeyType<span class="special">,</span> <span class="keyword">typename</span> KeyHasher<span class="special">,</span> <span class="keyword">typename</span> KeyEqual<span class="special">></span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">></span> - <a name="idm45971715172448-bb"></a><span class="identifier">equal_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> key<span class="special">,</span> <span class="identifier">KeyHasher</span> hash_func<span class="special">,</span> <span class="identifier">KeyEqual</span> equal_func<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> + <a name="idm31937-bb"></a><span class="identifier">equal_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> key<span class="special">,</span> <span class="identifier">KeyHasher</span> hash_func<span class="special">,</span> <span class="identifier">KeyEqual</span> equal_func<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "hash_func" must be a hash function that induces the same hash values as the stored hasher. The difference is that "hash_func" hashes the given key instead of the value_type.</p> <p>"equal_func" must be a equality function that induces the same equality as key_equal. The difference is that "equal_func" compares an arbitrary key with the contained values.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns a range containing all elements with equivalent keys. Returns std::make_pair(this->end(), this->end()) if no such elements exist.</p> @@ -576,48 +596,48 @@ <p><span class="bold"><strong>Note</strong></span>: This function is used when constructing a value_type is expensive and the value_type can be compared with a cheaper key type. Usually this key is part of the value_type. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971715161920-bb"></a><span class="identifier">iterator_to</span><span class="special">(</span><span class="identifier">reference</span> value<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm31961-bb"></a><span class="identifier">iterator_to</span><span class="special">(</span><span class="identifier">reference</span> value<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: value must be an lvalue and shall be in a <code class="computeroutput"><a class="link" href="unordered_set.html" title="Class template unordered_set">unordered_set</a></code> of appropriate type. Otherwise the behavior is undefined.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns: a valid iterator belonging to the <code class="computeroutput"><a class="link" href="unordered_set.html" title="Class template unordered_set">unordered_set</a></code> that points to the value</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> <p><span class="bold"><strong>Throws</strong></span>: If the internal hash function throws. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971715154960-bb"></a><span class="identifier">iterator_to</span><span class="special">(</span><span class="identifier">const_reference</span> value<span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm31976-bb"></a><span class="identifier">iterator_to</span><span class="special">(</span><span class="identifier">const_reference</span> value<span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: value must be an lvalue and shall be in a <code class="computeroutput"><a class="link" href="unordered_set.html" title="Class template unordered_set">unordered_set</a></code> of appropriate type. Otherwise the behavior is undefined.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns: a valid const_iterator belonging to the <code class="computeroutput"><a class="link" href="unordered_set.html" title="Class template unordered_set">unordered_set</a></code> that points to the value</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> <p><span class="bold"><strong>Throws</strong></span>: If the internal hash function throws. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">local_iterator</span> <a name="idm45971715148000-bb"></a><span class="identifier">local_iterator_to</span><span class="special">(</span><span class="identifier">reference</span> value<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="identifier">local_iterator</span> <a name="idm31991-bb"></a><span class="identifier">local_iterator_to</span><span class="special">(</span><span class="identifier">reference</span> value<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: value must be an lvalue and shall be in a <code class="computeroutput"><a class="link" href="unordered_set.html" title="Class template unordered_set">unordered_set</a></code> of appropriate type. Otherwise the behavior is undefined.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns: a valid local_iterator belonging to the <code class="computeroutput"><a class="link" href="unordered_set.html" title="Class template unordered_set">unordered_set</a></code> that points to the value</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_local_iterator</span> <a name="idm45971715141072-bb"></a><span class="identifier">local_iterator_to</span><span class="special">(</span><span class="identifier">const_reference</span> value<span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="identifier">const_local_iterator</span> <a name="idm32006-bb"></a><span class="identifier">local_iterator_to</span><span class="special">(</span><span class="identifier">const_reference</span> value<span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: value must be an lvalue and shall be in a <code class="computeroutput"><a class="link" href="unordered_set.html" title="Class template unordered_set">unordered_set</a></code> of appropriate type. Otherwise the behavior is undefined.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns: a valid const_local_iterator belonging to the <code class="computeroutput"><a class="link" href="unordered_set.html" title="Class template unordered_set">unordered_set</a></code> that points to the value</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">size_type</span> <a name="idm45971715134128-bb"></a><span class="identifier">bucket_count</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="identifier">size_type</span> <a name="idm32021-bb"></a><span class="identifier">bucket_count</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Returns the number of buckets passed in the constructor or the last rehash function.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">size_type</span> <a name="idm45971715130272-bb"></a><span class="identifier">bucket_size</span><span class="special">(</span><span class="identifier">size_type</span> n<span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="identifier">size_type</span> <a name="idm32030-bb"></a><span class="identifier">bucket_size</span><span class="special">(</span><span class="identifier">size_type</span> n<span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: n is in the range [0, this->bucket_count()).</p> <p><span class="bold"><strong>Effects</strong></span>: Returns the number of elements in the nth bucket.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">size_type</span> <a name="idm45971715124880-bb"></a><span class="identifier">bucket</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> k<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="identifier">size_type</span> <a name="idm32043-bb"></a><span class="identifier">bucket</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> k<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Returns the index of the bucket in which elements with keys equivalent to k would be found, if any such element existed.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> <p><span class="bold"><strong>Throws</strong></span>: If the hash functor throws.</p> @@ -625,7 +645,7 @@ </li> <li class="listitem"> <pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> KeyType<span class="special">,</span> <span class="keyword">typename</span> KeyHasher<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971715119376-bb"></a><span class="identifier">bucket</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> k<span class="special">,</span> <span class="identifier">KeyHasher</span> hash_func<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> + <span class="identifier">size_type</span> <a name="idm32056-bb"></a><span class="identifier">bucket</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> k<span class="special">,</span> <span class="identifier">KeyHasher</span> hash_func<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "hash_func" must be a hash function that induces the same hash values as the stored hasher. The difference is that "hash_func" hashes the given key instead of the value_type.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns the index of the bucket in which elements with keys equivalent to k would be found, if any such element existed.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> @@ -633,13 +653,13 @@ <p><span class="bold"><strong>Note</strong></span>: the return value is in the range [0, this->bucket_count()). </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">bucket_ptr</span> <a name="idm45971715110784-bb"></a><span class="identifier">bucket_pointer</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="identifier">bucket_ptr</span> <a name="idm32076-bb"></a><span class="identifier">bucket_pointer</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Returns the bucket array pointer passed in the constructor or the last rehash function.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">local_iterator</span> <a name="idm45971715106912-bb"></a><span class="identifier">begin</span><span class="special">(</span><span class="identifier">size_type</span> n<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="identifier">local_iterator</span> <a name="idm32085-bb"></a><span class="identifier">begin</span><span class="special">(</span><span class="identifier">size_type</span> n<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: n is in the range [0, this->bucket_count()).</p> <p><span class="bold"><strong>Effects</strong></span>: Returns a local_iterator pointing to the beginning of the sequence stored in the bucket n.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> @@ -647,7 +667,7 @@ <p><span class="bold"><strong>Note</strong></span>: [this->begin(n), this->end(n)) is a valid range containing all of the elements in the nth bucket. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_local_iterator</span> <a name="idm45971715100544-bb"></a><span class="identifier">begin</span><span class="special">(</span><span class="identifier">size_type</span> n<span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="identifier">const_local_iterator</span> <a name="idm32100-bb"></a><span class="identifier">begin</span><span class="special">(</span><span class="identifier">size_type</span> n<span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: n is in the range [0, this->bucket_count()).</p> <p><span class="bold"><strong>Effects</strong></span>: Returns a const_local_iterator pointing to the beginning of the sequence stored in the bucket n.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> @@ -655,7 +675,7 @@ <p><span class="bold"><strong>Note</strong></span>: [this->begin(n), this->end(n)) is a valid range containing all of the elements in the nth bucket. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_local_iterator</span> <a name="idm45971715094176-bb"></a><span class="identifier">cbegin</span><span class="special">(</span><span class="identifier">size_type</span> n<span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="identifier">const_local_iterator</span> <a name="idm32115-bb"></a><span class="identifier">cbegin</span><span class="special">(</span><span class="identifier">size_type</span> n<span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: n is in the range [0, this->bucket_count()).</p> <p><span class="bold"><strong>Effects</strong></span>: Returns a const_local_iterator pointing to the beginning of the sequence stored in the bucket n.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> @@ -663,7 +683,7 @@ <p><span class="bold"><strong>Note</strong></span>: [this->begin(n), this->end(n)) is a valid range containing all of the elements in the nth bucket. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">local_iterator</span> <a name="idm45971715087808-bb"></a><span class="identifier">end</span><span class="special">(</span><span class="identifier">size_type</span> n<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="identifier">local_iterator</span> <a name="idm32130-bb"></a><span class="identifier">end</span><span class="special">(</span><span class="identifier">size_type</span> n<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: n is in the range [0, this->bucket_count()).</p> <p><span class="bold"><strong>Effects</strong></span>: Returns a local_iterator pointing to the end of the sequence stored in the bucket n.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> @@ -671,7 +691,7 @@ <p><span class="bold"><strong>Note</strong></span>: [this->begin(n), this->end(n)) is a valid range containing all of the elements in the nth bucket. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_local_iterator</span> <a name="idm45971715081456-bb"></a><span class="identifier">end</span><span class="special">(</span><span class="identifier">size_type</span> n<span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="identifier">const_local_iterator</span> <a name="idm32145-bb"></a><span class="identifier">end</span><span class="special">(</span><span class="identifier">size_type</span> n<span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: n is in the range [0, this->bucket_count()).</p> <p><span class="bold"><strong>Effects</strong></span>: Returns a const_local_iterator pointing to the end of the sequence stored in the bucket n.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> @@ -679,7 +699,7 @@ <p><span class="bold"><strong>Note</strong></span>: [this->begin(n), this->end(n)) is a valid range containing all of the elements in the nth bucket. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_local_iterator</span> <a name="idm45971715075088-bb"></a><span class="identifier">cend</span><span class="special">(</span><span class="identifier">size_type</span> n<span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="identifier">const_local_iterator</span> <a name="idm32160-bb"></a><span class="identifier">cend</span><span class="special">(</span><span class="identifier">size_type</span> n<span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: n is in the range [0, this->bucket_count()).</p> <p><span class="bold"><strong>Effects</strong></span>: Returns a const_local_iterator pointing to the end of the sequence stored in the bucket n.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> @@ -687,7 +707,7 @@ <p><span class="bold"><strong>Note</strong></span>: [this->begin(n), this->end(n)) is a valid range containing all of the elements in the nth bucket. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971715068720-bb"></a><span class="identifier">rehash</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="bucket_traits.html" title="Struct template bucket_traits">bucket_traits</a> <span class="special">&</span> new_bucket_traits<span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">void</span> <a name="idm32175-bb"></a><span class="identifier">rehash</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="bucket_traits.html" title="Struct template bucket_traits">bucket_traits</a> <span class="special">&</span> new_bucket_traits<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: new_bucket_traits can hold a pointer to a new bucket array or the same as the old bucket array with a different length. new_size is the length of the the array pointed by new_buckets. If new_bucket_traits.bucket_begin() == this->bucket_pointer() new_bucket_traits.bucket_count() can be bigger or smaller than this->bucket_count(). 'new_bucket_traits' copy constructor should not throw.</p> <p><span class="bold"><strong>Effects</strong></span>: If <code class="computeroutput">new_bucket_traits.bucket_begin() == this->bucket_pointer()</code> is false, unlinks values from the old bucket and inserts then in the new one according to the hash value of values.</p> <p>If <code class="computeroutput">new_bucket_traits.bucket_begin() == this->bucket_pointer()</code> is true, the implementations avoids moving values as much as possible.</p> @@ -698,7 +718,7 @@ <p><span class="bold"><strong>Throws</strong></span>: If the hasher functor throws. Basic guarantee. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971715058624-bb"></a><span class="identifier">full_rehash</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">void</span> <a name="idm32197-bb"></a><span class="identifier">full_rehash</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Note</strong></span>: This function is used when keys from inserted elements are changed (e.g. a language change when key is a string) but uniqueness and hash properties are preserved so a fast full rehash recovers invariants for *this without extracting and reinserting all elements again.</p> <p><span class="bold"><strong>Requires</strong></span>: Calls produced to the hash function should not alter the value uniqueness properties of already inserted elements. If hasher(key1) == hasher(key2) was true when elements were inserted, it shall be true during calls produced in the execution of this function.</p> <p>key_equal is not called inside this function so it is assumed that key_equal(value1, value2) should produce the same results as before for inserted elements.</p> @@ -708,16 +728,16 @@ <p><span class="bold"><strong>Throws</strong></span>: If the hasher functor throws. Basic guarantee. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">bool</span> <a name="idm45971715051216-bb"></a><span class="identifier">incremental_rehash</span><span class="special">(</span><span class="keyword">bool</span> grow <span class="special">=</span> <span class="keyword">true</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">bool</span> <a name="idm32213-bb"></a><span class="identifier">incremental_rehash</span><span class="special">(</span><span class="keyword">bool</span> grow <span class="special">=</span> <span class="keyword">true</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>:</p> <p><span class="bold"><strong>Effects</strong></span>:</p> <p><span class="bold"><strong>Complexity</strong></span>:</p> <p><span class="bold"><strong>Throws</strong></span>:</p> <p><span class="bold"><strong>Note</strong></span>: this method is only available if incremental<true> option is activated. </p> -<p>grow </p> +<p>grow</p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">bool</span> <a name="idm45971715044544-bb"></a><span class="identifier">incremental_rehash</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="bucket_traits.html" title="Struct template bucket_traits">bucket_traits</a> <span class="special">&</span> new_bucket_traits<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">bool</span> <a name="idm32231-bb"></a><span class="identifier">incremental_rehash</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="bucket_traits.html" title="Struct template bucket_traits">bucket_traits</a> <span class="special">&</span> new_bucket_traits<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: If new_bucket_traits.bucket_count() is not this->bucket_count()/2 or this->bucket_count()*2, or this->split_bucket() != new_bucket_traits.bucket_count() returns false and does nothing.</p> <p>Otherwise, copy assigns new_bucket_traits to the internal <code class="computeroutput"><a class="link" href="bucket_traits.html" title="Struct template bucket_traits">bucket_traits</a></code> and transfers all the objects from old buckets to the new ones.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to size().</p> @@ -725,7 +745,7 @@ <p><span class="bold"><strong>Note</strong></span>: this method is only available if incremental<true> option is activated. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">size_type</span> <a name="idm45971715037408-bb"></a><span class="identifier">split_count</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="identifier">size_type</span> <a name="idm32247-bb"></a><span class="identifier">split_count</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: incremental<> option must be set</p> <p><span class="bold"><strong>Effects</strong></span>: returns the current split count</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant</p> @@ -734,11 +754,11 @@ </ol></div> </div> <div class="refsect2"> -<a name="id-1.3.20.42.14.3.4.12"></a><h3> -<a name="idm45971714998704-bb"></a><code class="computeroutput">hashtable</code> public static functions</h3> +<a name="id-1.3.18.42.14.25.4.13"></a><h3> +<a name="idm32345-bb"></a><code class="computeroutput">hashtable</code> public static functions</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="identifier">local_iterator</span> <a name="idm45971714998144-bb"></a><span class="identifier">s_local_iterator_to</span><span class="special">(</span><span class="identifier">reference</span> value<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="identifier">local_iterator</span> <a name="idm32346-bb"></a><span class="identifier">s_local_iterator_to</span><span class="special">(</span><span class="identifier">reference</span> value<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: value must be an lvalue and shall be in a <code class="computeroutput"><a class="link" href="unordered_set.html" title="Class template unordered_set">unordered_set</a></code> of appropriate type. Otherwise the behavior is undefined.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns: a valid local_iterator belonging to the <code class="computeroutput"><a class="link" href="unordered_set.html" title="Class template unordered_set">unordered_set</a></code> that points to the value</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> @@ -747,7 +767,7 @@ </li> <li class="listitem"> <pre class="literallayout"><span class="keyword">static</span> <span class="identifier">const_local_iterator</span> -<a name="idm45971714989616-bb"></a><span class="identifier">s_local_iterator_to</span><span class="special">(</span><span class="identifier">const_reference</span> value<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<a name="idm32364-bb"></a><span class="identifier">s_local_iterator_to</span><span class="special">(</span><span class="identifier">const_reference</span> value<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: value must be an lvalue and shall be in a <code class="computeroutput"><a class="link" href="unordered_set.html" title="Class template unordered_set">unordered_set</a></code> of appropriate type. Otherwise the behavior is undefined.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns: a valid const_local_iterator belonging to the <code class="computeroutput"><a class="link" href="unordered_set.html" title="Class template unordered_set">unordered_set</a></code> that points to the value</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> @@ -755,13 +775,13 @@ <p><span class="bold"><strong>Note</strong></span>: This static function is available only if the <span class="emphasis"><em>value traits</em></span> is stateless. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="identifier">size_type</span> <a name="idm45971714981072-bb"></a><span class="identifier">suggested_upper_bucket_count</span><span class="special">(</span><span class="identifier">size_type</span> n<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="identifier">size_type</span> <a name="idm32382-bb"></a><span class="identifier">suggested_upper_bucket_count</span><span class="special">(</span><span class="identifier">size_type</span> n<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Returns the nearest new bucket count optimized for the container that is bigger or equal than n. This suggestion can be used to create bucket arrays with a size that will usually improve container's performance. If such value does not exist, the higher possible value is returned.</p> <p><span class="bold"><strong>Complexity</strong></span>: Amortized constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="identifier">size_type</span> <a name="idm45971714976016-bb"></a><span class="identifier">suggested_lower_bucket_count</span><span class="special">(</span><span class="identifier">size_type</span> n<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="identifier">size_type</span> <a name="idm32393-bb"></a><span class="identifier">suggested_lower_bucket_count</span><span class="special">(</span><span class="identifier">size_type</span> n<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Returns the nearest new bucket count optimized for the container that is smaller or equal than n. This suggestion can be used to create bucket arrays with a size that will usually improve container's performance. If such value does not exist, the lowest possible value is returned.</p> <p><span class="bold"><strong>Complexity</strong></span>: Amortized constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> @@ -770,17 +790,14 @@ </div> </div> </div> -<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> -<td align="left"></td> -<td align="right"><div class="copyright-footer">Copyright © 2005 Olaf Krzikalla<br>Copyright © 2006-2015 Ion Gaztanaga<p> +<div class="copyright-footer">Copyright © 2005 Olaf Krzikalla<br>Copyright © 2006-2015 Ion Gaztanaga<p> Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) </p> -</div></td> -</tr></table> +</div> <hr> <div class="spirit-nav"> -<a accesskey="p" href="derivation_value_traits.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.hashtable_hpp"><img src="../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="make_hashtable.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +<a accesskey="p" href="hashdata_internal.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.hashtable_hpp"><img src="../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="hashtable_defaults.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> </div> </body> </html> |