diff options
Diffstat (limited to 'doc/html/boost/intrusive')
193 files changed, 11364 insertions, 12280 deletions
diff --git a/doc/html/boost/intrusive/any_base_hook.html b/doc/html/boost/intrusive/any_base_hook.html index b39710bb79..4f0256d0aa 100644 --- a/doc/html/boost/intrusive/any_base_hook.html +++ b/doc/html/boost/intrusive/any_base_hook.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.any_hook_hpp" title="Header <boost/intrusive/any_hook.hpp>"> <link rel="prev" href="../../intrusive/reference.html" title="Reference"> <link rel="next" href="any_member_hook.html" title="Class template any_member_hook"> +<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> @@ -29,63 +30,63 @@ <h2><span class="refentrytitle">Class template any_base_hook</span></h2> <p>boost::intrusive::any_base_hook</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.any_hook_hpp" title="Header <boost/intrusive/any_hook.hpp>">boost/intrusive/any_hook.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.any_hook_hpp" title="Header <boost/intrusive/any_hook.hpp>">boost/intrusive/any_hook.hpp</a>> </span><span class="keyword">template</span><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="any_base_hook.html" title="Class template any_base_hook">any_base_hook</a> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">make_any_base_hook</span><span class="special">::</span><span class="identifier">type</span><span class="special"><</span> <span class="identifier">O1</span><span class="special">,</span> <span class="identifier">O2</span><span class="special">,</span> <span class="identifier">O3</span> <span class="special">></span> <span class="special">{</span> +<span class="keyword">class</span> <a class="link" href="any_base_hook.html" title="Class template any_base_hook">any_base_hook</a> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">make_any_base_hook</span><span class="special">::</span><span class="identifier">type</span> <span class="special">{</span> <span class="keyword">public</span><span class="special">:</span> <span class="comment">// <a class="link" href="any_base_hook.html#boost.intrusive.any_base_hookconstruct-copy-destruct">construct/copy/destruct</a></span> - <a class="link" href="any_base_hook.html#idm45971728139264-bb"><span class="identifier">any_base_hook</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> - <a class="link" href="any_base_hook.html#idm45971728136000-bb"><span class="identifier">any_base_hook</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="any_base_hook.html" title="Class template any_base_hook">any_base_hook</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span> - <a class="link" href="any_base_hook.html" title="Class template any_base_hook">any_base_hook</a> <span class="special">&</span> <a class="link" href="any_base_hook.html#idm45971754411808-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="any_base_hook.html" title="Class template any_base_hook">any_base_hook</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span> - <a class="link" href="any_base_hook.html#idm45971754406640-bb"><span class="special">~</span><span class="identifier">any_base_hook</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="any_base_hook.html#idm19804-bb"><span class="identifier">any_base_hook</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="../container/pmr/unsynchronized_po_idm19692.html#idm19812-bb"><span class="identifier">any_base_hook</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="any_base_hook.html" title="Class template any_base_hook">any_base_hook</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="any_base_hook.html" title="Class template any_base_hook">any_base_hook</a> <span class="special">&</span> <a class="link" href="any_base_hook.html#idm19826-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="any_base_hook.html" title="Class template any_base_hook">any_base_hook</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="any_base_hook.html#idm19840-bb"><span class="special">~</span><span class="identifier">any_base_hook</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> - <span class="comment">// <a class="link" href="any_base_hook.html#idm45971728145504-bb">public member functions</a></span> - <span class="keyword">bool</span> <a class="link" href="any_base_hook.html#idm45971728144944-bb"><span class="identifier">is_linked</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="comment">// <a class="link" href="../container/pmr/unsynchronized_po_idm19692.html#idm19791-bb">public member functions</a></span> + <span class="keyword">bool</span> <a class="link" href="any_base_hook.html#idm19792-bb"><span class="identifier">is_linked</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</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.2.3.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.2.3.4"></a><h2>Description</h2> <p>Derive a class from this hook in order to store objects of that class in an intrusive container.</p> <p>The hook admits the following options: <code class="computeroutput">tag<></code>, <code class="computeroutput">void_pointer<></code> and <code class="computeroutput">link_mode<></code>.</p> <p><code class="computeroutput">tag<></code> defines a tag to identify the node. The same tag value can be used in different classes, but if a class is derived from more than one <code class="computeroutput"><a class="link" href="any_base_hook.html" title="Class template any_base_hook">any_base_hook</a></code>, then each <code class="computeroutput"><a class="link" href="any_base_hook.html" title="Class template any_base_hook">any_base_hook</a></code> needs its unique tag.</p> <p><code class="computeroutput">link_mode<></code> will specify the linking mode of the hook (<code class="computeroutput">normal_link</code>, <code class="computeroutput">safe_link</code>).</p> <p><code class="computeroutput">void_pointer<></code> is the pointer type that will be used internally in the hook and the container configured to use this hook. </p> <div class="refsect2"> -<a name="id-1.3.20.42.2.3.4.7"></a><h3> +<a name="id-1.3.18.42.2.3.4.7"></a><h3> <a name="boost.intrusive.any_base_hookconstruct-copy-destruct"></a><code class="computeroutput">any_base_hook</code> public construct/copy/destruct</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> <li class="listitem"> -<pre class="literallayout"><a name="idm45971728139264-bb"></a><span class="identifier">any_base_hook</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm19804-bb"></a><span class="identifier">any_base_hook</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: If <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is or <code class="computeroutput">safe_link</code> initializes the node to an unlinked state.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><a name="idm45971728136000-bb"></a><span class="identifier">any_base_hook</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="any_base_hook.html" title="Class template any_base_hook">any_base_hook</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm19812-bb"></a><span class="identifier">any_base_hook</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="any_base_hook.html" title="Class template any_base_hook">any_base_hook</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: If <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is or <code class="computeroutput">safe_link</code> initializes the node to an unlinked state. The argument is ignored.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Rationale</strong></span>: Providing a copy-constructor makes classes using the hook STL-compliant without forcing the user to do some additional work. <code class="computeroutput">swap</code> can be used to emulate move-semantics. </p> </li> <li class="listitem"> -<pre class="literallayout"><a class="link" href="any_base_hook.html" title="Class template any_base_hook">any_base_hook</a> <span class="special">&</span> <a name="idm45971754411808-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="any_base_hook.html" title="Class template any_base_hook">any_base_hook</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a class="link" href="any_base_hook.html" title="Class template any_base_hook">any_base_hook</a> <span class="special">&</span> <a name="idm19826-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="any_base_hook.html" title="Class template any_base_hook">any_base_hook</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Empty function. The argument is ignored.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Rationale</strong></span>: Providing an assignment operator makes classes using the hook STL-compliant without forcing the user to do some additional work. <code class="computeroutput">swap</code> can be used to emulate move-semantics. </p> </li> <li class="listitem"> -<pre class="literallayout"><a name="idm45971754406640-bb"></a><span class="special">~</span><span class="identifier">any_base_hook</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm19840-bb"></a><span class="special">~</span><span class="identifier">any_base_hook</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: If <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is <code class="computeroutput">normal_link</code>, the destructor does nothing (ie. no code is generated). If <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is <code class="computeroutput">safe_link</code> and the object is stored in a container an assertion is raised.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> </ol></div> </div> <div class="refsect2"> -<a name="id-1.3.20.42.2.3.4.8"></a><h3> -<a name="idm45971728145504-bb"></a><code class="computeroutput">any_base_hook</code> public member functions</h3> +<a name="id-1.3.18.42.2.3.4.8"></a><h3> +<a name="idm19791-bb"></a><code class="computeroutput">any_base_hook</code> public member functions</h3> <div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"> -<pre class="literallayout"><span class="keyword">bool</span> <a name="idm45971728144944-bb"></a><span class="identifier">is_linked</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">bool</span> <a name="idm19792-bb"></a><span class="identifier">is_linked</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Precondition</strong></span>: <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> must be <code class="computeroutput">safe_link</code>.</p> <p><span class="bold"><strong>Returns</strong></span>: true, if the node belongs to a container, false otherwise. This function can be used to test whether <code class="computeroutput">container::iterator_to</code> will return a valid iterator.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant </p> @@ -93,14 +94,11 @@ </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="../../intrusive/reference.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.any_hook_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="any_member_hook.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/any_member_hook.html b/doc/html/boost/intrusive/any_member_hook.html index 2d0fd5336c..82d967d290 100644 --- a/doc/html/boost/intrusive/any_member_hook.html +++ b/doc/html/boost/intrusive/any_member_hook.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.any_hook_hpp" title="Header <boost/intrusive/any_hook.hpp>"> <link rel="prev" href="any_base_hook.html" title="Class template any_base_hook"> <link rel="next" href="any_to_avl_set_hook.html" title="Struct template any_to_avl_set_hook"> +<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> @@ -29,62 +30,62 @@ <h2><span class="refentrytitle">Class template any_member_hook</span></h2> <p>boost::intrusive::any_member_hook</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.any_hook_hpp" title="Header <boost/intrusive/any_hook.hpp>">boost/intrusive/any_hook.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.any_hook_hpp" title="Header <boost/intrusive/any_hook.hpp>">boost/intrusive/any_hook.hpp</a>> </span><span class="keyword">template</span><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="any_member_hook.html" title="Class template any_member_hook">any_member_hook</a> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">make_any_member_hook</span><span class="special">::</span><span class="identifier">type</span><span class="special"><</span> <span class="identifier">O1</span><span class="special">,</span> <span class="identifier">O2</span><span class="special">,</span> <span class="identifier">O3</span> <span class="special">></span> <span class="special">{</span> +<span class="keyword">class</span> <a class="link" href="any_member_hook.html" title="Class template any_member_hook">any_member_hook</a> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">make_any_member_hook</span><span class="special">::</span><span class="identifier">type</span> <span class="special">{</span> <span class="keyword">public</span><span class="special">:</span> <span class="comment">// <a class="link" href="any_member_hook.html#boost.intrusive.any_member_hookconstruct-copy-destruct">construct/copy/destruct</a></span> - <a class="link" href="any_member_hook.html#idm45971754389936-bb"><span class="identifier">any_member_hook</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <a class="link" href="any_member_hook.html#idm45971720456256-bb"><span class="identifier">any_member_hook</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="any_member_hook.html" title="Class template any_member_hook">any_member_hook</a> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <a class="link" href="any_member_hook.html" title="Class template any_member_hook">any_member_hook</a> <span class="special">&</span> <a class="link" href="any_member_hook.html#idm45971720450128-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="any_member_hook.html" title="Class template any_member_hook">any_member_hook</a> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <a class="link" href="any_member_hook.html#idm45971720444560-bb"><span class="special">~</span><span class="identifier">any_member_hook</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="any_member_hook.html#idm19879-bb"><span class="identifier">any_member_hook</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <a class="link" href="any_member_hook.html#idm19887-bb"><span class="identifier">any_member_hook</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="any_member_hook.html" title="Class template any_member_hook">any_member_hook</a> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <a class="link" href="any_member_hook.html" title="Class template any_member_hook">any_member_hook</a> <span class="special">&</span> <a class="link" href="any_member_hook.html#idm19901-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="any_member_hook.html" title="Class template any_member_hook">any_member_hook</a> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <a class="link" href="any_member_hook.html#idm19915-bb"><span class="special">~</span><span class="identifier">any_member_hook</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> - <span class="comment">// <a class="link" href="any_member_hook.html#idm45971754396176-bb">public member functions</a></span> - <span class="keyword">bool</span> <a class="link" href="any_member_hook.html#idm45971754395616-bb"><span class="identifier">is_linked</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="any_member_hook.html#idm19866-bb">public member functions</a></span> + <span class="keyword">bool</span> <a class="link" href="any_member_hook.html#idm19867-bb"><span class="identifier">is_linked</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="special">}</span><span class="special">;</span></pre></div> <div class="refsect1"> -<a name="id-1.3.20.42.2.4.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.2.4.4"></a><h2>Description</h2> <p>Store this hook in a class to be inserted in an intrusive container.</p> <p>The hook admits the following options: <code class="computeroutput">void_pointer<></code> and <code class="computeroutput">link_mode<></code>.</p> <p><code class="computeroutput">link_mode<></code> will specify the linking mode of the hook (<code class="computeroutput">normal_link</code> or <code class="computeroutput">safe_link</code>).</p> <p><code class="computeroutput">void_pointer<></code> is the pointer type that will be used internally in the hook and the container configured to use this hook. </p> <div class="refsect2"> -<a name="id-1.3.20.42.2.4.4.6"></a><h3> +<a name="id-1.3.18.42.2.4.4.6"></a><h3> <a name="boost.intrusive.any_member_hookconstruct-copy-destruct"></a><code class="computeroutput">any_member_hook</code> public construct/copy/destruct</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> <li class="listitem"> -<pre class="literallayout"><a name="idm45971754389936-bb"></a><span class="identifier">any_member_hook</span><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm19879-bb"></a><span class="identifier">any_member_hook</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>: If <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is or <code class="computeroutput">safe_link</code> initializes the node to an unlinked state.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><a name="idm45971720456256-bb"></a><span class="identifier">any_member_hook</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="any_member_hook.html" title="Class template any_member_hook">any_member_hook</a> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm19887-bb"></a><span class="identifier">any_member_hook</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="any_member_hook.html" title="Class template any_member_hook">any_member_hook</a> <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>: If <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is or <code class="computeroutput">safe_link</code> initializes the node to an unlinked state. The argument is ignored.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Rationale</strong></span>: Providing a copy-constructor makes classes using the hook STL-compliant without forcing the user to do some additional work. <code class="computeroutput">swap</code> can be used to emulate move-semantics. </p> </li> <li class="listitem"> -<pre class="literallayout"><a class="link" href="any_member_hook.html" title="Class template any_member_hook">any_member_hook</a> <span class="special">&</span> <a name="idm45971720450128-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="any_member_hook.html" title="Class template any_member_hook">any_member_hook</a> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><a class="link" href="any_member_hook.html" title="Class template any_member_hook">any_member_hook</a> <span class="special">&</span> <a name="idm19901-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="any_member_hook.html" title="Class template any_member_hook">any_member_hook</a> <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>: Empty function. The argument is ignored.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Rationale</strong></span>: Providing an assignment operator makes classes using the hook STL-compliant without forcing the user to do some additional work. <code class="computeroutput">swap</code> can be used to emulate move-semantics. </p> </li> <li class="listitem"> -<pre class="literallayout"><a name="idm45971720444560-bb"></a><span class="special">~</span><span class="identifier">any_member_hook</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm19915-bb"></a><span class="special">~</span><span class="identifier">any_member_hook</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: If <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is <code class="computeroutput">normal_link</code>, the destructor does nothing (ie. no code is generated). If <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is <code class="computeroutput">safe_link</code> and the object is stored in a container an assertion is raised.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> </ol></div> </div> <div class="refsect2"> -<a name="id-1.3.20.42.2.4.4.7"></a><h3> -<a name="idm45971754396176-bb"></a><code class="computeroutput">any_member_hook</code> public member functions</h3> +<a name="id-1.3.18.42.2.4.4.7"></a><h3> +<a name="idm19866-bb"></a><code class="computeroutput">any_member_hook</code> public member functions</h3> <div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"> -<pre class="literallayout"><span class="keyword">bool</span> <a name="idm45971754395616-bb"></a><span class="identifier">is_linked</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="idm19867-bb"></a><span class="identifier">is_linked</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>Precondition</strong></span>: <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> must be <code class="computeroutput">safe_link</code>.</p> <p><span class="bold"><strong>Returns</strong></span>: true, if the node belongs to a container, false otherwise. This function can be used to test whether <code class="computeroutput">container::iterator_to</code> will return a valid iterator.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant </p> @@ -92,14 +93,11 @@ </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="any_base_hook.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.any_hook_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="any_to_avl_set_hook.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/any_to_avl_set_hook.html b/doc/html/boost/intrusive/any_to_avl_set_hook.html index 01f7a77510..4abdf235fa 100644 --- a/doc/html/boost/intrusive/any_to_avl_set_hook.html +++ b/doc/html/boost/intrusive/any_to_avl_set_hook.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.any_hook_hpp" title="Header <boost/intrusive/any_hook.hpp>"> <link rel="prev" href="any_member_hook.html" title="Class template any_member_hook"> <link rel="next" href="any_to_bs_set_hook.html" title="Struct template any_to_bs_set_hook"> +<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> @@ -29,25 +30,22 @@ <h2><span class="refentrytitle">Struct template any_to_avl_set_hook</span></h2> <p>boost::intrusive::any_to_avl_set_hook</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.any_hook_hpp" title="Header <boost/intrusive/any_hook.hpp>">boost/intrusive/any_hook.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.any_hook_hpp" title="Header <boost/intrusive/any_hook.hpp>">boost/intrusive/any_hook.hpp</a>> </span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> BasicHook<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="any_to_avl_set_hook.html" title="Struct template any_to_avl_set_hook">any_to_avl_set_hook</a> <span class="special">{</span> <span class="special">}</span><span class="special">;</span></pre></div> <div class="refsect1"> -<a name="id-1.3.20.42.2.5.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.2.5.4"></a><h2>Description</h2> <p>This option setter specifies that any hook should behave as an <a class="link" href="avl_set.html" title="Class template avl_set">avl_set</a> hook </p> </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="any_member_hook.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.any_hook_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="any_to_bs_set_hook.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/any_to_bs_set_hook.html b/doc/html/boost/intrusive/any_to_bs_set_hook.html index 10b5923979..175d6db61c 100644 --- a/doc/html/boost/intrusive/any_to_bs_set_hook.html +++ b/doc/html/boost/intrusive/any_to_bs_set_hook.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.any_hook_hpp" title="Header <boost/intrusive/any_hook.hpp>"> <link rel="prev" href="any_to_avl_set_hook.html" title="Struct template any_to_avl_set_hook"> <link rel="next" href="any_to_list_hook.html" title="Struct template any_to_list_hook"> +<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> @@ -29,25 +30,22 @@ <h2><span class="refentrytitle">Struct template any_to_bs_set_hook</span></h2> <p>boost::intrusive::any_to_bs_set_hook</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.any_hook_hpp" title="Header <boost/intrusive/any_hook.hpp>">boost/intrusive/any_hook.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.any_hook_hpp" title="Header <boost/intrusive/any_hook.hpp>">boost/intrusive/any_hook.hpp</a>> </span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> BasicHook<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="any_to_bs_set_hook.html" title="Struct template any_to_bs_set_hook">any_to_bs_set_hook</a> <span class="special">{</span> <span class="special">}</span><span class="special">;</span></pre></div> <div class="refsect1"> -<a name="id-1.3.20.42.2.6.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.2.6.4"></a><h2>Description</h2> <p>This option setter specifies that any hook should behave as a <a class="link" href="bs_set.html" title="Class template bs_set">bs_set</a> hook </p> </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="any_to_avl_set_hook.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.any_hook_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="any_to_list_hook.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/any_to_list_hook.html b/doc/html/boost/intrusive/any_to_list_hook.html index c734da8d12..e454ed9298 100644 --- a/doc/html/boost/intrusive/any_to_list_hook.html +++ b/doc/html/boost/intrusive/any_to_list_hook.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.any_hook_hpp" title="Header <boost/intrusive/any_hook.hpp>"> <link rel="prev" href="any_to_bs_set_hook.html" title="Struct template any_to_bs_set_hook"> <link rel="next" href="any_to_set_hook.html" title="Struct template any_to_set_hook"> +<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> @@ -29,25 +30,22 @@ <h2><span class="refentrytitle">Struct template any_to_list_hook</span></h2> <p>boost::intrusive::any_to_list_hook</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.any_hook_hpp" title="Header <boost/intrusive/any_hook.hpp>">boost/intrusive/any_hook.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.any_hook_hpp" title="Header <boost/intrusive/any_hook.hpp>">boost/intrusive/any_hook.hpp</a>> </span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> BasicHook<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="any_to_list_hook.html" title="Struct template any_to_list_hook">any_to_list_hook</a> <span class="special">{</span> <span class="special">}</span><span class="special">;</span></pre></div> <div class="refsect1"> -<a name="id-1.3.20.42.2.7.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.2.7.4"></a><h2>Description</h2> <p>This option setter specifies that any hook should behave as an list hook </p> </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="any_to_bs_set_hook.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.any_hook_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="any_to_set_hook.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/any_to_set_hook.html b/doc/html/boost/intrusive/any_to_set_hook.html index 6dc8a62386..0c6570688e 100644 --- a/doc/html/boost/intrusive/any_to_set_hook.html +++ b/doc/html/boost/intrusive/any_to_set_hook.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.any_hook_hpp" title="Header <boost/intrusive/any_hook.hpp>"> <link rel="prev" href="any_to_list_hook.html" title="Struct template any_to_list_hook"> <link rel="next" href="any_to_slist_hook.html" title="Struct template any_to_slist_hook"> +<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> @@ -29,25 +30,22 @@ <h2><span class="refentrytitle">Struct template any_to_set_hook</span></h2> <p>boost::intrusive::any_to_set_hook</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.any_hook_hpp" title="Header <boost/intrusive/any_hook.hpp>">boost/intrusive/any_hook.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.any_hook_hpp" title="Header <boost/intrusive/any_hook.hpp>">boost/intrusive/any_hook.hpp</a>> </span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> BasicHook<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="any_to_set_hook.html" title="Struct template any_to_set_hook">any_to_set_hook</a> <span class="special">{</span> <span class="special">}</span><span class="special">;</span></pre></div> <div class="refsect1"> -<a name="id-1.3.20.42.2.8.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.2.8.4"></a><h2>Description</h2> <p>This option setter specifies that any hook should behave as a set hook </p> </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="any_to_list_hook.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.any_hook_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="any_to_slist_hook.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/any_to_slist_hook.html b/doc/html/boost/intrusive/any_to_slist_hook.html index c1cac6b92c..8814645275 100644 --- a/doc/html/boost/intrusive/any_to_slist_hook.html +++ b/doc/html/boost/intrusive/any_to_slist_hook.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.any_hook_hpp" title="Header <boost/intrusive/any_hook.hpp>"> <link rel="prev" href="any_to_set_hook.html" title="Struct template any_to_set_hook"> <link rel="next" href="any_to_unordered_set_hook.html" title="Struct template any_to_unordered_set_hook"> +<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> @@ -29,25 +30,22 @@ <h2><span class="refentrytitle">Struct template any_to_slist_hook</span></h2> <p>boost::intrusive::any_to_slist_hook</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.any_hook_hpp" title="Header <boost/intrusive/any_hook.hpp>">boost/intrusive/any_hook.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.any_hook_hpp" title="Header <boost/intrusive/any_hook.hpp>">boost/intrusive/any_hook.hpp</a>> </span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> BasicHook<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="any_to_slist_hook.html" title="Struct template any_to_slist_hook">any_to_slist_hook</a> <span class="special">{</span> <span class="special">}</span><span class="special">;</span></pre></div> <div class="refsect1"> -<a name="id-1.3.20.42.2.9.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.2.9.4"></a><h2>Description</h2> <p>This option setter specifies that any hook should behave as an slist hook </p> </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="any_to_set_hook.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.any_hook_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="any_to_unordered_set_hook.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/any_to_unordered_set_hook.html b/doc/html/boost/intrusive/any_to_unordered_set_hook.html index 124e4de508..b58e381f6b 100644 --- a/doc/html/boost/intrusive/any_to_unordered_set_hook.html +++ b/doc/html/boost/intrusive/any_to_unordered_set_hook.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.any_hook_hpp" title="Header <boost/intrusive/any_hook.hpp>"> <link rel="prev" href="any_to_slist_hook.html" title="Struct template any_to_slist_hook"> <link rel="next" href="make_any_base_hook.html" title="Struct template make_any_base_hook"> +<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> @@ -29,25 +30,22 @@ <h2><span class="refentrytitle">Struct template any_to_unordered_set_hook</span></h2> <p>boost::intrusive::any_to_unordered_set_hook</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.any_hook_hpp" title="Header <boost/intrusive/any_hook.hpp>">boost/intrusive/any_hook.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.any_hook_hpp" title="Header <boost/intrusive/any_hook.hpp>">boost/intrusive/any_hook.hpp</a>> </span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> BasicHook<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="any_to_unordered_set_hook.html" title="Struct template any_to_unordered_set_hook">any_to_unordered_set_hook</a> <span class="special">{</span> <span class="special">}</span><span class="special">;</span></pre></div> <div class="refsect1"> -<a name="id-1.3.20.42.2.10.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.2.10.4"></a><h2>Description</h2> <p>This option setter specifies that any hook should behave as an unordered set hook </p> </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="any_to_slist_hook.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.any_hook_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_any_base_hook.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/avl_multiset.html b/doc/html/boost/intrusive/avl_multiset.html index f68d543d55..6b8acd9f4b 100644 --- a/doc/html/boost/intrusive/avl_multiset.html +++ b/doc/html/boost/intrusive/avl_multiset.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.avl_set_hpp" title="Header <boost/intrusive/avl_set.hpp>"> <link rel="prev" href="make_any_member_hook.html" title="Struct template make_any_member_hook"> <link rel="next" href="avl_set.html" title="Class template avl_set"> +<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> @@ -29,8 +30,8 @@ <h2><span class="refentrytitle">Class template avl_multiset</span></h2> <p>boost::intrusive::avl_multiset</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.avl_set_hpp" title="Header <boost/intrusive/avl_set.hpp>">boost/intrusive/avl_set.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.avl_set_hpp" title="Header <boost/intrusive/avl_set.hpp>">boost/intrusive/avl_set.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="avl_multiset.html" title="Class template avl_multiset">avl_multiset</a> <span class="special">{</span> @@ -60,432 +61,366 @@ <span class="keyword">typedef</span> <span class="identifier">implementation_defined</span><span class="special">::</span><span class="identifier">node_algorithms</span> <a name="boost.intrusive.avl_multiset.node_algorithms"></a><span class="identifier">node_algorithms</span><span class="special">;</span> <span class="comment">// <a class="link" href="avl_multiset.html#boost.intrusive.avl_multisetconstruct-copy-destruct">construct/copy/destruct</a></span> - <a class="link" href="avl_multiset.html#idm45971719951968-bb"><span class="identifier">avl_multiset</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">explicit</span> <a class="link" href="avl_multiset.html#idm45971719948816-bb"><span class="identifier">avl_multiset</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span><span class="special">,</span> + <a class="link" href="avl_multiset.html#idm20838-bb"><span class="identifier">avl_multiset</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">explicit</span> <a class="link" href="avl_multiset.html#idm20846-bb"><span class="identifier">avl_multiset</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_compare</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="avl_multiset.html#idm45971719943696-bb"><span class="identifier">avl_multiset</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="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> <span class="special">=</span> <span class="identifier">key_compare</span><span class="special">(</span><span class="special">)</span><span class="special">,</span> + <a class="link" href="avl_multiset.html#idm20852-bb"><span class="identifier">avl_multiset</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="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> <span class="special">=</span> <span class="identifier">key_compare</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="avl_multiset.html#idm45971719935232-bb"><span class="identifier">avl_multiset</span></a><span class="special">(</span><a class="link" href="avl_multiset.html" title="Class template avl_multiset">avl_multiset</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> - <a class="link" href="avl_multiset.html" title="Class template avl_multiset">avl_multiset</a> <span class="special">&</span> <a class="link" href="avl_multiset.html#idm45971719930928-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><a class="link" href="avl_multiset.html" title="Class template avl_multiset">avl_multiset</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> - <a class="link" href="avl_multiset.html#idm45971719928112-bb"><span class="special">~</span><span class="identifier">avl_multiset</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="avl_multiset.html#idm20865-bb"><span class="identifier">avl_multiset</span></a><span class="special">(</span><a class="link" href="avl_multiset.html" title="Class template avl_multiset">avl_multiset</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="avl_multiset.html" title="Class template avl_multiset">avl_multiset</a> <span class="special">&</span> <a class="link" href="avl_multiset.html#idm20876-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><a class="link" href="avl_multiset.html" title="Class template avl_multiset">avl_multiset</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="avl_multiset.html#idm20885-bb"><span class="special">~</span><span class="identifier">avl_multiset</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> - <span class="comment">// <a class="link" href="avl_multiset.html#idm45971720391472-bb">public member functions</a></span> - <span class="identifier">iterator</span> <a class="link" href="avl_multiset.html#idm45971720390912-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="avl_multiset.html#idm45971720387072-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="avl_multiset.html#idm45971720383232-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="avl_multiset.html#idm45971720379392-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="avl_multiset.html#idm45971720375552-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="avl_multiset.html#idm45971720371712-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">reverse_iterator</span> <a class="link" href="avl_multiset.html#idm45971720367872-bb"><span class="identifier">rbegin</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="identifier">const_reverse_iterator</span> <a class="link" href="avl_multiset.html#idm45971720364016-bb"><span class="identifier">rbegin</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_reverse_iterator</span> <a class="link" href="avl_multiset.html#idm45971720360160-bb"><span class="identifier">crbegin</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">reverse_iterator</span> <a class="link" href="avl_multiset.html#idm45971720356304-bb"><span class="identifier">rend</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="identifier">const_reverse_iterator</span> <a class="link" href="avl_multiset.html#idm45971720352448-bb"><span class="identifier">rend</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_reverse_iterator</span> <a class="link" href="avl_multiset.html#idm45971720348592-bb"><span class="identifier">crend</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="avl_multiset.html#idm45971720344736-bb"><span class="identifier">root</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="avl_multiset.html#idm45971720340864-bb"><span class="identifier">root</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="avl_multiset.html#idm45971720336992-bb"><span class="identifier">croot</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">key_compare</span> <a class="link" href="avl_multiset.html#idm45971720333120-bb"><span class="identifier">key_comp</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">value_compare</span> <a class="link" href="avl_multiset.html#idm45971720329264-bb"><span class="identifier">value_comp</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="avl_multiset.html#idm45971720325392-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="avl_multiset.html#idm45971720321568-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="avl_multiset.html#idm45971720317632-bb"><span class="identifier">swap</span></a><span class="special">(</span><a class="link" href="avl_multiset.html" title="Class template avl_multiset">avl_multiset</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="comment">// <a class="link" href="avl_multiset.html#idm20043-bb">public member functions</a></span> + <span class="identifier">iterator</span> <a class="link" href="avl_multiset.html#idm20044-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="avl_multiset.html#idm20053-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="avl_multiset.html#idm20062-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="avl_multiset.html#idm20071-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="avl_multiset.html#idm20080-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="avl_multiset.html#idm20089-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">reverse_iterator</span> <a class="link" href="avl_multiset.html#idm20098-bb"><span class="identifier">rbegin</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">const_reverse_iterator</span> <a class="link" href="avl_multiset.html#idm20107-bb"><span class="identifier">rbegin</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_reverse_iterator</span> <a class="link" href="../container/scoped_allocator_adaptor.html#idm20116-bb"><span class="identifier">crbegin</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">reverse_iterator</span> <a class="link" href="avl_multiset.html#idm20125-bb"><span class="identifier">rend</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">const_reverse_iterator</span> <a class="link" href="avl_multiset.html#idm20134-bb"><span class="identifier">rend</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_reverse_iterator</span> <a class="link" href="avl_multiset.html#idm20143-bb"><span class="identifier">crend</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="avl_multiset.html#idm20152-bb"><span class="identifier">root</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="avl_multiset.html#idm20161-bb"><span class="identifier">root</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="avl_multiset.html#idm20170-bb"><span class="identifier">croot</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">key_compare</span> <a class="link" href="avl_multiset.html#idm20179-bb"><span class="identifier">key_comp</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">value_compare</span> <a class="link" href="avl_multiset.html#idm20188-bb"><span class="identifier">value_comp</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="avl_multiset.html#idm20197-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="avl_multiset.html#idm20206-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="avl_multiset.html#idm20215-bb"><span class="identifier">swap</span></a><span class="special">(</span><a class="link" href="avl_multiset.html" title="Class template avl_multiset">avl_multiset</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="avl_multiset.html#idm45971720313088-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="avl_multiset.html" title="Class template avl_multiset">avl_multiset</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="avl_multiset.html#idm20227-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="avl_multiset.html" title="Class template avl_multiset">avl_multiset</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="avl_multiset.html#idm45971720304032-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><a class="link" href="avl_multiset.html" title="Class template avl_multiset">avl_multiset</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="avl_multiset.html#idm45971720294224-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="identifier">reference</span><span class="special">)</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="avl_multiset.html#idm45971720288064-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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="avl_multiset.html#idm45971720281040-bb"><span class="identifier">insert</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">iterator</span> <a class="link" href="avl_multiset.html#idm45971720273200-bb"><span class="identifier">insert_before</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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">void</span> <a class="link" href="avl_multiset.html#idm45971720265968-bb"><span class="identifier">push_back</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">void</span> <a class="link" href="avl_multiset.html#idm45971720259408-bb"><span class="identifier">push_front</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">iterator</span> <a class="link" href="avl_multiset.html#idm45971720252848-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="identifier">iterator</span> <a class="link" href="avl_multiset.html#idm45971720247360-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="avl_multiset.html#idm45971720241120-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">void</span> <a class="link" href="avl_multiset.html#idm20249-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><a class="link" href="avl_multiset.html" title="Class template avl_multiset">avl_multiset</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="avl_multiset.html#idm20273-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="identifier">reference</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="avl_multiset.html#idm20277-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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="avl_multiset.html#idm20283-bb"><span class="identifier">insert</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">iterator</span> <a class="link" href="avl_multiset.html#idm20302-bb"><span class="identifier">insert_before</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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">void</span> <a class="link" href="avl_multiset.html#idm20319-bb"><span class="identifier">push_back</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">void</span> <a class="link" href="avl_multiset.html#idm20334-bb"><span class="identifier">push_front</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">iterator</span> <a class="link" href="avl_multiset.html#idm20349-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="identifier">iterator</span> <a class="link" href="avl_multiset.html#idm20353-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="avl_multiset.html#idm20359-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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">size_type</span> <a class="link" href="avl_multiset.html#idm45971720235072-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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">size_type</span> <a class="link" href="avl_multiset.html#idm20363-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">KeyTypeKeyCompare</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="identifier">iterator</span> <a class="link" href="avl_multiset.html#idm45971720224976-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="identifier">iterator</span> <a class="link" href="avl_multiset.html#idm20387-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="identifier">iterator</span> <a class="link" href="avl_multiset.html#idm45971720217072-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="identifier">iterator</span> <a class="link" href="avl_multiset.html#idm20395-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="avl_multiset.html#idm45971720208416-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="avl_multiset.html#idm20405-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> KeyTypeKeyCompare<span class="special">,</span> <span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="identifier">size_type</span> <a class="link" href="avl_multiset.html#idm45971720199888-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">KeyTypeKeyCompare</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="avl_multiset.html#idm45971720187664-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="avl_multiset.html#idm45971720182800-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="avl_multiset.html#idm45971720176496-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="identifier">size_type</span> <a class="link" href="avl_multiset.html#idm20413-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">KeyTypeKeyCompare</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="../container/multiset.html#idm20442-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="avl_multiset.html#idm20453-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="avl_multiset.html#idm20467-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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">size_type</span> <a class="link" href="avl_multiset.html#idm45971720171424-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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="avl_multiset.html#idm45971720162368-bb"><span class="identifier">lower_bound</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="avl_multiset.html#idm20471-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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="avl_multiset.html#idm20492-bb"><span class="identifier">lower_bound</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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a class="link" href="avl_multiset.html#idm45971720157616-bb"><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> - <span class="identifier">const_iterator</span> <a class="link" href="avl_multiset.html#idm45971720150768-bb"><span class="identifier">lower_bound</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="../container/multiset.html#idm20496-bb"><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">const_iterator</span> <a class="link" href="avl_multiset.html#idm20505-bb"><span class="identifier">lower_bound</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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">const_iterator</span> <a class="link" href="avl_multiset.html#idm45971720145744-bb"><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="avl_multiset.html#idm45971720138624-bb"><span class="identifier">upper_bound</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="avl_multiset.html#idm20509-bb"><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="avl_multiset.html#idm20518-bb"><span class="identifier">upper_bound</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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a class="link" href="avl_multiset.html#idm45971720133872-bb"><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> - <span class="identifier">const_iterator</span> <a class="link" href="avl_multiset.html#idm45971720125168-bb"><span class="identifier">upper_bound</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="avl_multiset.html#idm20522-bb"><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">const_iterator</span> <a class="link" href="avl_multiset.html#idm20543-bb"><span class="identifier">upper_bound</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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">const_iterator</span> <a class="link" href="avl_multiset.html#idm45971720120144-bb"><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="avl_multiset.html#idm45971720111168-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">const_iterator</span> <a class="link" href="avl_multiset.html#idm20547-bb"><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="avl_multiset.html#idm20568-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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a class="link" href="avl_multiset.html#idm45971720106432-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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> - <span class="identifier">const_iterator</span> <a class="link" href="avl_multiset.html#idm45971720097696-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="avl_multiset.html#idm20572-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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">const_iterator</span> <a class="link" href="avl_multiset.html#idm20593-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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">const_iterator</span> <a class="link" href="avl_multiset.html#idm45971720092688-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">KeyTypeKeyCompare</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="avl_multiset.html#idm45971720083680-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="avl_multiset.html#idm20597-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">KeyTypeKeyCompare</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="../container/multiset.html#idm20618-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> KeyTypeKeyCompare<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="avl_multiset.html#idm45971720078848-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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="avl_multiset.html#idm20622-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">KeyTypeKeyCompare</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="avl_multiset.html#idm45971720070016-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="avl_multiset.html#idm20643-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> KeyTypeKeyCompare<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="avl_multiset.html#idm45971720064896-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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <a class="link" href="avl_multiset.html#idm20647-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">KeyTypeKeyCompare</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="avl_multiset.html#idm45971720055776-bb"><span class="identifier">bounded_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="identifier">key_type</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="avl_multiset.html#idm20668-bb"><span class="identifier">bounded_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="identifier">key_type</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</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> KeyTypeKeyCompare<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="avl_multiset.html#idm45971720043344-bb"><span class="identifier">bounded_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="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> + <a class="link" href="avl_multiset.html#idm20678-bb"><span class="identifier">bounded_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="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</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="avl_multiset.html#idm45971720026544-bb"><span class="identifier">bounded_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="identifier">key_type</span> <span class="special">&</span><span class="identifier">key</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <a class="link" href="avl_multiset.html#idm20720-bb"><span class="identifier">bounded_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="identifier">key_type</span> <span class="special">&</span><span class="identifier">key</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</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> KeyTypeKeyCompare<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="avl_multiset.html#idm45971720013824-bb"><span class="identifier">bounded_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="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> + <a class="link" href="avl_multiset.html#idm20730-bb"><span class="identifier">bounded_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="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="avl_multiset.html#idm45971719996736-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="avl_multiset.html#idm45971719991248-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">pointer</span> <a class="link" href="avl_multiset.html#idm45971719985760-bb"><span class="identifier">unlink_leftmost_without_rebalance</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="avl_multiset.html#idm45971719980848-bb"><span class="identifier">replace_node</span></a><span class="special">(</span><span class="identifier">iterator</span><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">void</span> <a class="link" href="avl_multiset.html#idm45971719973584-bb"><span class="identifier">remove_node</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">template</span><span class="special"><</span><span class="keyword">class</span> <span class="special">...</span> Options2<span class="special">></span> <span class="keyword">void</span> <a class="link" href="avl_multiset.html#idm45971719967744-bb"><span class="identifier">merge</span></a><span class="special">(</span><a class="link" href="avl_multiset.html" title="Class template avl_multiset">avl_multiset</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</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">class</span> <span class="special">...</span> Options2<span class="special">></span> <span class="keyword">void</span> <a class="link" href="avl_multiset.html#idm45971719959936-bb"><span class="identifier">merge</span></a><span class="special">(</span><a class="link" href="avl_set.html" title="Class template avl_set">avl_set</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="avl_multiset.html#idm20772-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="avl_multiset.html#idm20776-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">pointer</span> <a class="link" href="avl_multiset.html#idm20780-bb"><span class="identifier">unlink_leftmost_without_rebalance</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="../container/multiset.html#idm20791-bb"><span class="identifier">replace_node</span></a><span class="special">(</span><span class="identifier">iterator</span><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">void</span> <a class="link" href="avl_multiset.html#idm20808-bb"><span class="identifier">remove_node</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">template</span><span class="special"><</span><span class="keyword">class</span> <span class="special">...</span> Options2<span class="special">></span> <span class="keyword">void</span> <a class="link" href="avl_multiset.html#idm20822-bb"><span class="identifier">merge</span></a><span class="special">(</span><a class="link" href="avl_multiset.html" title="Class template avl_multiset">avl_multiset</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</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">class</span> <span class="special">...</span> Options2<span class="special">></span> <span class="keyword">void</span> <a class="link" href="avl_multiset.html#idm20830-bb"><span class="identifier">merge</span></a><span class="special">(</span><a class="link" href="avl_set.html" title="Class template avl_set">avl_set</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> - <span class="comment">// <a class="link" href="avl_multiset.html#idm45971719924208-bb">public static functions</a></span> - <span class="keyword">static</span> <a class="link" href="avl_multiset.html" title="Class template avl_multiset">avl_multiset</a> <span class="special">&</span> <a class="link" href="avl_multiset.html#idm45971719923648-bb"><span class="identifier">container_from_end_iterator</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="comment">// <a class="link" href="avl_multiset.html#idm20894-bb">public static functions</a></span> + <span class="keyword">static</span> <a class="link" href="avl_multiset.html" title="Class template avl_multiset">avl_multiset</a> <span class="special">&</span> <a class="link" href="avl_multiset.html#idm20895-bb"><span class="identifier">container_from_end_iterator</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> <span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="avl_multiset.html" title="Class template avl_multiset">avl_multiset</a> <span class="special">&</span> - <a class="link" href="avl_multiset.html#idm45971719917632-bb"><span class="identifier">container_from_end_iterator</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">static</span> <a class="link" href="avl_multiset.html" title="Class template avl_multiset">avl_multiset</a> <span class="special">&</span> <a class="link" href="avl_multiset.html#idm45971719911456-bb"><span class="identifier">container_from_iterator</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="avl_multiset.html" title="Class template avl_multiset">avl_multiset</a> <span class="special">&</span> <a class="link" href="avl_multiset.html#idm45971719905488-bb"><span class="identifier">container_from_iterator</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">static</span> <span class="identifier">iterator</span> <a class="link" href="avl_multiset.html#idm45971719899360-bb"><span class="identifier">s_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_iterator</span> <a class="link" href="avl_multiset.html#idm45971719892272-bb"><span class="identifier">s_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="keyword">void</span> <a class="link" href="avl_multiset.html#idm45971719885184-bb"><span class="identifier">init_node</span></a><span class="special">(</span><span class="identifier">reference</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <a class="link" href="avl_multiset.html#idm20900-bb"><span class="identifier">container_from_end_iterator</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">static</span> <a class="link" href="avl_multiset.html" title="Class template avl_multiset">avl_multiset</a> <span class="special">&</span> <a class="link" href="avl_multiset.html#idm20905-bb"><span class="identifier">container_from_iterator</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="avl_multiset.html" title="Class template avl_multiset">avl_multiset</a> <span class="special">&</span> <a class="link" href="avl_multiset.html#idm20910-bb"><span class="identifier">container_from_iterator</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">static</span> <span class="identifier">iterator</span> <a class="link" href="avl_multiset.html#idm20915-bb"><span class="identifier">s_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_iterator</span> <a class="link" href="avl_multiset.html#idm20919-bb"><span class="identifier">s_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="keyword">void</span> <a class="link" href="../container/multiset.html#idm20923-bb"><span class="identifier">init_node</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="comment">// public data members</span> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">bool</span> <span class="identifier">constant_time_size</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.3.3.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.3.3.4"></a><h2>Description</h2> <p>The class template <a class="link" href="avl_multiset.html" title="Class template avl_multiset">avl_multiset</a> is an intrusive container, that mimics most of the interface of std::_multiset as described in the C++ standard.</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> <p>The container supports the following options: <code class="computeroutput">base_hook<>/member_hook<>/value_traits<></code>, <code class="computeroutput">constant_time_size<></code>, <code class="computeroutput">size_type<></code> and <code class="computeroutput">compare<></code>. </p> <div class="refsect2"> -<a name="id-1.3.20.42.3.3.4.5"></a><h3> +<a name="id-1.3.18.42.3.3.4.5"></a><h3> <a name="boost.intrusive.avl_multisetconstruct-copy-destruct"></a><code class="computeroutput">avl_multiset</code> public construct/copy/destruct</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> <li class="listitem"> -<pre class="literallayout"><a name="idm45971719951968-bb"></a><span class="identifier">avl_multiset</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm20838-bb"></a><span class="identifier">avl_multiset</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Constructs an empty container.</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 constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor of the key_compare object throws. Basic guarantee. </p> +<p><span class="bold"><strong>Throws</strong></span>: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor of the key_compare object throws. Basic guarantee. </p> </li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">explicit</span> <a name="idm45971719948816-bb"></a><span class="identifier">avl_multiset</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> cmp<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> -<p><span class="bold"><strong>Effects</strong></span>: Constructs an empty container with given comparison and traits.</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 constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor of the key_compare object throws. Basic guarantee. </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> - <a name="idm45971719943696-bb"></a><span class="identifier">avl_multiset</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> +<li class="listitem"><pre class="literallayout"><span class="keyword">explicit</span> <a name="idm20846-bb"></a><span class="identifier">avl_multiset</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> cmp<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></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="idm20852-bb"></a><span class="identifier">avl_multiset</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="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> cmp <span class="special">=</span> <span class="identifier">key_compare</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> -<p><span class="bold"><strong>Requires</strong></span>: Dereferencing iterator must yield an lvalue of type value_type. cmp must be a comparison function that induces a strict weak ordering.</p> -<p><span class="bold"><strong>Effects</strong></span>: Constructs an empty container and inserts elements from [b, e).</p> -<p><span class="bold"><strong>Complexity</strong></span>: Linear in N if [b, e) is already sorted using comp and otherwise N * log N, where N is the distance between first and last.</p> -<p><span class="bold"><strong>Throws</strong></span>: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor/operator() of the key_compare object throws. Basic guarantee. </p> -</li> + <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></li> <li class="listitem"> -<pre class="literallayout"><a name="idm45971719935232-bb"></a><span class="identifier">avl_multiset</span><span class="special">(</span><a class="link" href="avl_multiset.html" title="Class template avl_multiset">avl_multiset</a> <span class="special">&&</span> x<span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm20865-bb"></a><span class="identifier">avl_multiset</span><span class="special">(</span><a class="link" href="avl_multiset.html" title="Class template avl_multiset">avl_multiset</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 comparison object and value traits are move constructed and nodes belonging to x (except the node representing the "end") 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 the comparison objet throws. </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 the comparison objet throws. </p> </li> <li class="listitem"> -<pre class="literallayout"><a class="link" href="avl_multiset.html" title="Class template avl_multiset">avl_multiset</a> <span class="special">&</span> <a name="idm45971719930928-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><a class="link" href="avl_multiset.html" title="Class template avl_multiset">avl_multiset</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> +<pre class="literallayout"><a class="link" href="avl_multiset.html" title="Class template avl_multiset">avl_multiset</a> <span class="special">&</span> <a name="idm20876-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><a class="link" href="avl_multiset.html" title="Class template avl_multiset">avl_multiset</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="idm45971719928112-bb"></a><span class="special">~</span><span class="identifier">avl_multiset</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm20885-bb"></a><span class="special">~</span><span class="identifier">avl_multiset</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 set are not deleted (i.e. no destructors are called), but the nodes according to the <code class="computeroutput"><a class="link" href="value_traits.html" title="Struct template value_traits">value_traits</a></code> template parameter are reinitialized and thus can be reused.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to elements contained in *this.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> </ol></div> </div> <div class="refsect2"> -<a name="id-1.3.20.42.3.3.4.6"></a><h3> -<a name="idm45971720391472-bb"></a><code class="computeroutput">avl_multiset</code> public member functions</h3> +<a name="id-1.3.18.42.3.3.4.6"></a><h3> +<a name="idm20043-bb"></a><code class="computeroutput">avl_multiset</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="idm45971720390912-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="idm20044-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971720387072-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="idm20053-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971720383232-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="idm20062-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971720379392-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="idm20071-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971720375552-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="idm20080-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971720371712-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="idm20089-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">reverse_iterator</span> <a name="idm45971720367872-bb"></a><span class="identifier">rbegin</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">reverse_iterator</span> <a name="idm20098-bb"></a><span class="identifier">rbegin</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 a reverse_iterator pointing to the beginning of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45971720364016-bb"></a><span class="identifier">rbegin</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_reverse_iterator</span> <a name="idm20107-bb"></a><span class="identifier">rbegin</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_reverse_iterator pointing to the beginning of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45971720360160-bb"></a><span class="identifier">crbegin</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_reverse_iterator</span> <a name="idm20116-bb"></a><span class="identifier">crbegin</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_reverse_iterator pointing to the beginning of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">reverse_iterator</span> <a name="idm45971720356304-bb"></a><span class="identifier">rend</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">reverse_iterator</span> <a name="idm20125-bb"></a><span class="identifier">rend</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 a reverse_iterator pointing to the end of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45971720352448-bb"></a><span class="identifier">rend</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_reverse_iterator</span> <a name="idm20134-bb"></a><span class="identifier">rend</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_reverse_iterator pointing to the end of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45971720348592-bb"></a><span class="identifier">crend</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_reverse_iterator</span> <a name="idm20143-bb"></a><span class="identifier">crend</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_reverse_iterator pointing to the end of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971720344736-bb"></a><span class="identifier">root</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="idm20152-bb"></a><span class="identifier">root</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 a iterator pointing to the root node of the container or end() if not present.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971720340864-bb"></a><span class="identifier">root</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="idm20161-bb"></a><span class="identifier">root</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 root node of the container or cend() if not present.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971720336992-bb"></a><span class="identifier">croot</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="idm20170-bb"></a><span class="identifier">croot</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 root node of the container or cend() if not present.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">key_compare</span> <a name="idm45971720333120-bb"></a><span class="identifier">key_comp</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_compare</span> <a name="idm20179-bb"></a><span class="identifier">key_comp</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_compare object used by the container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: If key_compare copy-constructor throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If key_compare copy-constructor throws. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">value_compare</span> <a name="idm45971720329264-bb"></a><span class="identifier">value_comp</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">value_compare</span> <a name="idm20188-bb"></a><span class="identifier">value_comp</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 value_compare object used by the container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: If value_compare copy-constructor throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If value_compare copy-constructor throws. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">bool</span> <a name="idm45971720325392-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="idm20197-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>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971720321568-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="idm20206-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to elements contained in *this if constant-time size option is disabled. Constant time otherwise.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971720317632-bb"></a><span class="identifier">swap</span><span class="special">(</span><a class="link" href="avl_multiset.html" title="Class template avl_multiset">avl_multiset</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="idm20215-bb"></a><span class="identifier">swap</span><span class="special">(</span><a class="link" href="avl_multiset.html" title="Class template avl_multiset">avl_multiset</a> <span class="special">&</span> other<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Swaps the contents of two containers.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comparison functor's swap call throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If the comparison functor's swap call throws. </p> </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="idm45971720313088-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="avl_multiset.html" title="Class template avl_multiset">avl_multiset</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="idm20227-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="avl_multiset.html" title="Class template avl_multiset">avl_multiset</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 equivalent to the original nodes.</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. Copies the predicate from the source container.</p> <p>If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to erased plus inserted elements.</p> -<p><span class="bold"><strong>Throws</strong></span>: If cloner throws or predicate copy assignment throws. Basic guarantee. </p> +<p><span class="bold"><strong>Throws</strong></span>: If cloner throws or predicate copy assignment throws. Basic guarantee. </p> </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="idm45971720304032-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><a class="link" href="avl_multiset.html" title="Class template avl_multiset">avl_multiset</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="idm20249-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><a class="link" href="avl_multiset.html" title="Class template avl_multiset">avl_multiset</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 equivalent to the original nodes.</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. Copies the predicate from the source container.</p> <p>If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to erased plus inserted elements.</p> <p><span class="bold"><strong>Throws</strong></span>: If cloner throws or predicate copy assignment throws. Basic guarantee.</p> -<p><span class="bold"><strong>Note</strong></span>: This version can modify the source container, useful to implement move semantics. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971720294224-bb"></a><span class="identifier">insert</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 value into the container before the upper bound.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Average complexity for insert element is at most logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the internal key_compare ordering function throws. Strong guarantee.</p> -<p><span class="bold"><strong>Note</strong></span>: Does not affect the validity of iterators and references. No copy-constructors are called. </p> +<p><span class="bold"><strong>Note</strong></span>: This version can modify the source container, useful to implement move semantics. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm20273-bb"></a><span class="identifier">insert</span><span class="special">(</span><span class="identifier">reference</span> value<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm20277-bb"></a><span class="identifier">insert</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<span class="special">,</span> <span class="identifier">reference</span> value<span class="special">)</span><span class="special">;</span></pre></li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971720288064-bb"></a><span class="identifier">insert</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<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, and "hint" must be a valid iterator.</p> -<p><span class="bold"><strong>Effects</strong></span>: Inserts x into the container, using "hint" as a hint to where it will be inserted. If "hint" is the upper_bound the insertion takes constant time (two comparisons in the worst case)</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic in general, but it is amortized constant time if t is inserted immediately before hint.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the internal key_compare ordering function throws. Strong guarantee.</p> -<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="idm45971720281040-bb"></a><span class="identifier">insert</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="idm20283-bb"></a><span class="identifier">insert</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>: Inserts a each element of a range into the container before the upper bound of the key of each element.</p> <p><span class="bold"><strong>Complexity</strong></span>: Insert range is in general O(N * log(N)), where N is the size of the range. However, it is linear in N if the range is already sorted by value_comp().</p> <p><span class="bold"><strong>Throws</strong></span>: If the comparison functor call throws.</p> -<p><span class="bold"><strong>Note</strong></span>: Does not affect the validity of iterators and references. No copy-constructors are called. </p> +<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">iterator</span> <a name="idm45971720273200-bb"></a><span class="identifier">insert_before</span><span class="special">(</span><span class="identifier">const_iterator</span> pos<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="idm20302-bb"></a><span class="identifier">insert_before</span><span class="special">(</span><span class="identifier">const_iterator</span> pos<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, "pos" must be a valid iterator (or end) and must be the succesor of value once inserted according to the predicate</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts x into the container before "pos".</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if "pos" is not the successor of "value" container ordering invariant will be broken. This is a low-level function to be used only for performance reasons by advanced users. </p> +<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if "pos" is not the successor of "value" container ordering invariant will be broken. This is a low-level function to be used only for performance reasons by advanced users. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971720265968-bb"></a><span class="identifier">push_back</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">void</span> <a name="idm20319-bb"></a><span class="identifier">push_back</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 it must be no less than the greatest inserted key</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts x into the container in the last position.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if value is less than the greatest inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users. </p> +<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if value is less than the greatest inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971720259408-bb"></a><span class="identifier">push_front</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">void</span> <a name="idm20334-bb"></a><span class="identifier">push_front</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 it must be no greater than the minimum inserted key</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts x into the container in the first position.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if value is greater than the minimum inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971720252848-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 complexity for erase element is constant time.</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">iterator</span> <a name="idm45971720247360-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 complexity for erase range is at most O(log(size() + N)), where N is the number of elements in the range.</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="idm45971720241120-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>: O(log(size() + N).</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> +<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if value is greater than the minimum inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm20349-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm20353-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">size_type</span> <a name="idm20359-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></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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971720235072-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <span class="identifier">size_type</span> <a name="idm20363-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Erases all the elements with the given key. according to the comparison functor "comp".</p> <p><span class="bold"><strong>Returns</strong></span>: The number of erased elements.</p> <p><span class="bold"><strong>Complexity</strong></span>: O(log(size() + N).</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="identifier">iterator</span> <a name="idm45971720224976-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 complexity for erase element is constant time.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<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">template</span><span class="special"><</span><span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="identifier">iterator</span> <a name="idm45971720217072-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> -<p><span class="bold"><strong>Complexity</strong></span>: Average complexity for erase range is at most O(log(size() + N)), where N is the number of elements in the range.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<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">template</span><span class="special"><</span><span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971720208416-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> -<p><span class="bold"><strong>Complexity</strong></span>: O(log(size() + N).</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> +<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="identifier">iterator</span> <a name="idm20387-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></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">iterator</span> <a name="idm20395-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></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="idm20405-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></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> KeyTypeKeyCompare<span class="special">,</span> <span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971720199888-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">KeyTypeKeyCompare</span> comp<span class="special">,</span> + <span class="identifier">size_type</span> <a name="idm20413-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">KeyTypeKeyCompare</span> comp<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>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk) and nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Requires</strong></span>: Disposer::operator()(pointer) shouldn't throw.</p> @@ -493,168 +428,102 @@ <p><span class="bold"><strong>Returns</strong></span>: The number of erased elements.</p> <p><span class="bold"><strong>Complexity</strong></span>: O(log(size() + N).</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: Invalidates the iterators to the erased elements. </p> +<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="idm45971720187664-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="idm20442-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> +<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="idm45971720182800-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="idm20453-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>Effects</strong></span>: Erases all of the elements calling disposer(p) for each node to be erased. <span class="bold"><strong>Complexity</strong></span>: Average complexity for is at most O(log(size() + N)), where N is the number of elements in the container.</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. Calls N times to disposer functor. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">size_type</span> <a name="idm45971720176496-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>: Logarithmic to the number of elements contained plus lineal to number of objects with the given value.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Note</strong></span>: Invalidates the iterators (but not the references) to the erased elements. Calls N times to disposer functor. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">size_type</span> <a name="idm20467-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></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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971720171424-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> + <span class="identifier">size_type</span> <a name="idm20471-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns the number of contained elements with the given key</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic to the number of elements contained plus lineal to number of objects with the given key.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> </li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971720162368-bb"></a><span class="identifier">lower_bound</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 an iterator to the first element whose key is not less than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> 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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a name="idm45971720157616-bb"></a><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Effects</strong></span>: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971720150768-bb"></a><span class="identifier">lower_bound</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 an iterator to the first element whose key is not less than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> 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> KeyTypeKeyCompare<span class="special">></span> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm20492-bb"></a><span class="identifier">lower_bound</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></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> KeyTypeKeyCompare<span class="special">></span> + <span class="identifier">iterator</span> <a name="idm20496-bb"></a><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm20505-bb"></a><span class="identifier">lower_bound</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></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> KeyTypeKeyCompare<span class="special">></span> <span class="identifier">const_iterator</span> - <a name="idm45971720145744-bb"></a><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Effects</strong></span>: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971720138624-bb"></a><span class="identifier">upper_bound</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 an iterator to the first element whose key is greater than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> -</li> + <a name="idm20509-bb"></a><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm20518-bb"></a><span class="identifier">upper_bound</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></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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a name="idm45971720133872-bb"></a><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <span class="identifier">iterator</span> <a name="idm20522-bb"></a><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns an iterator to the first element whose key is greater than k according to comp or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971720125168-bb"></a><span class="identifier">upper_bound</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 an iterator to the first element whose key is greater than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm20543-bb"></a><span class="identifier">upper_bound</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></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> KeyTypeKeyCompare<span class="special">></span> <span class="identifier">const_iterator</span> - <a name="idm45971720120144-bb"></a><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> + <a name="idm20547-bb"></a><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns an iterator to the first element whose key is greater than k according to comp or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971720111168-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 whose key is k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm20568-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></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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a name="idm45971720106432-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <span class="identifier">iterator</span> <a name="idm20572-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Finds an iterator to the first element whose key is k or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971720097696-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 an iterator to the first element whose key is k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm20593-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></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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">const_iterator</span> <a name="idm45971720092688-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> + <span class="identifier">const_iterator</span> <a name="idm20597-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Finds an iterator to the first element whose key is k or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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="idm45971720083680-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>: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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="idm20618-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></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> KeyTypeKeyCompare<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="idm45971720078848-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <a name="idm20622-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">></span> -<a name="idm45971720070016-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>: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">></span> +<a name="idm20643-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></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> KeyTypeKeyCompare<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="idm45971720064896-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> + <a name="idm20647-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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="idm45971720055776-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> upper_key<span class="special">,</span> - <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: <code class="computeroutput">upper_key</code> shall not precede <code class="computeroutput">lower_key</code> according to key_compare. [key_comp()(upper_key, lower_key) shall be false]</p> -<p>If <code class="computeroutput">lower_key</code> is equivalent to <code class="computeroutput">upper_key</code> [!key_comp()(upper_key, lower_key) && !key_comp()(lower_key, upper_key)] then ('left_closed' || 'right_closed') must be false.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns an a pair with the following criteria:</p> -<p>first = lower_bound(lower_key) if left_closed, upper_bound(lower_key) otherwise</p> -<p>second = upper_bound(upper_key) if right_closed, lower_bound(upper_key) otherwise</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws.</p> -<p><span class="bold"><strong>Note</strong></span>: This function can be more efficient than calling upper_bound and lower_bound for lower_value and upper_value.</p> -<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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="idm20668-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> upper_key<span class="special">,</span> + <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span><span class="special">;</span></pre></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> KeyTypeKeyCompare<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="idm45971720043344-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> + <a name="idm20678-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span> comp<span class="special">,</span> <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: <code class="computeroutput">lower_key</code> is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, lower_key) if left_closed is true, with respect to !comp(lower_key, nk) otherwise.</p> <p><code class="computeroutput">upper_key</code> is a value such that <code class="computeroutput">*this</code> is partitioned with respect to !comp(upper_key, nk) if right_closed is true, with respect to comp(nk, upper_key) otherwise.</p> @@ -666,26 +535,15 @@ <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> <p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws.</p> <p><span class="bold"><strong>Note</strong></span>: This function can be more efficient than calling upper_bound and lower_bound for lower_key and upper_key.</p> -<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </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">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">></span> -<a name="idm45971720026544-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span><span class="identifier">key</span> upper_key<span class="special">,</span> - <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: <code class="computeroutput">upper_key</code> shall not precede <code class="computeroutput">lower_key</code> according to key_compare. [key_comp()(upper_key, lower_key) shall be false]</p> -<p>If <code class="computeroutput">lower_key</code> is equivalent to <code class="computeroutput">upper_key</code> [!key_comp()(upper_key, lower_key) && !key_comp()(lower_key, upper_key)] then ('left_closed' || 'right_closed') must be false.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns an a pair with the following criteria:</p> -<p>first = lower_bound(lower_key) if left_closed, upper_bound(lower_key) otherwise</p> -<p>second = upper_bound(upper_key) if right_closed, lower_bound(upper_key) otherwise</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws.</p> -<p><span class="bold"><strong>Note</strong></span>: This function can be more efficient than calling upper_bound and lower_bound for lower_value and upper_value.</p> -<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </p> +<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </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">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">></span> +<a name="idm20720-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span><span class="identifier">key</span> upper_key<span class="special">,</span> + <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></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> KeyTypeKeyCompare<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="idm45971720013824-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> + <a name="idm20730-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span> comp<span class="special">,</span> <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: <code class="computeroutput">lower_key</code> is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, lower_key) if left_closed is true, with respect to !comp(lower_key, nk) otherwise.</p> <p><code class="computeroutput">upper_key</code> is a value such that <code class="computeroutput">*this</code> is partitioned with respect to !comp(upper_key, nk) if right_closed is true, with respect to comp(nk, upper_key) otherwise.</p> @@ -697,135 +555,61 @@ <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> <p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws.</p> <p><span class="bold"><strong>Note</strong></span>: This function can be more efficient than calling upper_bound and lower_bound for lower_key and upper_key.</p> -<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </p> +<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm20772-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm20776-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></li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971719996736-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 set of appropriate type. Otherwise the behavior is undefined.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns: a valid iterator i belonging to the set 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_iterator</span> <a name="idm45971719991248-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 set of appropriate type. Otherwise the behavior is undefined.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns: a valid const_iterator i belonging to the set 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">pointer</span> <a name="idm45971719985760-bb"></a><span class="identifier">unlink_leftmost_without_rebalance</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">pointer</span> <a name="idm20780-bb"></a><span class="identifier">unlink_leftmost_without_rebalance</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>: Unlinks the leftmost node from the container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Average complexity is constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Notes</strong></span>: This function breaks the container and the container can only be used for more unlink_leftmost_without_rebalance calls. This function is normally used to achieve a step by step controlled destruction of the container. </p> +<p><span class="bold"><strong>Notes</strong></span>: This function breaks the container and the container can only be used for more unlink_leftmost_without_rebalance calls. This function is normally used to achieve a step by step controlled destruction of the container. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971719980848-bb"></a><span class="identifier">replace_node</span><span class="special">(</span><span class="identifier">iterator</span> replace_this<span class="special">,</span> <span class="identifier">reference</span> with_this<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">void</span> <a name="idm20791-bb"></a><span class="identifier">replace_node</span><span class="special">(</span><span class="identifier">iterator</span> replace_this<span class="special">,</span> <span class="identifier">reference</span> with_this<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: replace_this must be a valid iterator of *this and with_this must not be inserted in any container.</p> <p><span class="bold"><strong>Effects</strong></span>: Replaces replace_this in its position in the container with with_this. The container does not need to be rebalanced.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: This function will break container ordering invariants if with_this is not equivalent to *replace_this according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing or comparison is needed. </p> +<p><span class="bold"><strong>Note</strong></span>: This function will break container ordering invariants if with_this is not equivalent to *replace_this according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing or comparison is needed. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971719973584-bb"></a><span class="identifier">remove_node</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">void</span> <a name="idm20808-bb"></a><span class="identifier">remove_node</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>Effects</strong></span>: removes "value" from the container.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic time.</p> <p><span class="bold"><strong>Note</strong></span>: This static function is only usable with non-constant time size containers that have stateless comparison functors.</p> -<p>If the user calls this function with a constant time size container or stateful comparison functor a compilation error will be issued. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="special">...</span> Options2<span class="special">></span> - <span class="keyword">void</span> <a name="idm45971719967744-bb"></a><span class="identifier">merge</span><span class="special">(</span><a class="link" href="avl_multiset.html" title="Class template avl_multiset">avl_multiset</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span> source<span class="special">)</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: "source" container's Options can only can differ in the comparison function from *this.</p> -<p><span class="bold"><strong>Effects</strong></span>: Extracts each element in source and insert it into a using the comparison object of *this.</p> -<p><span class="bold"><strong>Postcondition</strong></span>: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing unless the comparison object throws.</p> -<p><span class="bold"><strong>Complexity</strong></span>: N log(a.size() + N) (N has the value source.size()) </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="special">...</span> Options2<span class="special">></span> <span class="keyword">void</span> <a name="idm45971719959936-bb"></a><span class="identifier">merge</span><span class="special">(</span><a class="link" href="avl_set.html" title="Class template avl_set">avl_set</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span> source<span class="special">)</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: "source" container's Options can only can differ in the comparison function from *this.</p> -<p><span class="bold"><strong>Effects</strong></span>: Extracts each element in source and insert it into a using the comparison object of *this.</p> -<p><span class="bold"><strong>Postcondition</strong></span>: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing unless the comparison object throws.</p> -<p><span class="bold"><strong>Complexity</strong></span>: N log(a.size() + N) (N has the value source.size()) </p> +<p>If the user calls this function with a constant time size container or stateful comparison functor a compilation error will be issued. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="special">...</span> Options2<span class="special">></span> + <span class="keyword">void</span> <a name="idm20822-bb"></a><span class="identifier">merge</span><span class="special">(</span><a class="link" href="avl_multiset.html" title="Class template avl_multiset">avl_multiset</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span> source<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="special">...</span> Options2<span class="special">></span> <span class="keyword">void</span> <a name="idm20830-bb"></a><span class="identifier">merge</span><span class="special">(</span><a class="link" href="avl_set.html" title="Class template avl_set">avl_set</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span> source<span class="special">)</span><span class="special">;</span></pre></li> </ol></div> </div> <div class="refsect2"> -<a name="id-1.3.20.42.3.3.4.7"></a><h3> -<a name="idm45971719924208-bb"></a><code class="computeroutput">avl_multiset</code> public static functions</h3> +<a name="id-1.3.18.42.3.3.4.7"></a><h3> +<a name="idm20894-bb"></a><code class="computeroutput">avl_multiset</code> public static functions</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <a class="link" href="avl_multiset.html" title="Class template avl_multiset">avl_multiset</a> <span class="special">&</span> -<a name="idm45971719923648-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Precondition</strong></span>: end_iterator must be a valid end iterator of the container.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the container associated to the end iterator</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Constant. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="avl_multiset.html" title="Class template avl_multiset">avl_multiset</a> <span class="special">&</span> -<a name="idm45971719917632-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">const_iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Precondition</strong></span>: end_iterator must be a valid end iterator of the container.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the container associated to the end iterator</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Constant. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <a class="link" href="avl_multiset.html" title="Class template avl_multiset">avl_multiset</a> <span class="special">&</span> <a name="idm45971719911456-bb"></a><span class="identifier">container_from_iterator</span><span class="special">(</span><span class="identifier">iterator</span> it<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Precondition</strong></span>: it must be a valid iterator of the container.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the container associated to the iterator</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="avl_multiset.html" title="Class template avl_multiset">avl_multiset</a> <span class="special">&</span> -<a name="idm45971719905488-bb"></a><span class="identifier">container_from_iterator</span><span class="special">(</span><span class="identifier">const_iterator</span> it<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Precondition</strong></span>: it must be a valid iterator of the container.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the container associated to the iterator</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="identifier">iterator</span> <a name="idm45971719899360-bb"></a><span class="identifier">s_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 set of appropriate type. Otherwise the behavior is undefined.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns: a valid iterator i belonging to the set 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> -<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">const_iterator</span> <a name="idm45971719892272-bb"></a><span class="identifier">s_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 set of appropriate type. Otherwise the behavior is undefined.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns: a valid iterator i belonging to the set 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> -<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="keyword">void</span> <a name="idm45971719885184-bb"></a><span class="identifier">init_node</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 shall not be in a container.</p> -<p><span class="bold"><strong>Effects</strong></span>: init_node puts the hook of a value in a well-known default state.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> -<p><span class="bold"><strong>Note</strong></span>: This function puts the hook in the well-known default state used by auto_unlink and safe hooks. </p> -</li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <a class="link" href="avl_multiset.html" title="Class template avl_multiset">avl_multiset</a> <span class="special">&</span> +<a name="idm20895-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="avl_multiset.html" title="Class template avl_multiset">avl_multiset</a> <span class="special">&</span> +<a name="idm20900-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">const_iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <a class="link" href="avl_multiset.html" title="Class template avl_multiset">avl_multiset</a> <span class="special">&</span> <a name="idm20905-bb"></a><span class="identifier">container_from_iterator</span><span class="special">(</span><span class="identifier">iterator</span> it<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="avl_multiset.html" title="Class template avl_multiset">avl_multiset</a> <span class="special">&</span> +<a name="idm20910-bb"></a><span class="identifier">container_from_iterator</span><span class="special">(</span><span class="identifier">const_iterator</span> it<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">iterator</span> <a name="idm20915-bb"></a><span class="identifier">s_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></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">const_iterator</span> <a name="idm20919-bb"></a><span class="identifier">s_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></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm20923-bb"></a><span class="identifier">init_node</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></li> </ol></div> </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="make_any_member_hook.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.avl_set_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="avl_set.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/avl_set.html b/doc/html/boost/intrusive/avl_set.html index 3bd7880b08..447a3a0cf3 100644 --- a/doc/html/boost/intrusive/avl_set.html +++ b/doc/html/boost/intrusive/avl_set.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.avl_set_hpp" title="Header <boost/intrusive/avl_set.hpp>"> <link rel="prev" href="avl_multiset.html" title="Class template avl_multiset"> <link rel="next" href="make_avl_multiset.html" title="Struct template make_avl_multiset"> +<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> @@ -29,8 +30,8 @@ <h2><span class="refentrytitle">Class template avl_set</span></h2> <p>boost::intrusive::avl_set</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.avl_set_hpp" title="Header <boost/intrusive/avl_set.hpp>">boost/intrusive/avl_set.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.avl_set_hpp" title="Header <boost/intrusive/avl_set.hpp>">boost/intrusive/avl_set.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="avl_set.html" title="Class template avl_set">avl_set</a> <span class="special">{</span> @@ -60,496 +61,398 @@ <span class="keyword">typedef</span> <span class="identifier">implementation_defined</span><span class="special">::</span><span class="identifier">node_algorithms</span> <a name="boost.intrusive.avl_set.node_algorithms"></a><span class="identifier">node_algorithms</span><span class="special">;</span> <span class="comment">// <a class="link" href="avl_set.html#boost.intrusive.avl_setconstruct-copy-destruct">construct/copy/destruct</a></span> - <a class="link" href="avl_set.html#idm45971719367472-bb"><span class="identifier">avl_set</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">explicit</span> <a class="link" href="avl_set.html#idm45971719364320-bb"><span class="identifier">avl_set</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_compare</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="avl_set.html#idm21840-bb"><span class="identifier">avl_set</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">explicit</span> <a class="link" href="avl_set.html#idm21848-bb"><span class="identifier">avl_set</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_compare</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="avl_set.html#idm45971719359200-bb"><span class="identifier">avl_set</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="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> <span class="special">=</span> <span class="identifier">key_compare</span><span class="special">(</span><span class="special">)</span><span class="special">,</span> + <a class="link" href="avl_set.html#idm21854-bb"><span class="identifier">avl_set</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="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> <span class="special">=</span> <span class="identifier">key_compare</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="avl_set.html#idm45971719350736-bb"><span class="identifier">avl_set</span></a><span class="special">(</span><a class="link" href="avl_set.html" title="Class template avl_set">avl_set</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> - <a class="link" href="avl_set.html" title="Class template avl_set">avl_set</a> <span class="special">&</span> <a class="link" href="avl_set.html#idm45971719346432-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><a class="link" href="avl_set.html" title="Class template avl_set">avl_set</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> - <a class="link" href="avl_set.html#idm45971719343616-bb"><span class="special">~</span><span class="identifier">avl_set</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="avl_set.html#idm21867-bb"><span class="identifier">avl_set</span></a><span class="special">(</span><a class="link" href="avl_set.html" title="Class template avl_set">avl_set</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="avl_set.html" title="Class template avl_set">avl_set</a> <span class="special">&</span> <a class="link" href="avl_set.html#idm21878-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><a class="link" href="avl_set.html" title="Class template avl_set">avl_set</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="avl_set.html#idm21887-bb"><span class="special">~</span><span class="identifier">avl_set</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> - <span class="comment">// <a class="link" href="avl_set.html#idm45971719851904-bb">public member functions</a></span> - <span class="identifier">iterator</span> <a class="link" href="avl_set.html#idm45971719851344-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="avl_set.html#idm45971719847504-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="avl_set.html#idm45971719843664-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="avl_set.html#idm45971719839824-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="avl_set.html#idm45971719835984-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="avl_set.html#idm45971719832144-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">reverse_iterator</span> <a class="link" href="avl_set.html#idm45971719828304-bb"><span class="identifier">avlegin</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> - <span class="identifier">const_reverse_iterator</span> <a class="link" href="avl_set.html#idm45971719824736-bb"><span class="identifier">avlegin</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">const_reverse_iterator</span> <a class="link" href="avl_set.html#idm45971719820896-bb"><span class="identifier">crbegin</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">reverse_iterator</span> <a class="link" href="avl_set.html#idm45971719817040-bb"><span class="identifier">rend</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="identifier">const_reverse_iterator</span> <a class="link" href="avl_set.html#idm45971719813184-bb"><span class="identifier">rend</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_reverse_iterator</span> <a class="link" href="avl_set.html#idm45971719809328-bb"><span class="identifier">crend</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="avl_set.html#idm45971719805472-bb"><span class="identifier">root</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="avl_set.html#idm45971719801600-bb"><span class="identifier">root</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="avl_set.html#idm45971719797728-bb"><span class="identifier">croot</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">key_compare</span> <a class="link" href="avl_set.html#idm45971719793856-bb"><span class="identifier">key_comp</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">value_compare</span> <a class="link" href="avl_set.html#idm45971719790000-bb"><span class="identifier">value_comp</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="avl_set.html#idm45971719786128-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="avl_set.html#idm45971719782304-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="avl_set.html#idm45971719778368-bb"><span class="identifier">swap</span></a><span class="special">(</span><a class="link" href="avl_set.html" title="Class template avl_set">avl_set</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="comment">// <a class="link" href="avl_set.html#idm20988-bb">public member functions</a></span> + <span class="identifier">iterator</span> <a class="link" href="../container/multiset.html#idm20989-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="avl_set.html#idm20998-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="avl_set.html#idm21007-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="avl_set.html#idm21016-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="avl_set.html#idm21025-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="avl_set.html#idm21034-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">reverse_iterator</span> <a class="link" href="avl_set.html#idm21043-bb"><span class="identifier">avlegin</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">const_reverse_iterator</span> <a class="link" href="avl_set.html#idm21052-bb"><span class="identifier">avlegin</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">const_reverse_iterator</span> <a class="link" href="avl_set.html#idm21061-bb"><span class="identifier">crbegin</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">reverse_iterator</span> <a class="link" href="avl_set.html#idm21070-bb"><span class="identifier">rend</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">const_reverse_iterator</span> <a class="link" href="avl_set.html#idm21079-bb"><span class="identifier">rend</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_reverse_iterator</span> <a class="link" href="avl_set.html#idm21088-bb"><span class="identifier">crend</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="../container/multiset.html#idm21097-bb"><span class="identifier">root</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="avl_set.html#idm21106-bb"><span class="identifier">root</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="avl_set.html#idm21115-bb"><span class="identifier">croot</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">key_compare</span> <a class="link" href="avl_set.html#idm21124-bb"><span class="identifier">key_comp</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">value_compare</span> <a class="link" href="avl_set.html#idm21133-bb"><span class="identifier">value_comp</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="avl_set.html#idm21142-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="avl_set.html#idm21151-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="../container/multiset.html#idm21160-bb"><span class="identifier">swap</span></a><span class="special">(</span><a class="link" href="avl_set.html" title="Class template avl_set">avl_set</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="avl_set.html#idm45971719773824-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="avl_set.html" title="Class template avl_set">avl_set</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="avl_set.html#idm21172-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="avl_set.html" title="Class template avl_set">avl_set</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="avl_set.html#idm45971719764768-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><a class="link" href="avl_set.html" title="Class template avl_set">avl_set</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">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="avl_set.html#idm45971719754960-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="identifier">reference</span><span class="special">)</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="avl_set.html#idm45971719748816-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">,</span> <span class="identifier">reference</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="avl_set.html#idm21194-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><a class="link" href="avl_set.html" title="Class template avl_set">avl_set</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">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="avl_set.html#idm21218-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="identifier">reference</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="avl_set.html#idm21222-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">,</span> <span class="identifier">reference</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="avl_set.html#idm45971719741856-bb"><span class="identifier">insert_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> + <a class="link" href="avl_set.html#idm21228-bb"><span class="identifier">insert_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">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="avl_set.html#idm45971719735664-bb"><span class="identifier">insert_check</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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> + <a class="link" href="avl_set.html#idm21234-bb"><span class="identifier">insert_check</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> KeyType<span class="special">,</span> <span class="keyword">typename</span> KeyTypeKeyCompare<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="avl_set.html#idm45971719728688-bb"><span class="identifier">insert_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">KeyTypeKeyCompare</span><span class="special">,</span> <span class="identifier">insert_commit_data</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="avl_set.html#idm21242-bb"><span class="identifier">insert_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">KeyTypeKeyCompare</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="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> KeyType<span class="special">,</span> <span class="keyword">typename</span> KeyTypeKeyCompare<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="avl_set.html#idm45971719717280-bb"><span class="identifier">insert_check</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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">KeyTypeKeyCompare</span><span class="special">,</span> + <a class="link" href="../container/multiset.html#idm21253-bb"><span class="identifier">insert_check</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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">KeyTypeKeyCompare</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="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="avl_set.html#idm45971719705088-bb"><span class="identifier">insert</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">iterator</span> <a class="link" href="avl_set.html#idm45971719697296-bb"><span class="identifier">insert_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="identifier">iterator</span> <a class="link" href="avl_set.html#idm45971719688992-bb"><span class="identifier">insert_before</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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">void</span> <a class="link" href="avl_set.html#idm45971719681760-bb"><span class="identifier">push_back</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">void</span> <a class="link" href="avl_set.html#idm45971719675200-bb"><span class="identifier">push_front</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">iterator</span> <a class="link" href="avl_set.html#idm45971719668640-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="identifier">iterator</span> <a class="link" href="avl_set.html#idm45971719663152-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="avl_set.html#idm45971719656912-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> Iterator<span class="special">></span> <span class="keyword">void</span> <a class="link" href="avl_set.html#idm21266-bb"><span class="identifier">insert</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">iterator</span> <a class="link" href="avl_set.html#idm21285-bb"><span class="identifier">insert_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="identifier">iterator</span> <a class="link" href="avl_set.html#idm21304-bb"><span class="identifier">insert_before</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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">void</span> <a class="link" href="avl_set.html#idm21321-bb"><span class="identifier">push_back</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">void</span> <a class="link" href="avl_set.html#idm21336-bb"><span class="identifier">push_front</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">iterator</span> <a class="link" href="avl_set.html#idm21351-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="identifier">iterator</span> <a class="link" href="avl_set.html#idm21355-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="avl_set.html#idm21361-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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">size_type</span> <a class="link" href="avl_set.html#idm45971719650864-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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">size_type</span> <a class="link" href="avl_set.html#idm21365-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">KeyTypeKeyCompare</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="identifier">iterator</span> <a class="link" href="avl_set.html#idm45971719640768-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="identifier">iterator</span> <a class="link" href="avl_set.html#idm21389-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="identifier">iterator</span> <a class="link" href="avl_set.html#idm45971719632864-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="identifier">iterator</span> <a class="link" href="avl_set.html#idm21397-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="avl_set.html#idm45971719624208-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="avl_set.html#idm21407-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> KeyTypeKeyCompare<span class="special">,</span> <span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="identifier">size_type</span> <a class="link" href="avl_set.html#idm45971719615680-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">KeyTypeKeyCompare</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="avl_set.html#idm45971719603456-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="avl_set.html#idm45971719598592-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="avl_set.html#idm45971719592288-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="identifier">size_type</span> <a class="link" href="avl_set.html#idm21415-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">KeyTypeKeyCompare</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="avl_set.html#idm21444-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="avl_set.html#idm21455-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="avl_set.html#idm21469-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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">size_type</span> <a class="link" href="avl_set.html#idm45971719587216-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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="avl_set.html#idm45971719578160-bb"><span class="identifier">lower_bound</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="avl_set.html#idm21473-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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="avl_set.html#idm21494-bb"><span class="identifier">lower_bound</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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a class="link" href="avl_set.html#idm45971719573408-bb"><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> - <span class="identifier">const_iterator</span> <a class="link" href="avl_set.html#idm45971719566560-bb"><span class="identifier">lower_bound</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="avl_set.html#idm21498-bb"><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">const_iterator</span> <a class="link" href="avl_set.html#idm21507-bb"><span class="identifier">lower_bound</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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">const_iterator</span> <a class="link" href="avl_set.html#idm45971719561536-bb"><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="avl_set.html#idm45971719554416-bb"><span class="identifier">upper_bound</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="avl_set.html#idm21511-bb"><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="avl_set.html#idm21520-bb"><span class="identifier">upper_bound</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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a class="link" href="avl_set.html#idm45971719549664-bb"><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> - <span class="identifier">const_iterator</span> <a class="link" href="avl_set.html#idm45971719540960-bb"><span class="identifier">upper_bound</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="avl_set.html#idm21524-bb"><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">const_iterator</span> <a class="link" href="avl_set.html#idm21545-bb"><span class="identifier">upper_bound</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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">const_iterator</span> <a class="link" href="avl_set.html#idm45971719535936-bb"><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="avl_set.html#idm45971719526960-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">const_iterator</span> <a class="link" href="avl_set.html#idm21549-bb"><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="avl_set.html#idm21570-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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a class="link" href="avl_set.html#idm45971719522224-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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> - <span class="identifier">const_iterator</span> <a class="link" href="avl_set.html#idm45971719513488-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="../container/set.html#idm21574-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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">const_iterator</span> <a class="link" href="avl_set.html#idm21595-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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">const_iterator</span> <a class="link" href="avl_set.html#idm45971719508480-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">KeyTypeKeyCompare</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="avl_set.html#idm45971719499472-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="avl_set.html#idm21599-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">KeyTypeKeyCompare</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="avl_set.html#idm21620-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> KeyTypeKeyCompare<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="avl_set.html#idm45971719494640-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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="avl_set.html#idm21624-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">KeyTypeKeyCompare</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="avl_set.html#idm45971719485808-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="avl_set.html#idm21645-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> KeyTypeKeyCompare<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="avl_set.html#idm45971719480688-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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <a class="link" href="avl_set.html#idm21649-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">KeyTypeKeyCompare</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="avl_set.html#idm45971719471568-bb"><span class="identifier">bounded_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="identifier">key_type</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="avl_set.html#idm21670-bb"><span class="identifier">bounded_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="identifier">key_type</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</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> KeyTypeKeyCompare<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="avl_set.html#idm45971719459136-bb"><span class="identifier">bounded_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="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> + <a class="link" href="avl_set.html#idm21680-bb"><span class="identifier">bounded_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="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</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="avl_set.html#idm45971719442336-bb"><span class="identifier">bounded_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="identifier">key_type</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <a class="link" href="avl_set.html#idm21722-bb"><span class="identifier">bounded_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="identifier">key_type</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</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> KeyTypeKeyCompare<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="avl_set.html#idm45971719429616-bb"><span class="identifier">bounded_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="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> + <a class="link" href="avl_set.html#idm21732-bb"><span class="identifier">bounded_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="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="avl_set.html#idm45971719412528-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="avl_set.html#idm45971719407040-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">pointer</span> <a class="link" href="avl_set.html#idm45971719401552-bb"><span class="identifier">unlink_leftmost_without_rebalance</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="avl_set.html#idm45971719396640-bb"><span class="identifier">replace_node</span></a><span class="special">(</span><span class="identifier">iterator</span><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">void</span> <a class="link" href="avl_set.html#idm45971719389376-bb"><span class="identifier">remove_node</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">template</span><span class="special"><</span><span class="keyword">class</span> <span class="special">...</span> Options2<span class="special">></span> <span class="keyword">void</span> <a class="link" href="avl_set.html#idm45971719383536-bb"><span class="identifier">merge</span></a><span class="special">(</span><a class="link" href="avl_set.html" title="Class template avl_set">avl_set</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</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">class</span> <span class="special">...</span> Options2<span class="special">></span> <span class="keyword">void</span> <a class="link" href="avl_set.html#idm45971719375584-bb"><span class="identifier">merge</span></a><span class="special">(</span><a class="link" href="avl_multiset.html" title="Class template avl_multiset">avl_multiset</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="avl_set.html#idm21774-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="avl_set.html#idm21778-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">pointer</span> <a class="link" href="avl_set.html#idm21782-bb"><span class="identifier">unlink_leftmost_without_rebalance</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="avl_set.html#idm21793-bb"><span class="identifier">replace_node</span></a><span class="special">(</span><span class="identifier">iterator</span><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">void</span> <a class="link" href="avl_set.html#idm21810-bb"><span class="identifier">remove_node</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">template</span><span class="special"><</span><span class="keyword">class</span> <span class="special">...</span> Options2<span class="special">></span> <span class="keyword">void</span> <a class="link" href="avl_set.html#idm21824-bb"><span class="identifier">merge</span></a><span class="special">(</span><a class="link" href="avl_set.html" title="Class template avl_set">avl_set</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</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">class</span> <span class="special">...</span> Options2<span class="special">></span> <span class="keyword">void</span> <a class="link" href="avl_set.html#idm21832-bb"><span class="identifier">merge</span></a><span class="special">(</span><a class="link" href="avl_multiset.html" title="Class template avl_multiset">avl_multiset</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> - <span class="comment">// <a class="link" href="avl_set.html#idm45971719339712-bb">public static functions</a></span> - <span class="keyword">static</span> <a class="link" href="avl_set.html" title="Class template avl_set">avl_set</a> <span class="special">&</span> <a class="link" href="avl_set.html#idm45971719339152-bb"><span class="identifier">container_from_end_iterator</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="avl_set.html" title="Class template avl_set">avl_set</a> <span class="special">&</span> <a class="link" href="avl_set.html#idm45971719333136-bb"><span class="identifier">container_from_end_iterator</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">static</span> <a class="link" href="avl_set.html" title="Class template avl_set">avl_set</a> <span class="special">&</span> <a class="link" href="avl_set.html#idm45971719326960-bb"><span class="identifier">container_from_iterator</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="avl_set.html" title="Class template avl_set">avl_set</a> <span class="special">&</span> <a class="link" href="avl_set.html#idm45971719320992-bb"><span class="identifier">container_from_iterator</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">static</span> <span class="identifier">iterator</span> <a class="link" href="avl_set.html#idm45971719314864-bb"><span class="identifier">s_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_iterator</span> <a class="link" href="avl_set.html#idm45971719307776-bb"><span class="identifier">s_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="keyword">void</span> <a class="link" href="avl_set.html#idm45971719300688-bb"><span class="identifier">init_node</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="comment">// <a class="link" href="../container/set.html#idm21896-bb">public static functions</a></span> + <span class="keyword">static</span> <a class="link" href="avl_set.html" title="Class template avl_set">avl_set</a> <span class="special">&</span> <a class="link" href="avl_set.html#idm21897-bb"><span class="identifier">container_from_end_iterator</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="avl_set.html" title="Class template avl_set">avl_set</a> <span class="special">&</span> <a class="link" href="avl_set.html#idm21902-bb"><span class="identifier">container_from_end_iterator</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">static</span> <a class="link" href="avl_set.html" title="Class template avl_set">avl_set</a> <span class="special">&</span> <a class="link" href="avl_set.html#idm21907-bb"><span class="identifier">container_from_iterator</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="avl_set.html" title="Class template avl_set">avl_set</a> <span class="special">&</span> <a class="link" href="avl_set.html#idm21912-bb"><span class="identifier">container_from_iterator</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">static</span> <span class="identifier">iterator</span> <a class="link" href="avl_set.html#idm21917-bb"><span class="identifier">s_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_iterator</span> <a class="link" href="avl_set.html#idm21921-bb"><span class="identifier">s_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="keyword">void</span> <a class="link" href="avl_set.html#idm21925-bb"><span class="identifier">init_node</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="comment">// public data members</span> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">bool</span> <span class="identifier">constant_time_size</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.3.4.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.3.4.4"></a><h2>Description</h2> <p>The class template <a class="link" href="avl_set.html" title="Class template avl_set">avl_set</a> is an intrusive container, that mimics most of the interface of std::set as described in the C++ standard.</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> <p>The container supports the following options: <code class="computeroutput">base_hook<>/member_hook<>/value_traits<></code>, <code class="computeroutput">constant_time_size<></code>, <code class="computeroutput">size_type<></code> and <code class="computeroutput">compare<></code>. </p> <div class="refsect2"> -<a name="id-1.3.20.42.3.4.4.5"></a><h3> +<a name="id-1.3.18.42.3.4.4.5"></a><h3> <a name="boost.intrusive.avl_setconstruct-copy-destruct"></a><code class="computeroutput">avl_set</code> public construct/copy/destruct</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> <li class="listitem"> -<pre class="literallayout"><a name="idm45971719367472-bb"></a><span class="identifier">avl_set</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm21840-bb"></a><span class="identifier">avl_set</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Constructs an empty container.</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 constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor of the key_compare object throws. Basic guarantee. </p> +<p><span class="bold"><strong>Throws</strong></span>: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor of the key_compare object throws. Basic guarantee. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="keyword">explicit</span> <a name="idm21848-bb"></a><span class="identifier">avl_set</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> cmp<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></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="idm21854-bb"></a><span class="identifier">avl_set</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="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> cmp <span class="special">=</span> <span class="identifier">key_compare</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></li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">explicit</span> <a name="idm45971719364320-bb"></a><span class="identifier">avl_set</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> cmp<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> -<p><span class="bold"><strong>Effects</strong></span>: Constructs an empty container with given comparison and traits.</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 constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor of the key_compare object throws. Basic guarantee. </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> - <a name="idm45971719359200-bb"></a><span class="identifier">avl_set</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="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> cmp <span class="special">=</span> <span class="identifier">key_compare</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> -<p><span class="bold"><strong>Requires</strong></span>: Dereferencing iterator must yield an lvalue of type value_type. cmp must be a comparison function that induces a strict weak ordering.</p> -<p><span class="bold"><strong>Effects</strong></span>: Constructs an empty container and inserts elements from [b, e).</p> -<p><span class="bold"><strong>Complexity</strong></span>: Linear in N if [b, e) is already sorted using comp and otherwise N * log N, where N is the distance between first and last.</p> -<p><span class="bold"><strong>Throws</strong></span>: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor/operator() of the key_compare object throws. Basic guarantee. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><a name="idm45971719350736-bb"></a><span class="identifier">avl_set</span><span class="special">(</span><a class="link" href="avl_set.html" title="Class template avl_set">avl_set</a> <span class="special">&&</span> x<span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm21867-bb"></a><span class="identifier">avl_set</span><span class="special">(</span><a class="link" href="avl_set.html" title="Class template avl_set">avl_set</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 comparison object and value traits are move constructed and nodes belonging to x (except the node representing the "end") 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 the comparison objet throws. </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 the comparison objet throws. </p> </li> <li class="listitem"> -<pre class="literallayout"><a class="link" href="avl_set.html" title="Class template avl_set">avl_set</a> <span class="special">&</span> <a name="idm45971719346432-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><a class="link" href="avl_set.html" title="Class template avl_set">avl_set</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> +<pre class="literallayout"><a class="link" href="avl_set.html" title="Class template avl_set">avl_set</a> <span class="special">&</span> <a name="idm21878-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><a class="link" href="avl_set.html" title="Class template avl_set">avl_set</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="idm45971719343616-bb"></a><span class="special">~</span><span class="identifier">avl_set</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm21887-bb"></a><span class="special">~</span><span class="identifier">avl_set</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 set are not deleted (i.e. no destructors are called), but the nodes according to the <code class="computeroutput"><a class="link" href="value_traits.html" title="Struct template value_traits">value_traits</a></code> template parameter are reinitialized and thus can be reused.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to elements contained in *this.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> </ol></div> </div> <div class="refsect2"> -<a name="id-1.3.20.42.3.4.4.6"></a><h3> -<a name="idm45971719851904-bb"></a><code class="computeroutput">avl_set</code> public member functions</h3> +<a name="id-1.3.18.42.3.4.4.6"></a><h3> +<a name="idm20988-bb"></a><code class="computeroutput">avl_set</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="idm45971719851344-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="idm20989-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971719847504-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="idm20998-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971719843664-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="idm21007-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971719839824-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="idm21016-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971719835984-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="idm21025-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971719832144-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="idm21034-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">reverse_iterator</span> <a name="idm45971719828304-bb"></a><span class="identifier">avlegin</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="identifier">reverse_iterator</span> <a name="idm21043-bb"></a><span class="identifier">avlegin</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Returns an iterator pointing to the beginning of the container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45971719824736-bb"></a><span class="identifier">avlegin</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">const_reverse_iterator</span> <a name="idm21052-bb"></a><span class="identifier">avlegin</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 a const_iterator pointing to the beginning of the container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45971719820896-bb"></a><span class="identifier">crbegin</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_reverse_iterator</span> <a name="idm21061-bb"></a><span class="identifier">crbegin</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_reverse_iterator pointing to the beginning of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">reverse_iterator</span> <a name="idm45971719817040-bb"></a><span class="identifier">rend</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">reverse_iterator</span> <a name="idm21070-bb"></a><span class="identifier">rend</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 a reverse_iterator pointing to the end of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45971719813184-bb"></a><span class="identifier">rend</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_reverse_iterator</span> <a name="idm21079-bb"></a><span class="identifier">rend</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_reverse_iterator pointing to the end of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45971719809328-bb"></a><span class="identifier">crend</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_reverse_iterator</span> <a name="idm21088-bb"></a><span class="identifier">crend</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_reverse_iterator pointing to the end of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971719805472-bb"></a><span class="identifier">root</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="idm21097-bb"></a><span class="identifier">root</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 a iterator pointing to the root node of the container or end() if not present.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971719801600-bb"></a><span class="identifier">root</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="idm21106-bb"></a><span class="identifier">root</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 root node of the container or cend() if not present.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971719797728-bb"></a><span class="identifier">croot</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="idm21115-bb"></a><span class="identifier">croot</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 root node of the container or cend() if not present.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">key_compare</span> <a name="idm45971719793856-bb"></a><span class="identifier">key_comp</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_compare</span> <a name="idm21124-bb"></a><span class="identifier">key_comp</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_compare object used by the container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: If key_compare copy-constructor throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If key_compare copy-constructor throws. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">value_compare</span> <a name="idm45971719790000-bb"></a><span class="identifier">value_comp</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">value_compare</span> <a name="idm21133-bb"></a><span class="identifier">value_comp</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 value_compare object used by the container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: If value_compare copy-constructor throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If value_compare copy-constructor throws. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">bool</span> <a name="idm45971719786128-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="idm21142-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>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971719782304-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="idm21151-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to elements contained in *this if constant-time size option is disabled. Constant time otherwise.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971719778368-bb"></a><span class="identifier">swap</span><span class="special">(</span><a class="link" href="avl_set.html" title="Class template avl_set">avl_set</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="idm21160-bb"></a><span class="identifier">swap</span><span class="special">(</span><a class="link" href="avl_set.html" title="Class template avl_set">avl_set</a> <span class="special">&</span> other<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Swaps the contents of two containers.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comparison functor's swap call throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If the comparison functor's swap call throws. </p> </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="idm45971719773824-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="avl_set.html" title="Class template avl_set">avl_set</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="idm21172-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="avl_set.html" title="Class template avl_set">avl_set</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 equivalent to the original nodes.</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. Copies the predicate from the source container.</p> <p>If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to erased plus inserted elements.</p> -<p><span class="bold"><strong>Throws</strong></span>: If cloner throws or predicate copy assignment throws. Basic guarantee. </p> +<p><span class="bold"><strong>Throws</strong></span>: If cloner throws or predicate copy assignment throws. Basic guarantee. </p> </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="idm45971719764768-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><a class="link" href="avl_set.html" title="Class template avl_set">avl_set</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="idm21194-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><a class="link" href="avl_set.html" title="Class template avl_set">avl_set</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 equivalent to the original nodes.</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. Copies the predicate from the source container.</p> <p>If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to erased plus inserted elements.</p> <p><span class="bold"><strong>Throws</strong></span>: If cloner throws or predicate copy assignment throws. Basic guarantee.</p> -<p><span class="bold"><strong>Note</strong></span>: This version can modify the source container, useful to implement move semantics. </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="idm45971719754960-bb"></a><span class="identifier">insert</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 value into the container if the value is not already present.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Average complexity for insert element is at most logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comparison functor call throws.</p> -<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">iterator</span> <a name="idm45971719748816-bb"></a><span class="identifier">insert</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<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, and "hint" must be a valid iterator</p> -<p><span class="bold"><strong>Effects</strong></span>: Tries to insert x into the container, using "hint" as a hint to where it will be inserted.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic in general, but it is amortized constant time (two comparisons in the worst case) if t is inserted immediately before hint.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comparison functor call throws.</p> -<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="idm45971719741856-bb"></a><span class="identifier">insert_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 container, 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 complexity is at most logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comp ordering function throws. Strong guarantee. </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="idm45971719735664-bb"></a><span class="identifier">insert_check</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<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 container, using a user provided key instead of the value itself, using "hint" as a hint to where it will be inserted.</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>: Logarithmic in general, but it's amortized constant time if t is inserted immediately before hint.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comp ordering function throws. Strong guarantee. </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> KeyTypeKeyCompare<span class="special">></span> +<p><span class="bold"><strong>Note</strong></span>: This version can modify the source container, useful to implement move semantics. </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="idm21218-bb"></a><span class="identifier">insert</span><span class="special">(</span><span class="identifier">reference</span> value<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm21222-bb"></a><span class="identifier">insert</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<span class="special">,</span> <span class="identifier">reference</span> value<span class="special">)</span><span class="special">;</span></pre></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="idm21228-bb"></a><span class="identifier">insert_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></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="idm21234-bb"></a><span class="identifier">insert_check</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<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></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> KeyTypeKeyCompare<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="idm45971719728688-bb"></a><span class="identifier">insert_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">KeyTypeKeyCompare</span> comp<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>: comp must be a comparison function that induces the same strict weak ordering as key_compare. The difference is that comp compares an arbitrary key with the contained values.</p> -<p><span class="bold"><strong>Effects</strong></span>: Checks if a value can be inserted in the container, 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 complexity is at most logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comp ordering function throws. Strong guarantee.</p> -<p><span class="bold"><strong>Notes</strong></span>: This function is used to improve performance when constructing a value_type is expensive: if there is an equivalent value the constructed object must be discarded. Many times, the part of the node that is used to impose the order is much cheaper to construct than the value_type and this function offers the possibility to use that part to check if the insertion will be successful.</p> -<p>If the check is successful, the user can construct the value_type and use "insert_commit" to insert the object in constant-time. This gives a total logarithmic complexity to the insertion: check(O(log(N)) + commit(O(1)).</p> -<p>"commit_data" remains valid for a subsequent "insert_commit" only if no more objects are inserted or erased from the container. </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> KeyTypeKeyCompare<span class="special">></span> + <a name="idm21242-bb"></a><span class="identifier">insert_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">KeyTypeKeyCompare</span> comp<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></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> KeyTypeKeyCompare<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="idm45971719717280-bb"></a><span class="identifier">insert_check</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<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">KeyTypeKeyCompare</span> comp<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>: comp must be a comparison function that induces the same strict weak ordering as key_compare. The difference is that comp compares an arbitrary key with the contained values.</p> -<p><span class="bold"><strong>Effects</strong></span>: Checks if a value can be inserted in the container, using a user provided key instead of the value itself, using "hint" as a hint to where it will be inserted.</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>: Logarithmic in general, but it's amortized constant time if t is inserted immediately before hint.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comp ordering function throws. Strong guarantee.</p> -<p><span class="bold"><strong>Notes</strong></span>: This function is used to improve performance when constructing a value_type is expensive: if there is an equivalent value the constructed object must be discarded. Many times, the part of the constructing that is used to impose the order is much cheaper to construct than the value_type and this function offers the possibility to use that key to check if the insertion will be successful.</p> -<p>If the check is successful, the user can construct the value_type and use "insert_commit" to insert the object in constant-time. This can give a total constant-time complexity to the insertion: check(O(1)) + commit(O(1)).</p> -<p>"commit_data" remains valid for a subsequent "insert_commit" only if no more objects are inserted or erased from the container. </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="idm45971719705088-bb"></a><span class="identifier">insert</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> + <a name="idm21253-bb"></a><span class="identifier">insert_check</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<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">KeyTypeKeyCompare</span> comp<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></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="idm21266-bb"></a><span class="identifier">insert</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>: Tries to insert each element of a range into the container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Insert range is in general O(N * log(N)), where N is the size of the range. However, it is linear in N if the range is already sorted by value_comp().</p> <p><span class="bold"><strong>Throws</strong></span>: If the comparison functor call throws.</p> -<p><span class="bold"><strong>Note</strong></span>: Does not affect the validity of iterators and references. No copy-constructors are called. </p> +<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">iterator</span> <a name="idm45971719697296-bb"></a><span class="identifier">insert_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="idm21285-bb"></a><span class="identifier">insert_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 container 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 container using the information obtained from the "commit_data" that a previous "insert_check" filled.</p> <p><span class="bold"><strong>Returns</strong></span>: An iterator to the newly inserted object.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Notes</strong></span>: This function has only sense if a "insert_check" has been previously executed to fill "commit_data". No value should be inserted or erased between the "insert_check" and "insert_commit" calls. </p> +<p><span class="bold"><strong>Notes</strong></span>: This function has only sense if a "insert_check" has been previously executed to fill "commit_data". No value should be inserted or erased between the "insert_check" and "insert_commit" calls. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971719688992-bb"></a><span class="identifier">insert_before</span><span class="special">(</span><span class="identifier">const_iterator</span> pos<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="idm21304-bb"></a><span class="identifier">insert_before</span><span class="special">(</span><span class="identifier">const_iterator</span> pos<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, "pos" must be a valid iterator (or end) and must be the succesor of value once inserted according to the predicate</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts x into the container before "pos".</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if "pos" is not the successor of "value" container ordering invariant will be broken. This is a low-level function to be used only for performance reasons by advanced users. </p> +<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if "pos" is not the successor of "value" container ordering invariant will be broken. This is a low-level function to be used only for performance reasons by advanced users. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971719681760-bb"></a><span class="identifier">push_back</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">void</span> <a name="idm21321-bb"></a><span class="identifier">push_back</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 it must be no less than the greatest inserted key</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts x into the container in the last position.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if value is less than the greatest inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users. </p> +<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if value is less than the greatest inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971719675200-bb"></a><span class="identifier">push_front</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">void</span> <a name="idm21336-bb"></a><span class="identifier">push_front</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 it must be no greater than the minimum inserted key</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts x into the container in the first position.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if value is greater than the minimum inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971719668640-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 complexity for erase element is constant time.</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">iterator</span> <a name="idm45971719663152-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 complexity for erase range is at most O(log(size() + N)), where N is the number of elements in the range.</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="idm45971719656912-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>: O(log(size() + N).</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> +<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if value is greater than the minimum inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm21351-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm21355-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">size_type</span> <a name="idm21361-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></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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971719650864-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <span class="identifier">size_type</span> <a name="idm21365-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Erases all the elements with the given key. according to the comparison functor "comp".</p> <p><span class="bold"><strong>Returns</strong></span>: The number of erased elements.</p> <p><span class="bold"><strong>Complexity</strong></span>: O(log(size() + N).</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="identifier">iterator</span> <a name="idm45971719640768-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 complexity for erase element is constant time.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<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">template</span><span class="special"><</span><span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="identifier">iterator</span> <a name="idm45971719632864-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> -<p><span class="bold"><strong>Complexity</strong></span>: Average complexity for erase range is at most O(log(size() + N)), where N is the number of elements in the range.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<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">template</span><span class="special"><</span><span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971719624208-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> -<p><span class="bold"><strong>Complexity</strong></span>: O(log(size() + N).</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> +<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="identifier">iterator</span> <a name="idm21389-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></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">iterator</span> <a name="idm21397-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></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="idm21407-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></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> KeyTypeKeyCompare<span class="special">,</span> <span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971719615680-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">KeyTypeKeyCompare</span> comp<span class="special">,</span> + <span class="identifier">size_type</span> <a name="idm21415-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">KeyTypeKeyCompare</span> comp<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>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk) and nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Requires</strong></span>: Disposer::operator()(pointer) shouldn't throw.</p> @@ -557,168 +460,102 @@ <p><span class="bold"><strong>Returns</strong></span>: The number of erased elements.</p> <p><span class="bold"><strong>Complexity</strong></span>: O(log(size() + N).</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: Invalidates the iterators to the erased elements. </p> +<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="idm45971719603456-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="idm21444-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> +<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="idm45971719598592-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="idm21455-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>Effects</strong></span>: Erases all of the elements calling disposer(p) for each node to be erased. <span class="bold"><strong>Complexity</strong></span>: Average complexity for is at most O(log(size() + N)), where N is the number of elements in the container.</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. Calls N times to disposer functor. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">size_type</span> <a name="idm45971719592288-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>: Logarithmic to the number of elements contained plus lineal to number of objects with the given value.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Note</strong></span>: Invalidates the iterators (but not the references) to the erased elements. Calls N times to disposer functor. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">size_type</span> <a name="idm21469-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></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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971719587216-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> + <span class="identifier">size_type</span> <a name="idm21473-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns the number of contained elements with the given key</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic to the number of elements contained plus lineal to number of objects with the given key.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> </li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971719578160-bb"></a><span class="identifier">lower_bound</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 an iterator to the first element whose key is not less than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> 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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a name="idm45971719573408-bb"></a><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Effects</strong></span>: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971719566560-bb"></a><span class="identifier">lower_bound</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 an iterator to the first element whose key is not less than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> 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> KeyTypeKeyCompare<span class="special">></span> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm21494-bb"></a><span class="identifier">lower_bound</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></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> KeyTypeKeyCompare<span class="special">></span> + <span class="identifier">iterator</span> <a name="idm21498-bb"></a><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm21507-bb"></a><span class="identifier">lower_bound</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></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> KeyTypeKeyCompare<span class="special">></span> <span class="identifier">const_iterator</span> - <a name="idm45971719561536-bb"></a><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Effects</strong></span>: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971719554416-bb"></a><span class="identifier">upper_bound</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 an iterator to the first element whose key is greater than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> -</li> + <a name="idm21511-bb"></a><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm21520-bb"></a><span class="identifier">upper_bound</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></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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a name="idm45971719549664-bb"></a><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <span class="identifier">iterator</span> <a name="idm21524-bb"></a><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns an iterator to the first element whose key is greater than k according to comp or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971719540960-bb"></a><span class="identifier">upper_bound</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 an iterator to the first element whose key is greater than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm21545-bb"></a><span class="identifier">upper_bound</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></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> KeyTypeKeyCompare<span class="special">></span> <span class="identifier">const_iterator</span> - <a name="idm45971719535936-bb"></a><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> + <a name="idm21549-bb"></a><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns an iterator to the first element whose key is greater than k according to comp or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971719526960-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 whose key is k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm21570-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></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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a name="idm45971719522224-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <span class="identifier">iterator</span> <a name="idm21574-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Finds an iterator to the first element whose key is k or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971719513488-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 an iterator to the first element whose key is k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm21595-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></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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">const_iterator</span> <a name="idm45971719508480-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> + <span class="identifier">const_iterator</span> <a name="idm21599-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Finds an iterator to the first element whose key is k or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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="idm45971719499472-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>: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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="idm21620-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></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> KeyTypeKeyCompare<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="idm45971719494640-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <a name="idm21624-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">></span> -<a name="idm45971719485808-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>: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">></span> +<a name="idm21645-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></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> KeyTypeKeyCompare<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="idm45971719480688-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> + <a name="idm21649-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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="idm45971719471568-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> upper_key<span class="special">,</span> - <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: <code class="computeroutput">upper_key</code> shall not precede <code class="computeroutput">lower_key</code> according to key_compare. [key_comp()(upper_key, lower_key) shall be false]</p> -<p>If <code class="computeroutput">lower_key</code> is equivalent to <code class="computeroutput">upper_key</code> [!key_comp()(upper_key, lower_key) && !key_comp()(lower_key, upper_key)] then ('left_closed' || 'right_closed') must be false.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns an a pair with the following criteria:</p> -<p>first = lower_bound(lower_key) if left_closed, upper_bound(lower_key) otherwise</p> -<p>second = upper_bound(upper_key) if right_closed, lower_bound(upper_key) otherwise</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws.</p> -<p><span class="bold"><strong>Note</strong></span>: This function can be more efficient than calling upper_bound and lower_bound for lower_value and upper_value.</p> -<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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="idm21670-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> upper_key<span class="special">,</span> + <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span><span class="special">;</span></pre></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> KeyTypeKeyCompare<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="idm45971719459136-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> + <a name="idm21680-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span> comp<span class="special">,</span> <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: <code class="computeroutput">lower_key</code> is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, lower_key) if left_closed is true, with respect to !comp(lower_key, nk) otherwise.</p> <p><code class="computeroutput">upper_key</code> is a value such that <code class="computeroutput">*this</code> is partitioned with respect to !comp(upper_key, nk) if right_closed is true, with respect to comp(nk, upper_key) otherwise.</p> @@ -730,26 +567,15 @@ <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> <p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws.</p> <p><span class="bold"><strong>Note</strong></span>: This function can be more efficient than calling upper_bound and lower_bound for lower_key and upper_key.</p> -<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </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">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">></span> -<a name="idm45971719442336-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> upper_key<span class="special">,</span> - <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: <code class="computeroutput">upper_key</code> shall not precede <code class="computeroutput">lower_key</code> according to key_compare. [key_comp()(upper_key, lower_key) shall be false]</p> -<p>If <code class="computeroutput">lower_key</code> is equivalent to <code class="computeroutput">upper_key</code> [!key_comp()(upper_key, lower_key) && !key_comp()(lower_key, upper_key)] then ('left_closed' || 'right_closed') must be false.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns an a pair with the following criteria:</p> -<p>first = lower_bound(lower_key) if left_closed, upper_bound(lower_key) otherwise</p> -<p>second = upper_bound(upper_key) if right_closed, lower_bound(upper_key) otherwise</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws.</p> -<p><span class="bold"><strong>Note</strong></span>: This function can be more efficient than calling upper_bound and lower_bound for lower_value and upper_value.</p> -<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </p> +<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </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">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">></span> +<a name="idm21722-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> upper_key<span class="special">,</span> + <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></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> KeyTypeKeyCompare<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="idm45971719429616-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> + <a name="idm21732-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span> comp<span class="special">,</span> <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: <code class="computeroutput">lower_key</code> is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, lower_key) if left_closed is true, with respect to !comp(lower_key, nk) otherwise.</p> <p><code class="computeroutput">upper_key</code> is a value such that <code class="computeroutput">*this</code> is partitioned with respect to !comp(upper_key, nk) if right_closed is true, with respect to comp(nk, upper_key) otherwise.</p> @@ -761,133 +587,59 @@ <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> <p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws.</p> <p><span class="bold"><strong>Note</strong></span>: This function can be more efficient than calling upper_bound and lower_bound for lower_key and upper_key.</p> -<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971719412528-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 set of appropriate type. Otherwise the behavior is undefined.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns: a valid iterator i belonging to the set 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_iterator</span> <a name="idm45971719407040-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 set of appropriate type. Otherwise the behavior is undefined.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns: a valid const_iterator i belonging to the set 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> +<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm21774-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm21778-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></li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">pointer</span> <a name="idm45971719401552-bb"></a><span class="identifier">unlink_leftmost_without_rebalance</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">pointer</span> <a name="idm21782-bb"></a><span class="identifier">unlink_leftmost_without_rebalance</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>: Unlinks the leftmost node from the container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Average complexity is constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Notes</strong></span>: This function breaks the container and the container can only be used for more unlink_leftmost_without_rebalance calls. This function is normally used to achieve a step by step controlled destruction of the container. </p> +<p><span class="bold"><strong>Notes</strong></span>: This function breaks the container and the container can only be used for more unlink_leftmost_without_rebalance calls. This function is normally used to achieve a step by step controlled destruction of the container. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971719396640-bb"></a><span class="identifier">replace_node</span><span class="special">(</span><span class="identifier">iterator</span> replace_this<span class="special">,</span> <span class="identifier">reference</span> with_this<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">void</span> <a name="idm21793-bb"></a><span class="identifier">replace_node</span><span class="special">(</span><span class="identifier">iterator</span> replace_this<span class="special">,</span> <span class="identifier">reference</span> with_this<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: replace_this must be a valid iterator of *this and with_this must not be inserted in any container.</p> <p><span class="bold"><strong>Effects</strong></span>: Replaces replace_this in its position in the container with with_this. The container does not need to be rebalanced.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: This function will break container ordering invariants if with_this is not equivalent to *replace_this according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing or comparison is needed. </p> +<p><span class="bold"><strong>Note</strong></span>: This function will break container ordering invariants if with_this is not equivalent to *replace_this according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing or comparison is needed. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971719389376-bb"></a><span class="identifier">remove_node</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">void</span> <a name="idm21810-bb"></a><span class="identifier">remove_node</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>Effects</strong></span>: removes "value" from the container.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic time.</p> <p><span class="bold"><strong>Note</strong></span>: This static function is only usable with non-constant time size containers that have stateless comparison functors.</p> -<p>If the user calls this function with a constant time size container or stateful comparison functor a compilation error will be issued. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="special">...</span> Options2<span class="special">></span> <span class="keyword">void</span> <a name="idm45971719383536-bb"></a><span class="identifier">merge</span><span class="special">(</span><a class="link" href="avl_set.html" title="Class template avl_set">avl_set</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span> source<span class="special">)</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: "source" container's Options can only can differ in the comparison function from *this.</p> -<p><span class="bold"><strong>Effects</strong></span>: Attempts to extract each element in source and insert it into a using the comparison object of *this. If there is an element in a with key equivalent to the key of an element from source, then that element is not extracted from source.</p> -<p><span class="bold"><strong>Postcondition</strong></span>: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing unless the comparison object throws.</p> -<p><span class="bold"><strong>Complexity</strong></span>: N log(a.size() + N) (N has the value source.size()) </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="special">...</span> Options2<span class="special">></span> - <span class="keyword">void</span> <a name="idm45971719375584-bb"></a><span class="identifier">merge</span><span class="special">(</span><a class="link" href="avl_multiset.html" title="Class template avl_multiset">avl_multiset</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span> source<span class="special">)</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: "source" container's Options can only can differ in the comparison function from *this.</p> -<p><span class="bold"><strong>Effects</strong></span>: Attempts to extract each element in source and insert it into a using the comparison object of *this. If there is an element in a with key equivalent to the key of an element from source, then that element is not extracted from source.</p> -<p><span class="bold"><strong>Postcondition</strong></span>: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing unless the comparison object throws.</p> -<p><span class="bold"><strong>Complexity</strong></span>: N log(a.size() + N) (N has the value source.size()) </p> +<p>If the user calls this function with a constant time size container or stateful comparison functor a compilation error will be issued. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="special">...</span> Options2<span class="special">></span> <span class="keyword">void</span> <a name="idm21824-bb"></a><span class="identifier">merge</span><span class="special">(</span><a class="link" href="avl_set.html" title="Class template avl_set">avl_set</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span> source<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="special">...</span> Options2<span class="special">></span> + <span class="keyword">void</span> <a name="idm21832-bb"></a><span class="identifier">merge</span><span class="special">(</span><a class="link" href="avl_multiset.html" title="Class template avl_multiset">avl_multiset</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span> source<span class="special">)</span><span class="special">;</span></pre></li> </ol></div> </div> <div class="refsect2"> -<a name="id-1.3.20.42.3.4.4.7"></a><h3> -<a name="idm45971719339712-bb"></a><code class="computeroutput">avl_set</code> public static functions</h3> +<a name="id-1.3.18.42.3.4.4.7"></a><h3> +<a name="idm21896-bb"></a><code class="computeroutput">avl_set</code> public static functions</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <a class="link" href="avl_set.html" title="Class template avl_set">avl_set</a> <span class="special">&</span> <a name="idm45971719339152-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Precondition</strong></span>: end_iterator must be a valid end iterator of the container.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the container associated to the end iterator</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Constant. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="avl_set.html" title="Class template avl_set">avl_set</a> <span class="special">&</span> -<a name="idm45971719333136-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">const_iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Precondition</strong></span>: end_iterator must be a valid end iterator of the container.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the container associated to the end iterator</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Constant. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <a class="link" href="avl_set.html" title="Class template avl_set">avl_set</a> <span class="special">&</span> <a name="idm45971719326960-bb"></a><span class="identifier">container_from_iterator</span><span class="special">(</span><span class="identifier">iterator</span> it<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Precondition</strong></span>: it must be a valid iterator of the container.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the container associated to the iterator</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="avl_set.html" title="Class template avl_set">avl_set</a> <span class="special">&</span> <a name="idm45971719320992-bb"></a><span class="identifier">container_from_iterator</span><span class="special">(</span><span class="identifier">const_iterator</span> it<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Precondition</strong></span>: it must be a valid iterator of the container.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the container associated to the iterator</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="identifier">iterator</span> <a name="idm45971719314864-bb"></a><span class="identifier">s_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 set of appropriate type. Otherwise the behavior is undefined.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns: a valid iterator i belonging to the set 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> -<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">const_iterator</span> <a name="idm45971719307776-bb"></a><span class="identifier">s_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 set of appropriate type. Otherwise the behavior is undefined.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns: a valid iterator i belonging to the set 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> -<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="keyword">void</span> <a name="idm45971719300688-bb"></a><span class="identifier">init_node</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 shall not be in a container.</p> -<p><span class="bold"><strong>Effects</strong></span>: init_node puts the hook of a value in a well-known default state.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> -<p><span class="bold"><strong>Note</strong></span>: This function puts the hook in the well-known default state used by auto_unlink and safe hooks. </p> -</li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <a class="link" href="avl_set.html" title="Class template avl_set">avl_set</a> <span class="special">&</span> <a name="idm21897-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="avl_set.html" title="Class template avl_set">avl_set</a> <span class="special">&</span> +<a name="idm21902-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">const_iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <a class="link" href="avl_set.html" title="Class template avl_set">avl_set</a> <span class="special">&</span> <a name="idm21907-bb"></a><span class="identifier">container_from_iterator</span><span class="special">(</span><span class="identifier">iterator</span> it<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="avl_set.html" title="Class template avl_set">avl_set</a> <span class="special">&</span> <a name="idm21912-bb"></a><span class="identifier">container_from_iterator</span><span class="special">(</span><span class="identifier">const_iterator</span> it<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">iterator</span> <a name="idm21917-bb"></a><span class="identifier">s_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></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">const_iterator</span> <a name="idm21921-bb"></a><span class="identifier">s_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></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm21925-bb"></a><span class="identifier">init_node</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></li> </ol></div> </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="avl_multiset.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.avl_set_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_avl_multiset.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/avl_set_base_hook.html b/doc/html/boost/intrusive/avl_set_base_hook.html index b8b86b312a..c7615db159 100644 --- a/doc/html/boost/intrusive/avl_set_base_hook.html +++ b/doc/html/boost/intrusive/avl_set_base_hook.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.avl_set_hook_hpp" title="Header <boost/intrusive/avl_set_hook.hpp>"> <link rel="prev" href="make_avl_set.html" title="Struct template make_avl_set"> <link rel="next" href="avl_set_member_hook.html" title="Class template avl_set_member_hook"> +<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> @@ -29,27 +30,25 @@ <h2><span class="refentrytitle">Class template avl_set_base_hook</span></h2> <p>boost::intrusive::avl_set_base_hook</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.avl_set_hook_hpp" title="Header <boost/intrusive/avl_set_hook.hpp>">boost/intrusive/avl_set_hook.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.avl_set_hook_hpp" title="Header <boost/intrusive/avl_set_hook.hpp>">boost/intrusive/avl_set_hook.hpp</a>> </span><span class="keyword">template</span><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="avl_set_base_hook.html" title="Class template avl_set_base_hook">avl_set_base_hook</a> <span class="special">:</span> - <span class="keyword">public</span> <span class="identifier">make_avl_set_base_hook</span><span class="special">::</span><span class="identifier">type</span><span class="special"><</span> <span class="identifier">O1</span><span class="special">,</span> <span class="identifier">O2</span><span class="special">,</span> <span class="identifier">O3</span><span class="special">,</span> <span class="identifier">O4</span> <span class="special">></span> -<span class="special">{</span> +<span class="keyword">class</span> <a class="link" href="avl_set_base_hook.html" title="Class template avl_set_base_hook">avl_set_base_hook</a> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">make_avl_set_base_hook</span><span class="special">::</span><span class="identifier">type</span> <span class="special">{</span> <span class="keyword">public</span><span class="special">:</span> <span class="comment">// <a class="link" href="avl_set_base_hook.html#boost.intrusive.avl_set_base_hookconstruct-copy-destruct">construct/copy/destruct</a></span> - <a class="link" href="avl_set_base_hook.html#idm45971719207552-bb"><span class="identifier">avl_set_base_hook</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> - <a class="link" href="avl_set_base_hook.html#idm45971719203776-bb"><span class="identifier">avl_set_base_hook</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="avl_set_base_hook.html" title="Class template avl_set_base_hook">avl_set_base_hook</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span> - <a class="link" href="avl_set_base_hook.html" title="Class template avl_set_base_hook">avl_set_base_hook</a> <span class="special">&</span> <a class="link" href="avl_set_base_hook.html#idm45971719197408-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="avl_set_base_hook.html" title="Class template avl_set_base_hook">avl_set_base_hook</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span> - <a class="link" href="avl_set_base_hook.html#idm45971719192112-bb"><span class="special">~</span><span class="identifier">avl_set_base_hook</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="avl_set_base_hook.html#idm22138-bb"><span class="identifier">avl_set_base_hook</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="avl_set_base_hook.html#idm22147-bb"><span class="identifier">avl_set_base_hook</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="avl_set_base_hook.html" title="Class template avl_set_base_hook">avl_set_base_hook</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="avl_set_base_hook.html" title="Class template avl_set_base_hook">avl_set_base_hook</a> <span class="special">&</span> <a class="link" href="avl_set_base_hook.html#idm22162-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="avl_set_base_hook.html" title="Class template avl_set_base_hook">avl_set_base_hook</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="avl_set_base_hook.html#idm22176-bb"><span class="special">~</span><span class="identifier">avl_set_base_hook</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> - <span class="comment">// <a class="link" href="avl_set_base_hook.html#idm45971719223168-bb">public member functions</a></span> - <span class="keyword">void</span> <a class="link" href="avl_set_base_hook.html#idm45971719222608-bb"><span class="identifier">swap_nodes</span></a><span class="special">(</span><a class="link" href="avl_set_base_hook.html" title="Class template avl_set_base_hook">avl_set_base_hook</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">bool</span> <a class="link" href="avl_set_base_hook.html#idm45971719217600-bb"><span class="identifier">is_linked</span></a><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="avl_set_base_hook.html#idm45971719211632-bb"><span class="identifier">unlink</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="comment">// <a class="link" href="avl_set_base_hook.html#idm22103-bb">public member functions</a></span> + <span class="keyword">void</span> <a class="link" href="avl_set_base_hook.html#idm22104-bb"><span class="identifier">swap_nodes</span></a><span class="special">(</span><a class="link" href="avl_set_base_hook.html" title="Class template avl_set_base_hook">avl_set_base_hook</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">bool</span> <a class="link" href="../container/set.html#idm22116-bb"><span class="identifier">is_linked</span></a><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="../container/set.html#idm22129-bb"><span class="identifier">unlink</span></a><span class="special">(</span><span class="special">)</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.4.3.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.4.3.4"></a><h2>Description</h2> <p>Derive a class from <a class="link" href="avl_set_base_hook.html" title="Class template avl_set_base_hook">avl_set_base_hook</a> in order to store objects in in an avl_set/avl_multiset. <a class="link" href="avl_set_base_hook.html" title="Class template avl_set_base_hook">avl_set_base_hook</a> holds the data necessary to maintain the avl_set/avl_multiset and provides an appropriate <a class="link" href="value_traits.html" title="Struct template value_traits">value_traits</a> class for avl_set/avl_multiset.</p> <p>The hook admits the following options: <code class="computeroutput">tag<></code>, <code class="computeroutput">void_pointer<></code>, <code class="computeroutput">link_mode<></code> and <code class="computeroutput">optimize_size<></code>.</p> <p><code class="computeroutput">tag<></code> defines a tag to identify the node. The same tag value can be used in different classes, but if a class is derived from more than one <code class="computeroutput"><a class="link" href="list_base_hook.html" title="Class template list_base_hook">list_base_hook</a></code>, then each <code class="computeroutput"><a class="link" href="list_base_hook.html" title="Class template list_base_hook">list_base_hook</a></code> needs its unique tag.</p> @@ -57,53 +56,53 @@ <p><code class="computeroutput">link_mode<></code> will specify the linking mode of the hook (<code class="computeroutput">normal_link</code>, <code class="computeroutput">auto_unlink</code> or <code class="computeroutput">safe_link</code>).</p> <p><code class="computeroutput">optimize_size<></code> will tell the hook to optimize the hook for size instead of speed. </p> <div class="refsect2"> -<a name="id-1.3.20.42.4.3.4.8"></a><h3> +<a name="id-1.3.18.42.4.3.4.8"></a><h3> <a name="boost.intrusive.avl_set_base_hookconstruct-copy-destruct"></a><code class="computeroutput">avl_set_base_hook</code> public construct/copy/destruct</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> <li class="listitem"> -<pre class="literallayout"><a name="idm45971719207552-bb"></a><span class="identifier">avl_set_base_hook</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm22138-bb"></a><span class="identifier">avl_set_base_hook</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: If <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is <code class="computeroutput">auto_unlink</code> or <code class="computeroutput">safe_link</code> initializes the node to an unlinked state.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><a name="idm45971719203776-bb"></a><span class="identifier">avl_set_base_hook</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="avl_set_base_hook.html" title="Class template avl_set_base_hook">avl_set_base_hook</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm22147-bb"></a><span class="identifier">avl_set_base_hook</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="avl_set_base_hook.html" title="Class template avl_set_base_hook">avl_set_base_hook</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: If <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is <code class="computeroutput">auto_unlink</code> or <code class="computeroutput">safe_link</code> initializes the node to an unlinked state. The argument is ignored.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Rationale</strong></span>: Providing a copy-constructor makes classes using the hook STL-compliant without forcing the user to do some additional work. <code class="computeroutput">swap</code> can be used to emulate move-semantics. </p> </li> <li class="listitem"> -<pre class="literallayout"><a class="link" href="avl_set_base_hook.html" title="Class template avl_set_base_hook">avl_set_base_hook</a> <span class="special">&</span> <a name="idm45971719197408-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="avl_set_base_hook.html" title="Class template avl_set_base_hook">avl_set_base_hook</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a class="link" href="avl_set_base_hook.html" title="Class template avl_set_base_hook">avl_set_base_hook</a> <span class="special">&</span> <a name="idm22162-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="avl_set_base_hook.html" title="Class template avl_set_base_hook">avl_set_base_hook</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Empty function. The argument is ignored.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Rationale</strong></span>: Providing an assignment operator makes classes using the hook STL-compliant without forcing the user to do some additional work. <code class="computeroutput">swap</code> can be used to emulate move-semantics. </p> </li> <li class="listitem"> -<pre class="literallayout"><a name="idm45971719192112-bb"></a><span class="special">~</span><span class="identifier">avl_set_base_hook</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm22176-bb"></a><span class="special">~</span><span class="identifier">avl_set_base_hook</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: If <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is <code class="computeroutput">normal_link</code>, the destructor does nothing (ie. no code is generated). If <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is <code class="computeroutput">safe_link</code> and the object is stored in a set an assertion is raised. If <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is <code class="computeroutput">auto_unlink</code> and <code class="computeroutput">is_linked()</code> is true, the node is unlinked.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> </ol></div> </div> <div class="refsect2"> -<a name="id-1.3.20.42.4.3.4.9"></a><h3> -<a name="idm45971719223168-bb"></a><code class="computeroutput">avl_set_base_hook</code> public member functions</h3> +<a name="id-1.3.18.42.4.3.4.9"></a><h3> +<a name="idm22103-bb"></a><code class="computeroutput">avl_set_base_hook</code> public member functions</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971719222608-bb"></a><span class="identifier">swap_nodes</span><span class="special">(</span><a class="link" href="avl_set_base_hook.html" title="Class template avl_set_base_hook">avl_set_base_hook</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="idm22104-bb"></a><span class="identifier">swap_nodes</span><span class="special">(</span><a class="link" href="avl_set_base_hook.html" title="Class template avl_set_base_hook">avl_set_base_hook</a> <span class="special">&</span> other<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Swapping two nodes swaps the position of the elements related to those nodes in one or two containers. That is, if the node this is part of the element e1, the node x is part of the element e2 and both elements are included in the containers s1 and s2, then after the swap-operation e1 is in s2 at the position of e2 and e2 is in s1 at the position of e1. If one element is not in a container, then after the swap-operation the other element is not in a container. Iterators to e1 and e2 related to those nodes are invalidated.</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="keyword">bool</span> <a name="idm45971719217600-bb"></a><span class="identifier">is_linked</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">bool</span> <a name="idm22116-bb"></a><span class="identifier">is_linked</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Precondition</strong></span>: <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> must be <code class="computeroutput">safe_link</code> or <code class="computeroutput">auto_unlink</code>.</p> <p><span class="bold"><strong>Returns</strong></span>: true, if the node belongs to a container, false otherwise. This function can be used to test whether <code class="computeroutput">set::iterator_to</code> will return a valid iterator.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971719211632-bb"></a><span class="identifier">unlink</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">void</span> <a name="idm22129-bb"></a><span class="identifier">unlink</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Removes the node if it's inserted in a container. This function is only allowed if <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is <code class="computeroutput">auto_unlink</code>.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> @@ -111,14 +110,11 @@ </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="make_avl_set.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.avl_set_hook_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="avl_set_member_hook.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/avl_set_member_hook.html b/doc/html/boost/intrusive/avl_set_member_hook.html index 4a59b8f890..755059773e 100644 --- a/doc/html/boost/intrusive/avl_set_member_hook.html +++ b/doc/html/boost/intrusive/avl_set_member_hook.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.avl_set_hook_hpp" title="Header <boost/intrusive/avl_set_hook.hpp>"> <link rel="prev" href="avl_set_base_hook.html" title="Class template avl_set_base_hook"> <link rel="next" href="make_avl_set_base_hook.html" title="Struct template make_avl_set_base_hook"> +<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> @@ -29,80 +30,78 @@ <h2><span class="refentrytitle">Class template avl_set_member_hook</span></h2> <p>boost::intrusive::avl_set_member_hook</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.avl_set_hook_hpp" title="Header <boost/intrusive/avl_set_hook.hpp>">boost/intrusive/avl_set_hook.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.avl_set_hook_hpp" title="Header <boost/intrusive/avl_set_hook.hpp>">boost/intrusive/avl_set_hook.hpp</a>> </span><span class="keyword">template</span><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="avl_set_member_hook.html" title="Class template avl_set_member_hook">avl_set_member_hook</a> <span class="special">:</span> - <span class="keyword">public</span> <span class="identifier">make_avl_set_member_hook</span><span class="special">::</span><span class="identifier">type</span><span class="special"><</span> <span class="identifier">O1</span><span class="special">,</span> <span class="identifier">O2</span><span class="special">,</span> <span class="identifier">O3</span><span class="special">,</span> <span class="identifier">O4</span> <span class="special">></span> -<span class="special">{</span> +<span class="keyword">class</span> <a class="link" href="avl_set_member_hook.html" title="Class template avl_set_member_hook">avl_set_member_hook</a> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">make_avl_set_member_hook</span><span class="special">::</span><span class="identifier">type</span> <span class="special">{</span> <span class="keyword">public</span><span class="special">:</span> <span class="comment">// <a class="link" href="avl_set_member_hook.html#boost.intrusive.avl_set_member_hookconstruct-copy-destruct">construct/copy/destruct</a></span> - <a class="link" href="avl_set_member_hook.html#idm45971719160464-bb"><span class="identifier">avl_set_member_hook</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> - <a class="link" href="avl_set_member_hook.html#idm45971719156688-bb"><span class="identifier">avl_set_member_hook</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="avl_set_member_hook.html" title="Class template avl_set_member_hook">avl_set_member_hook</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span> - <a class="link" href="avl_set_member_hook.html" title="Class template avl_set_member_hook">avl_set_member_hook</a> <span class="special">&</span> <a class="link" href="avl_set_member_hook.html#idm45971719150320-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="avl_set_member_hook.html" title="Class template avl_set_member_hook">avl_set_member_hook</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span> - <a class="link" href="avl_set_member_hook.html#idm45971719145024-bb"><span class="special">~</span><span class="identifier">avl_set_member_hook</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="avl_set_member_hook.html#idm22247-bb"><span class="identifier">avl_set_member_hook</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="avl_set_member_hook.html#idm22256-bb"><span class="identifier">avl_set_member_hook</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="avl_set_member_hook.html" title="Class template avl_set_member_hook">avl_set_member_hook</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="avl_set_member_hook.html" title="Class template avl_set_member_hook">avl_set_member_hook</a> <span class="special">&</span> <a class="link" href="avl_set_member_hook.html#idm22271-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="avl_set_member_hook.html" title="Class template avl_set_member_hook">avl_set_member_hook</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="avl_set_member_hook.html#idm22285-bb"><span class="special">~</span><span class="identifier">avl_set_member_hook</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> - <span class="comment">// <a class="link" href="avl_set_member_hook.html#idm45971719176080-bb">public member functions</a></span> - <span class="keyword">void</span> <a class="link" href="avl_set_member_hook.html#idm45971719175520-bb"><span class="identifier">swap_nodes</span></a><span class="special">(</span><a class="link" href="avl_set_member_hook.html" title="Class template avl_set_member_hook">avl_set_member_hook</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">bool</span> <a class="link" href="avl_set_member_hook.html#idm45971719170512-bb"><span class="identifier">is_linked</span></a><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="avl_set_member_hook.html#idm45971719164544-bb"><span class="identifier">unlink</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="comment">// <a class="link" href="avl_set_member_hook.html#idm22212-bb">public member functions</a></span> + <span class="keyword">void</span> <a class="link" href="avl_set_member_hook.html#idm22213-bb"><span class="identifier">swap_nodes</span></a><span class="special">(</span><a class="link" href="avl_set_member_hook.html" title="Class template avl_set_member_hook">avl_set_member_hook</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">bool</span> <a class="link" href="../container/set.html#idm22225-bb"><span class="identifier">is_linked</span></a><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="avl_set_member_hook.html#idm22238-bb"><span class="identifier">unlink</span></a><span class="special">(</span><span class="special">)</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.4.4.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.4.4.4"></a><h2>Description</h2> <p>Put a public data member <a class="link" href="avl_set_member_hook.html" title="Class template avl_set_member_hook">avl_set_member_hook</a> in order to store objects of this class in an avl_set/avl_multiset. <a class="link" href="avl_set_member_hook.html" title="Class template avl_set_member_hook">avl_set_member_hook</a> holds the data necessary for maintaining the avl_set/avl_multiset and provides an appropriate <a class="link" href="value_traits.html" title="Struct template value_traits">value_traits</a> class for avl_set/avl_multiset.</p> <p>The hook admits the following options: <code class="computeroutput">void_pointer<></code>, <code class="computeroutput">link_mode<></code> and <code class="computeroutput">optimize_size<></code>.</p> <p><code class="computeroutput">void_pointer<></code> is the pointer type that will be used internally in the hook and the container configured to use this hook.</p> <p><code class="computeroutput">link_mode<></code> will specify the linking mode of the hook (<code class="computeroutput">normal_link</code>, <code class="computeroutput">auto_unlink</code> or <code class="computeroutput">safe_link</code>).</p> <p><code class="computeroutput">optimize_size<></code> will tell the hook to optimize the hook for size instead of speed. </p> <div class="refsect2"> -<a name="id-1.3.20.42.4.4.4.7"></a><h3> +<a name="id-1.3.18.42.4.4.4.7"></a><h3> <a name="boost.intrusive.avl_set_member_hookconstruct-copy-destruct"></a><code class="computeroutput">avl_set_member_hook</code> public construct/copy/destruct</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> <li class="listitem"> -<pre class="literallayout"><a name="idm45971719160464-bb"></a><span class="identifier">avl_set_member_hook</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm22247-bb"></a><span class="identifier">avl_set_member_hook</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: If <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is <code class="computeroutput">auto_unlink</code> or <code class="computeroutput">safe_link</code> initializes the node to an unlinked state.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><a name="idm45971719156688-bb"></a><span class="identifier">avl_set_member_hook</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="avl_set_member_hook.html" title="Class template avl_set_member_hook">avl_set_member_hook</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm22256-bb"></a><span class="identifier">avl_set_member_hook</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="avl_set_member_hook.html" title="Class template avl_set_member_hook">avl_set_member_hook</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: If <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is <code class="computeroutput">auto_unlink</code> or <code class="computeroutput">safe_link</code> initializes the node to an unlinked state. The argument is ignored.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Rationale</strong></span>: Providing a copy-constructor makes classes using the hook STL-compliant without forcing the user to do some additional work. <code class="computeroutput">swap</code> can be used to emulate move-semantics. </p> </li> <li class="listitem"> -<pre class="literallayout"><a class="link" href="avl_set_member_hook.html" title="Class template avl_set_member_hook">avl_set_member_hook</a> <span class="special">&</span> <a name="idm45971719150320-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="avl_set_member_hook.html" title="Class template avl_set_member_hook">avl_set_member_hook</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a class="link" href="avl_set_member_hook.html" title="Class template avl_set_member_hook">avl_set_member_hook</a> <span class="special">&</span> <a name="idm22271-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="avl_set_member_hook.html" title="Class template avl_set_member_hook">avl_set_member_hook</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Empty function. The argument is ignored.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Rationale</strong></span>: Providing an assignment operator makes classes using the hook STL-compliant without forcing the user to do some additional work. <code class="computeroutput">swap</code> can be used to emulate move-semantics. </p> </li> <li class="listitem"> -<pre class="literallayout"><a name="idm45971719145024-bb"></a><span class="special">~</span><span class="identifier">avl_set_member_hook</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm22285-bb"></a><span class="special">~</span><span class="identifier">avl_set_member_hook</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: If <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is <code class="computeroutput">normal_link</code>, the destructor does nothing (ie. no code is generated). If <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is <code class="computeroutput">safe_link</code> and the object is stored in a set an assertion is raised. If <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is <code class="computeroutput">auto_unlink</code> and <code class="computeroutput">is_linked()</code> is true, the node is unlinked.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> </ol></div> </div> <div class="refsect2"> -<a name="id-1.3.20.42.4.4.4.8"></a><h3> -<a name="idm45971719176080-bb"></a><code class="computeroutput">avl_set_member_hook</code> public member functions</h3> +<a name="id-1.3.18.42.4.4.4.8"></a><h3> +<a name="idm22212-bb"></a><code class="computeroutput">avl_set_member_hook</code> public member functions</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971719175520-bb"></a><span class="identifier">swap_nodes</span><span class="special">(</span><a class="link" href="avl_set_member_hook.html" title="Class template avl_set_member_hook">avl_set_member_hook</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="idm22213-bb"></a><span class="identifier">swap_nodes</span><span class="special">(</span><a class="link" href="avl_set_member_hook.html" title="Class template avl_set_member_hook">avl_set_member_hook</a> <span class="special">&</span> other<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Swapping two nodes swaps the position of the elements related to those nodes in one or two containers. That is, if the node this is part of the element e1, the node x is part of the element e2 and both elements are included in the containers s1 and s2, then after the swap-operation e1 is in s2 at the position of e2 and e2 is in s1 at the position of e1. If one element is not in a container, then after the swap-operation the other element is not in a container. Iterators to e1 and e2 related to those nodes are invalidated.</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="keyword">bool</span> <a name="idm45971719170512-bb"></a><span class="identifier">is_linked</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">bool</span> <a name="idm22225-bb"></a><span class="identifier">is_linked</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Precondition</strong></span>: <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> must be <code class="computeroutput">safe_link</code> or <code class="computeroutput">auto_unlink</code>.</p> <p><span class="bold"><strong>Returns</strong></span>: true, if the node belongs to a container, false otherwise. This function can be used to test whether <code class="computeroutput">set::iterator_to</code> will return a valid iterator.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971719164544-bb"></a><span class="identifier">unlink</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">void</span> <a name="idm22238-bb"></a><span class="identifier">unlink</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Removes the node if it's inserted in a container. This function is only allowed if <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is <code class="computeroutput">auto_unlink</code>.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> @@ -110,14 +109,11 @@ </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="avl_set_base_hook.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.avl_set_hook_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_avl_set_base_hook.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/avltree.html b/doc/html/boost/intrusive/avltree.html index 0e48255fca..d4e4f67404 100644 --- a/doc/html/boost/intrusive/avltree.html +++ b/doc/html/boost/intrusive/avltree.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.avltree_hpp" title="Header <boost/intrusive/avltree.hpp>"> <link rel="prev" href="make_avl_set_member_hook.html" title="Struct template make_avl_set_member_hook"> <link rel="next" href="make_avltree.html" title="Struct template make_avltree"> +<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> @@ -29,8 +30,8 @@ <h2><span class="refentrytitle">Class template avltree</span></h2> <p>boost::intrusive::avltree</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.avltree_hpp" title="Header <boost/intrusive/avltree.hpp>">boost/intrusive/avltree.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.avltree_hpp" title="Header <boost/intrusive/avltree.hpp>">boost/intrusive/avltree.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="avltree.html" title="Class template avltree">avltree</a> <span class="special">{</span> @@ -60,528 +61,416 @@ <span class="keyword">typedef</span> <span class="identifier">implementation_defined</span><span class="special">::</span><span class="identifier">insert_commit_data</span> <a name="boost.intrusive.avltree.insert_commit_data"></a><span class="identifier">insert_commit_data</span><span class="special">;</span> <span class="comment">// <a class="link" href="avltree.html#boost.intrusive.avltreeconstruct-copy-destruct">construct/copy/destruct</a></span> - <a class="link" href="avltree.html#idm45971718594848-bb"><span class="identifier">avltree</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">explicit</span> <a class="link" href="avltree.html#idm45971718591696-bb"><span class="identifier">avltree</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_compare</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="avltree.html#idm23266-bb"><span class="identifier">avltree</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">explicit</span> <a class="link" href="avltree.html#idm23274-bb"><span class="identifier">avltree</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_compare</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="avltree.html#idm45971718586576-bb"><span class="identifier">avltree</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> <span class="identifier">key_compare</span> <span class="special">&</span> <span class="special">=</span> <span class="identifier">key_compare</span><span class="special">(</span><span class="special">)</span><span class="special">,</span> + <a class="link" href="avltree.html#idm23280-bb"><span class="identifier">avltree</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> <span class="identifier">key_compare</span> <span class="special">&</span> <span class="special">=</span> <span class="identifier">key_compare</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="avltree.html#idm45971718577424-bb"><span class="identifier">avltree</span></a><span class="special">(</span><a class="link" href="avltree.html" title="Class template avltree">avltree</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> - <a class="link" href="avltree.html" title="Class template avltree">avltree</a> <span class="special">&</span> <a class="link" href="avltree.html#idm45971718573120-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><a class="link" href="avltree.html" title="Class template avltree">avltree</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> - <a class="link" href="avltree.html#idm45971718570304-bb"><span class="special">~</span><span class="identifier">avltree</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="avltree.html#idm23295-bb"><span class="identifier">avltree</span></a><span class="special">(</span><a class="link" href="avltree.html" title="Class template avltree">avltree</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="avltree.html" title="Class template avltree">avltree</a> <span class="special">&</span> <a class="link" href="avltree.html#idm23306-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><a class="link" href="avltree.html" title="Class template avltree">avltree</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="avltree.html#idm23315-bb"><span class="special">~</span><span class="identifier">avltree</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> - <span class="comment">// <a class="link" href="avltree.html#idm45971719101584-bb">public member functions</a></span> - <span class="identifier">iterator</span> <a class="link" href="avltree.html#idm45971719101024-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="avltree.html#idm45971719097184-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="avltree.html#idm45971719093344-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="avltree.html#idm45971719089504-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="avltree.html#idm45971719085664-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="avltree.html#idm45971719081824-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">reverse_iterator</span> <a class="link" href="avltree.html#idm45971719077984-bb"><span class="identifier">rbegin</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="identifier">const_reverse_iterator</span> <a class="link" href="avltree.html#idm45971719074128-bb"><span class="identifier">rbegin</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_reverse_iterator</span> <a class="link" href="avltree.html#idm45971719070272-bb"><span class="identifier">crbegin</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">reverse_iterator</span> <a class="link" href="avltree.html#idm45971719066416-bb"><span class="identifier">rend</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="identifier">const_reverse_iterator</span> <a class="link" href="avltree.html#idm45971719062560-bb"><span class="identifier">rend</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_reverse_iterator</span> <a class="link" href="avltree.html#idm45971719058704-bb"><span class="identifier">crend</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="avltree.html#idm45971719054848-bb"><span class="identifier">root</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="avltree.html#idm45971719050976-bb"><span class="identifier">root</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="avltree.html#idm45971719047104-bb"><span class="identifier">croot</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">key_compare</span> <a class="link" href="avltree.html#idm45971719043232-bb"><span class="identifier">key_comp</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">value_compare</span> <a class="link" href="avltree.html#idm45971719039376-bb"><span class="identifier">value_comp</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="avltree.html#idm45971719035504-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="avltree.html#idm45971719031680-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="avltree.html#idm45971719027744-bb"><span class="identifier">swap</span></a><span class="special">(</span><a class="link" href="avltree.html" title="Class template avltree">avltree</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="comment">// <a class="link" href="../container/set.html#idm22383-bb">public member functions</a></span> + <span class="identifier">iterator</span> <a class="link" href="avltree.html#idm22384-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="../container/set.html#idm22393-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="avltree.html#idm22402-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="avltree.html#idm22411-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="../container/set.html#idm22420-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="avltree.html#idm22429-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">reverse_iterator</span> <a class="link" href="avltree.html#idm22438-bb"><span class="identifier">rbegin</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">const_reverse_iterator</span> <a class="link" href="avltree.html#idm22447-bb"><span class="identifier">rbegin</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_reverse_iterator</span> <a class="link" href="../container/set.html#idm22456-bb"><span class="identifier">crbegin</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">reverse_iterator</span> <a class="link" href="../container/set.html#idm22465-bb"><span class="identifier">rend</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">const_reverse_iterator</span> <a class="link" href="avltree.html#idm22474-bb"><span class="identifier">rend</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_reverse_iterator</span> <a class="link" href="avltree.html#idm22483-bb"><span class="identifier">crend</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="avltree.html#idm22492-bb"><span class="identifier">root</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="avltree.html#idm22501-bb"><span class="identifier">root</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="avltree.html#idm22510-bb"><span class="identifier">croot</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">key_compare</span> <a class="link" href="avltree.html#idm22519-bb"><span class="identifier">key_comp</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">value_compare</span> <a class="link" href="avltree.html#idm22528-bb"><span class="identifier">value_comp</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="avltree.html#idm22537-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="../container/set.html#idm22546-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="avltree.html#idm22555-bb"><span class="identifier">swap</span></a><span class="special">(</span><a class="link" href="avltree.html" title="Class template avltree">avltree</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="avltree.html#idm45971719023200-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="avltree.html" title="Class template avltree">avltree</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="avltree.html#idm22567-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="avltree.html" title="Class template avltree">avltree</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="avltree.html#idm45971719014144-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><a class="link" href="avltree.html" title="Class template avltree">avltree</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="avltree.html#idm45971719004336-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="identifier">iterator</span> <a class="link" href="avltree.html#idm45971718998176-bb"><span class="identifier">insert_equal</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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="avltree.html#idm45971718991152-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="avltree.html#idm45971718983312-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="identifier">iterator</span> <a class="link" href="avltree.html#idm45971718977168-bb"><span class="identifier">insert_unique</span></a><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">,</span> <span class="identifier">reference</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="avltree.html#idm22589-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><a class="link" href="avltree.html" title="Class template avltree">avltree</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="avltree.html#idm22613-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="identifier">iterator</span> <a class="link" href="avltree.html#idm22617-bb"><span class="identifier">insert_equal</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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="avltree.html#idm22623-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="avltree.html#idm22642-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="identifier">iterator</span> <a class="link" href="avltree.html#idm22646-bb"><span class="identifier">insert_unique</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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> KeyType<span class="special">,</span> <span class="keyword">typename</span> KeyTypeKeyCompare<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="avltree.html#idm45971718970208-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">KeyTypeKeyCompare</span><span class="special">,</span> + <a class="link" href="avltree.html#idm22652-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">KeyTypeKeyCompare</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="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> KeyType<span class="special">,</span> <span class="keyword">typename</span> KeyTypeKeyCompare<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="avltree.html#idm45971718958800-bb"><span class="identifier">insert_unique_check</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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">KeyTypeKeyCompare</span><span class="special">,</span> + <a class="link" href="avltree.html#idm22663-bb"><span class="identifier">insert_unique_check</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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">KeyTypeKeyCompare</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="avltree.html#idm45971718946608-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> + <a class="link" href="avltree.html#idm22676-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">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="avltree.html#idm45971718940416-bb"><span class="identifier">insert_unique_check</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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="avltree.html#idm45971718933440-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">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="avltree.html#idm45971718925136-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="identifier">iterator</span> <a class="link" href="avltree.html#idm45971718917344-bb"><span class="identifier">insert_before</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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">void</span> <a class="link" href="avltree.html#idm45971718910112-bb"><span class="identifier">push_back</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">void</span> <a class="link" href="avltree.html#idm45971718903552-bb"><span class="identifier">push_front</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">iterator</span> <a class="link" href="avltree.html#idm45971718896992-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="identifier">iterator</span> <a class="link" href="avltree.html#idm45971718891504-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="avltree.html#idm45971718885264-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="avltree.html#idm22682-bb"><span class="identifier">insert_unique_check</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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="avltree.html#idm22690-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">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="avltree.html#idm22709-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="identifier">iterator</span> <a class="link" href="avltree.html#idm22728-bb"><span class="identifier">insert_before</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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">void</span> <a class="link" href="avltree.html#idm22745-bb"><span class="identifier">push_back</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">void</span> <a class="link" href="avltree.html#idm22760-bb"><span class="identifier">push_front</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">iterator</span> <a class="link" href="avltree.html#idm22775-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="identifier">iterator</span> <a class="link" href="avltree.html#idm22779-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="avltree.html#idm22785-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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">size_type</span> <a class="link" href="avltree.html#idm45971718879216-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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">size_type</span> <a class="link" href="avltree.html#idm22789-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">KeyTypeKeyCompare</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="identifier">iterator</span> <a class="link" href="avltree.html#idm45971718869120-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="identifier">iterator</span> <a class="link" href="avltree.html#idm22813-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="identifier">iterator</span> <a class="link" href="avltree.html#idm45971718861216-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="identifier">iterator</span> <a class="link" href="avltree.html#idm22821-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="avltree.html#idm45971718852560-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="avltree.html#idm22831-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> KeyTypeKeyCompare<span class="special">,</span> <span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="identifier">size_type</span> <a class="link" href="avltree.html#idm45971718844032-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">KeyTypeKeyCompare</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="avltree.html#idm45971718831808-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="avltree.html#idm45971718826944-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="avltree.html#idm45971718820640-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="identifier">size_type</span> <a class="link" href="avltree.html#idm22839-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">KeyTypeKeyCompare</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="../container/slist.html#idm22868-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="avltree.html#idm22879-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="avltree.html#idm22893-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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">size_type</span> <a class="link" href="avltree.html#idm45971718815568-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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="avltree.html#idm45971718806512-bb"><span class="identifier">lower_bound</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="avltree.html#idm22897-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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="avltree.html#idm22918-bb"><span class="identifier">lower_bound</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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a class="link" href="avltree.html#idm45971718801760-bb"><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> - <span class="identifier">const_iterator</span> <a class="link" href="avltree.html#idm45971718794912-bb"><span class="identifier">lower_bound</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="avltree.html#idm22922-bb"><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">const_iterator</span> <a class="link" href="avltree.html#idm22931-bb"><span class="identifier">lower_bound</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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">const_iterator</span> <a class="link" href="avltree.html#idm45971718789888-bb"><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="avltree.html#idm45971718782768-bb"><span class="identifier">upper_bound</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="avltree.html#idm22935-bb"><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="avltree.html#idm22944-bb"><span class="identifier">upper_bound</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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a class="link" href="avltree.html#idm45971718778016-bb"><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> - <span class="identifier">const_iterator</span> <a class="link" href="avltree.html#idm45971718769312-bb"><span class="identifier">upper_bound</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="avltree.html#idm22948-bb"><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">const_iterator</span> <a class="link" href="avltree.html#idm22969-bb"><span class="identifier">upper_bound</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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">const_iterator</span> <a class="link" href="avltree.html#idm45971718764288-bb"><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="avltree.html#idm45971718755312-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">const_iterator</span> <a class="link" href="avltree.html#idm22973-bb"><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="avltree.html#idm22994-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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a class="link" href="avltree.html#idm45971718750576-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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> - <span class="identifier">const_iterator</span> <a class="link" href="avltree.html#idm45971718741840-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="avltree.html#idm22998-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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">const_iterator</span> <a class="link" href="../container/slist.html#idm23019-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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">const_iterator</span> <a class="link" href="avltree.html#idm45971718736832-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">KeyTypeKeyCompare</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="avltree.html#idm45971718727824-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="avltree.html#idm23023-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">KeyTypeKeyCompare</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="avltree.html#idm23044-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> KeyTypeKeyCompare<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="avltree.html#idm45971718722992-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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="avltree.html#idm23048-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">KeyTypeKeyCompare</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="avltree.html#idm45971718714160-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="avltree.html#idm23069-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> KeyTypeKeyCompare<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="avltree.html#idm45971718709040-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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <a class="link" href="avltree.html#idm23073-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">KeyTypeKeyCompare</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="avltree.html#idm45971718699920-bb"><span class="identifier">bounded_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="identifier">key_type</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="../container/slist.html#idm23094-bb"><span class="identifier">bounded_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="identifier">key_type</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</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> KeyTypeKeyCompare<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="avltree.html#idm45971718687488-bb"><span class="identifier">bounded_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="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> + <a class="link" href="avltree.html#idm23104-bb"><span class="identifier">bounded_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="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</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="avltree.html#idm45971718670688-bb"><span class="identifier">bounded_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="identifier">key_type</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <a class="link" href="avltree.html#idm23146-bb"><span class="identifier">bounded_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="identifier">key_type</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</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> KeyTypeKeyCompare<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="avltree.html#idm45971718657968-bb"><span class="identifier">bounded_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="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> + <a class="link" href="avltree.html#idm23156-bb"><span class="identifier">bounded_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="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="avltree.html#idm45971718640880-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="avltree.html#idm45971718635392-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">pointer</span> <a class="link" href="avltree.html#idm45971718629904-bb"><span class="identifier">unlink_leftmost_without_rebalance</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="avltree.html#idm45971718624992-bb"><span class="identifier">replace_node</span></a><span class="special">(</span><span class="identifier">iterator</span><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">void</span> <a class="link" href="avltree.html#idm45971718617728-bb"><span class="identifier">remove_node</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">iterator</span> <a class="link" href="avltree.html#idm23198-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="avltree.html#idm23202-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">pointer</span> <a class="link" href="avltree.html#idm23206-bb"><span class="identifier">unlink_leftmost_without_rebalance</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="avltree.html#idm23217-bb"><span class="identifier">replace_node</span></a><span class="special">(</span><span class="identifier">iterator</span><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">void</span> <a class="link" href="avltree.html#idm23234-bb"><span class="identifier">remove_node</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">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> Options2<span class="special">></span> - <span class="keyword">void</span> <a class="link" href="avltree.html#idm45971718611888-bb"><span class="identifier">merge_unique</span></a><span class="special">(</span><a class="link" href="avltree.html" title="Class template avltree">avltree</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="avltree.html#idm23248-bb"><span class="identifier">merge_unique</span></a><span class="special">(</span><a class="link" href="avltree.html" title="Class template avltree">avltree</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</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> T<span class="special">,</span> <span class="keyword">class</span> <span class="special">...</span> Options2<span class="special">></span> - <span class="keyword">void</span> <a class="link" href="avltree.html#idm45971718603376-bb"><span class="identifier">merge_equal</span></a><span class="special">(</span><a class="link" href="avltree.html" title="Class template avltree">avltree</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="avltree.html#idm23257-bb"><span class="identifier">merge_equal</span></a><span class="special">(</span><a class="link" href="avltree.html" title="Class template avltree">avltree</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> - <span class="comment">// <a class="link" href="avltree.html#idm45971718566400-bb">public static functions</a></span> - <span class="keyword">static</span> <a class="link" href="avltree.html" title="Class template avltree">avltree</a> <span class="special">&</span> <a class="link" href="avltree.html#idm45971718565840-bb"><span class="identifier">container_from_end_iterator</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="avltree.html" title="Class template avltree">avltree</a> <span class="special">&</span> <a class="link" href="avltree.html#idm45971718559824-bb"><span class="identifier">container_from_end_iterator</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">static</span> <a class="link" href="avltree.html" title="Class template avltree">avltree</a> <span class="special">&</span> <a class="link" href="avltree.html#idm45971718553648-bb"><span class="identifier">container_from_iterator</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="avltree.html" title="Class template avltree">avltree</a> <span class="special">&</span> <a class="link" href="avltree.html#idm45971718547680-bb"><span class="identifier">container_from_iterator</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">static</span> <span class="identifier">iterator</span> <a class="link" href="avltree.html#idm45971718541552-bb"><span class="identifier">s_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_iterator</span> <a class="link" href="avltree.html#idm45971718534464-bb"><span class="identifier">s_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="keyword">void</span> <a class="link" href="avltree.html#idm45971718527376-bb"><span class="identifier">init_node</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="comment">// <a class="link" href="avltree.html#idm23324-bb">public static functions</a></span> + <span class="keyword">static</span> <a class="link" href="avltree.html" title="Class template avltree">avltree</a> <span class="special">&</span> <a class="link" href="avltree.html#idm23325-bb"><span class="identifier">container_from_end_iterator</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="avltree.html" title="Class template avltree">avltree</a> <span class="special">&</span> <a class="link" href="avltree.html#idm23330-bb"><span class="identifier">container_from_end_iterator</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">static</span> <a class="link" href="avltree.html" title="Class template avltree">avltree</a> <span class="special">&</span> <a class="link" href="avltree.html#idm23335-bb"><span class="identifier">container_from_iterator</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="avltree.html" title="Class template avltree">avltree</a> <span class="special">&</span> <a class="link" href="avltree.html#idm23340-bb"><span class="identifier">container_from_iterator</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">static</span> <span class="identifier">iterator</span> <a class="link" href="avltree.html#idm23345-bb"><span class="identifier">s_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_iterator</span> <a class="link" href="avltree.html#idm23349-bb"><span class="identifier">s_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="keyword">void</span> <a class="link" href="avltree.html#idm23353-bb"><span class="identifier">init_node</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="comment">// public data members</span> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">bool</span> <span class="identifier">constant_time_size</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.5.3.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.5.3.4"></a><h2>Description</h2> <p>The class template avltree is an intrusive AVL tree container, that is used to construct intrusive <a class="link" href="avl_set.html" title="Class template avl_set">avl_set</a> and <a class="link" href="avl_multiset.html" title="Class template avl_multiset">avl_multiset</a> containers. The no-throw guarantee holds only, if the key_compare object doesn't throw.</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> <p>The container supports the following options: <code class="computeroutput">base_hook<>/member_hook<>/value_traits<></code>, <code class="computeroutput">constant_time_size<></code>, <code class="computeroutput">size_type<></code> and <code class="computeroutput">compare<></code>. </p> <div class="refsect2"> -<a name="id-1.3.20.42.5.3.4.5"></a><h3> +<a name="id-1.3.18.42.5.3.4.5"></a><h3> <a name="boost.intrusive.avltreeconstruct-copy-destruct"></a><code class="computeroutput">avltree</code> public construct/copy/destruct</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> <li class="listitem"> -<pre class="literallayout"><a name="idm45971718594848-bb"></a><span class="identifier">avltree</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm23266-bb"></a><span class="identifier">avltree</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Constructs an empty container.</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 constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor of the key_compare object throws. Basic guarantee. </p> +<p><span class="bold"><strong>Throws</strong></span>: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor of the key_compare object throws. Basic guarantee. </p> </li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">explicit</span> <a name="idm45971718591696-bb"></a><span class="identifier">avltree</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> cmp<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> -<p><span class="bold"><strong>Effects</strong></span>: Constructs an empty container with given comparison and traits.</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 constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor of the key_compare object throws. Basic guarantee. </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> - <a name="idm45971718586576-bb"></a><span class="identifier">avltree</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> +<li class="listitem"><pre class="literallayout"><span class="keyword">explicit</span> <a name="idm23274-bb"></a><span class="identifier">avltree</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> cmp<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></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="idm23280-bb"></a><span class="identifier">avltree</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> <span class="identifier">key_compare</span> <span class="special">&</span> cmp <span class="special">=</span> <span class="identifier">key_compare</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> -<p><span class="bold"><strong>Requires</strong></span>: Dereferencing iterator must yield an lvalue of type value_type. cmp must be a comparison function that induces a strict weak ordering.</p> -<p><span class="bold"><strong>Effects</strong></span>: Constructs an empty container and inserts elements from [b, e).</p> -<p><span class="bold"><strong>Complexity</strong></span>: Linear in N if [b, e) is already sorted using comp and otherwise N * log N, where N is the distance between first and last.</p> -<p><span class="bold"><strong>Throws</strong></span>: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor/operator() of the key_compare object throws. Basic guarantee. </p> -</li> + <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></li> <li class="listitem"> -<pre class="literallayout"><a name="idm45971718577424-bb"></a><span class="identifier">avltree</span><span class="special">(</span><a class="link" href="avltree.html" title="Class template avltree">avltree</a> <span class="special">&&</span> x<span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm23295-bb"></a><span class="identifier">avltree</span><span class="special">(</span><a class="link" href="avltree.html" title="Class template avltree">avltree</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 comparison object and value traits are move constructed and nodes belonging to x (except the node representing the "end") 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 the comparison objet throws. </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 the comparison objet throws. </p> </li> <li class="listitem"> -<pre class="literallayout"><a class="link" href="avltree.html" title="Class template avltree">avltree</a> <span class="special">&</span> <a name="idm45971718573120-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><a class="link" href="avltree.html" title="Class template avltree">avltree</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> +<pre class="literallayout"><a class="link" href="avltree.html" title="Class template avltree">avltree</a> <span class="special">&</span> <a name="idm23306-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><a class="link" href="avltree.html" title="Class template avltree">avltree</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="idm45971718570304-bb"></a><span class="special">~</span><span class="identifier">avltree</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm23315-bb"></a><span class="special">~</span><span class="identifier">avltree</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 set are not deleted (i.e. no destructors are called), but the nodes according to the <code class="computeroutput"><a class="link" href="value_traits.html" title="Struct template value_traits">value_traits</a></code> template parameter are reinitialized and thus can be reused.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to elements contained in *this.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> </ol></div> </div> <div class="refsect2"> -<a name="id-1.3.20.42.5.3.4.6"></a><h3> -<a name="idm45971719101584-bb"></a><code class="computeroutput">avltree</code> public member functions</h3> +<a name="id-1.3.18.42.5.3.4.6"></a><h3> +<a name="idm22383-bb"></a><code class="computeroutput">avltree</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="idm45971719101024-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="idm22384-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971719097184-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="idm22393-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971719093344-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="idm22402-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971719089504-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="idm22411-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971719085664-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="idm22420-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971719081824-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="idm22429-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">reverse_iterator</span> <a name="idm45971719077984-bb"></a><span class="identifier">rbegin</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">reverse_iterator</span> <a name="idm22438-bb"></a><span class="identifier">rbegin</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 a reverse_iterator pointing to the beginning of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45971719074128-bb"></a><span class="identifier">rbegin</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_reverse_iterator</span> <a name="idm22447-bb"></a><span class="identifier">rbegin</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_reverse_iterator pointing to the beginning of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45971719070272-bb"></a><span class="identifier">crbegin</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_reverse_iterator</span> <a name="idm22456-bb"></a><span class="identifier">crbegin</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_reverse_iterator pointing to the beginning of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">reverse_iterator</span> <a name="idm45971719066416-bb"></a><span class="identifier">rend</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">reverse_iterator</span> <a name="idm22465-bb"></a><span class="identifier">rend</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 a reverse_iterator pointing to the end of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45971719062560-bb"></a><span class="identifier">rend</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_reverse_iterator</span> <a name="idm22474-bb"></a><span class="identifier">rend</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_reverse_iterator pointing to the end of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45971719058704-bb"></a><span class="identifier">crend</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_reverse_iterator</span> <a name="idm22483-bb"></a><span class="identifier">crend</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_reverse_iterator pointing to the end of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971719054848-bb"></a><span class="identifier">root</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="idm22492-bb"></a><span class="identifier">root</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 a iterator pointing to the root node of the container or end() if not present.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971719050976-bb"></a><span class="identifier">root</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="idm22501-bb"></a><span class="identifier">root</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 root node of the container or cend() if not present.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971719047104-bb"></a><span class="identifier">croot</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="idm22510-bb"></a><span class="identifier">croot</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 root node of the container or cend() if not present.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">key_compare</span> <a name="idm45971719043232-bb"></a><span class="identifier">key_comp</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_compare</span> <a name="idm22519-bb"></a><span class="identifier">key_comp</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_compare object used by the container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: If key_compare copy-constructor throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If key_compare copy-constructor throws. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">value_compare</span> <a name="idm45971719039376-bb"></a><span class="identifier">value_comp</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">value_compare</span> <a name="idm22528-bb"></a><span class="identifier">value_comp</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 value_compare object used by the container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: If value_compare copy-constructor throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If value_compare copy-constructor throws. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">bool</span> <a name="idm45971719035504-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="idm22537-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>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971719031680-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="idm22546-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to elements contained in *this if constant-time size option is disabled. Constant time otherwise.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971719027744-bb"></a><span class="identifier">swap</span><span class="special">(</span><a class="link" href="avltree.html" title="Class template avltree">avltree</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="idm22555-bb"></a><span class="identifier">swap</span><span class="special">(</span><a class="link" href="avltree.html" title="Class template avltree">avltree</a> <span class="special">&</span> other<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Swaps the contents of two containers.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comparison functor's swap call throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If the comparison functor's swap call throws. </p> </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="idm45971719023200-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="avltree.html" title="Class template avltree">avltree</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="idm22567-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="avltree.html" title="Class template avltree">avltree</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 equivalent to the original nodes.</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. Copies the predicate from the source container.</p> <p>If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to erased plus inserted elements.</p> -<p><span class="bold"><strong>Throws</strong></span>: If cloner throws or predicate copy assignment throws. Basic guarantee. </p> +<p><span class="bold"><strong>Throws</strong></span>: If cloner throws or predicate copy assignment throws. Basic guarantee. </p> </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="idm45971719014144-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><a class="link" href="avltree.html" title="Class template avltree">avltree</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="idm22589-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><a class="link" href="avltree.html" title="Class template avltree">avltree</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 equivalent to the original nodes.</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. Copies the predicate from the source container.</p> <p>If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to erased plus inserted elements.</p> <p><span class="bold"><strong>Throws</strong></span>: If cloner throws or predicate copy assignment throws. Basic guarantee.</p> -<p><span class="bold"><strong>Note</strong></span>: This version can modify the source container, useful to implement move semantics. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971719004336-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 value into the container before the upper bound.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Average complexity for insert element is at most logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the internal key_compare ordering function throws. Strong guarantee.</p> -<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">iterator</span> <a name="idm45971718998176-bb"></a><span class="identifier">insert_equal</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<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, and "hint" must be a valid iterator.</p> -<p><span class="bold"><strong>Effects</strong></span>: Inserts x into the container, using "hint" as a hint to where it will be inserted. If "hint" is the upper_bound the insertion takes constant time (two comparisons in the worst case)</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic in general, but it is amortized constant time if t is inserted immediately before hint.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the internal key_compare ordering function throws. Strong guarantee.</p> -<p><span class="bold"><strong>Note</strong></span>: Does not affect the validity of iterators and references. No copy-constructors are called. </p> +<p><span class="bold"><strong>Note</strong></span>: This version can modify the source container, useful to implement move semantics. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm22613-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm22617-bb"></a><span class="identifier">insert_equal</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<span class="special">,</span> <span class="identifier">reference</span> value<span class="special">)</span><span class="special">;</span></pre></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="idm45971718991152-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="idm22623-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>: Inserts a each element of a range into the container before the upper bound of the key of each element.</p> <p><span class="bold"><strong>Complexity</strong></span>: Insert range is in general O(N * log(N)), where N is the size of the range. However, it is linear in N if the range is already sorted by value_comp().</p> <p><span class="bold"><strong>Throws</strong></span>: If the comparison functor call throws.</p> -<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="idm45971718983312-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>: Inserts value into the container if the value is not already present.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Average complexity for insert element is at most logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comparison functor call throws.</p> -<p><span class="bold"><strong>Note</strong></span>: Does not affect the validity of iterators and references. No copy-constructors are called. </p> +<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">iterator</span> <a name="idm45971718977168-bb"></a><span class="identifier">insert_unique</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<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, and "hint" must be a valid iterator</p> -<p><span class="bold"><strong>Effects</strong></span>: Tries to insert x into the container, using "hint" as a hint to where it will be inserted.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic in general, but it is amortized constant time (two comparisons in the worst case) if t is inserted immediately before hint.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comparison functor call throws.</p> -<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> KeyType<span class="special">,</span> <span class="keyword">typename</span> KeyTypeKeyCompare<span class="special">></span> +<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="idm22642-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm22646-bb"></a><span class="identifier">insert_unique</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<span class="special">,</span> <span class="identifier">reference</span> value<span class="special">)</span><span class="special">;</span></pre></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> KeyTypeKeyCompare<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="idm45971718970208-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">KeyTypeKeyCompare</span> comp<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>: comp must be a comparison function that induces the same strict weak ordering as key_compare. The difference is that comp compares an arbitrary key with the contained values.</p> -<p><span class="bold"><strong>Effects</strong></span>: Checks if a value can be inserted in the container, 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 complexity is at most logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comp ordering function throws. Strong guarantee.</p> -<p><span class="bold"><strong>Notes</strong></span>: This function is used to improve performance when constructing a value_type is expensive: if there is an equivalent value the constructed object must be discarded. Many times, the part of the node that is used to impose the order is much cheaper to construct than the value_type and this function offers the possibility to use that part to check if the insertion will be successful.</p> -<p>If the check is successful, the user can construct the value_type and use "insert_commit" to insert the object in constant-time. This gives a total logarithmic complexity to the insertion: check(O(log(N)) + commit(O(1)).</p> -<p>"commit_data" remains valid for a subsequent "insert_commit" only if no more objects are inserted or erased from the container. </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> KeyTypeKeyCompare<span class="special">></span> + <a name="idm22652-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">KeyTypeKeyCompare</span> comp<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></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> KeyTypeKeyCompare<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="idm45971718958800-bb"></a><span class="identifier">insert_unique_check</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> key<span class="special">,</span> + <a name="idm22663-bb"></a><span class="identifier">insert_unique_check</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<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">KeyTypeKeyCompare</span> comp<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>: comp must be a comparison function that induces the same strict weak ordering as key_compare. The difference is that comp compares an arbitrary key with the contained values.</p> -<p><span class="bold"><strong>Effects</strong></span>: Checks if a value can be inserted in the container, using a user provided key instead of the value itself, using "hint" as a hint to where it will be inserted.</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>: Logarithmic in general, but it's amortized constant time if t is inserted immediately before hint.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comp ordering function throws. Strong guarantee.</p> -<p><span class="bold"><strong>Notes</strong></span>: This function is used to improve performance when constructing a value_type is expensive: if there is an equivalent value the constructed object must be discarded. Many times, the part of the constructing that is used to impose the order is much cheaper to construct than the value_type and this function offers the possibility to use that key to check if the insertion will be successful.</p> -<p>If the check is successful, the user can construct the value_type and use "insert_commit" to insert the object in constant-time. This can give a total constant-time complexity to the insertion: check(O(1)) + commit(O(1)).</p> -<p>"commit_data" remains valid for a subsequent "insert_commit" only if no more objects are inserted or erased from the container. </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="idm45971718946608-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 container, 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 complexity is at most logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comp ordering function throws. Strong guarantee. </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="idm45971718940416-bb"></a><span class="identifier">insert_unique_check</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<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 container, using a user provided key instead of the value itself, using "hint" as a hint to where it will be inserted.</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>: Logarithmic in general, but it's amortized constant time if t is inserted immediately before hint.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comp ordering function throws. Strong guarantee. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971718933440-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="identifier">insert_commit_data</span> <span class="special">&</span> commit_data<span class="special">)</span><span class="special">;</span></pre></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="idm22676-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></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="idm22682-bb"></a><span class="identifier">insert_unique_check</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<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></li> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm22690-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 container 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 container using the information obtained from the "commit_data" that a previous "insert_check" filled.</p> <p><span class="bold"><strong>Returns</strong></span>: An iterator to the newly inserted object.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Notes</strong></span>: This function has only sense if a "insert_check" has been previously executed to fill "commit_data". No value should be inserted or erased between the "insert_check" and "insert_commit" calls. </p> +<p><span class="bold"><strong>Notes</strong></span>: This function has only sense if a "insert_check" has been previously executed to fill "commit_data". No value should be inserted or erased between the "insert_check" and "insert_commit" calls. </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="idm45971718925136-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="idm22709-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>: Tries to insert each element of a range into the container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Insert range is in general O(N * log(N)), where N is the size of the range. However, it is linear in N if the range is already sorted by value_comp().</p> <p><span class="bold"><strong>Throws</strong></span>: If the comparison functor call throws.</p> -<p><span class="bold"><strong>Note</strong></span>: Does not affect the validity of iterators and references. No copy-constructors are called. </p> +<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">iterator</span> <a name="idm45971718917344-bb"></a><span class="identifier">insert_before</span><span class="special">(</span><span class="identifier">const_iterator</span> pos<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="idm22728-bb"></a><span class="identifier">insert_before</span><span class="special">(</span><span class="identifier">const_iterator</span> pos<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, "pos" must be a valid iterator (or end) and must be the succesor of value once inserted according to the predicate</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts x into the container before "pos".</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if "pos" is not the successor of "value" container ordering invariant will be broken. This is a low-level function to be used only for performance reasons by advanced users. </p> +<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if "pos" is not the successor of "value" container ordering invariant will be broken. This is a low-level function to be used only for performance reasons by advanced users. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971718910112-bb"></a><span class="identifier">push_back</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">void</span> <a name="idm22745-bb"></a><span class="identifier">push_back</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 it must be no less than the greatest inserted key</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts x into the container in the last position.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if value is less than the greatest inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users. </p> +<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if value is less than the greatest inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971718903552-bb"></a><span class="identifier">push_front</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">void</span> <a name="idm22760-bb"></a><span class="identifier">push_front</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 it must be no greater than the minimum inserted key</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts x into the container in the first position.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if value is greater than the minimum inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971718896992-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 complexity for erase element is constant time.</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">iterator</span> <a name="idm45971718891504-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 complexity for erase range is at most O(log(size() + N)), where N is the number of elements in the range.</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="idm45971718885264-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>: O(log(size() + N).</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> +<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if value is greater than the minimum inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm22775-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm22779-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">size_type</span> <a name="idm22785-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></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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971718879216-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <span class="identifier">size_type</span> <a name="idm22789-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Erases all the elements with the given key. according to the comparison functor "comp".</p> <p><span class="bold"><strong>Returns</strong></span>: The number of erased elements.</p> <p><span class="bold"><strong>Complexity</strong></span>: O(log(size() + N).</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="identifier">iterator</span> <a name="idm45971718869120-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 complexity for erase element is constant time.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<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">template</span><span class="special"><</span><span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="identifier">iterator</span> <a name="idm45971718861216-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> -<p><span class="bold"><strong>Complexity</strong></span>: Average complexity for erase range is at most O(log(size() + N)), where N is the number of elements in the range.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<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">template</span><span class="special"><</span><span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971718852560-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> -<p><span class="bold"><strong>Complexity</strong></span>: O(log(size() + N).</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> +<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="identifier">iterator</span> <a name="idm22813-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></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">iterator</span> <a name="idm22821-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></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="idm22831-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></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> KeyTypeKeyCompare<span class="special">,</span> <span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971718844032-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">KeyTypeKeyCompare</span> comp<span class="special">,</span> + <span class="identifier">size_type</span> <a name="idm22839-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">KeyTypeKeyCompare</span> comp<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>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk) and nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Requires</strong></span>: Disposer::operator()(pointer) shouldn't throw.</p> @@ -589,168 +478,102 @@ <p><span class="bold"><strong>Returns</strong></span>: The number of erased elements.</p> <p><span class="bold"><strong>Complexity</strong></span>: O(log(size() + N).</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: Invalidates the iterators to the erased elements. </p> +<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="idm45971718831808-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="idm22868-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> +<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="idm45971718826944-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="idm22879-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>Effects</strong></span>: Erases all of the elements calling disposer(p) for each node to be erased. <span class="bold"><strong>Complexity</strong></span>: Average complexity for is at most O(log(size() + N)), where N is the number of elements in the container.</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. Calls N times to disposer functor. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">size_type</span> <a name="idm45971718820640-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>: Logarithmic to the number of elements contained plus lineal to number of objects with the given value.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Note</strong></span>: Invalidates the iterators (but not the references) to the erased elements. Calls N times to disposer functor. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">size_type</span> <a name="idm22893-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></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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971718815568-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> + <span class="identifier">size_type</span> <a name="idm22897-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns the number of contained elements with the given key</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic to the number of elements contained plus lineal to number of objects with the given key.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971718806512-bb"></a><span class="identifier">lower_bound</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 an iterator to the first element whose key is not less than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> 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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a name="idm45971718801760-bb"></a><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Effects</strong></span>: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971718794912-bb"></a><span class="identifier">lower_bound</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 an iterator to the first element whose key is not less than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> 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> KeyTypeKeyCompare<span class="special">></span> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm22918-bb"></a><span class="identifier">lower_bound</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></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> KeyTypeKeyCompare<span class="special">></span> + <span class="identifier">iterator</span> <a name="idm22922-bb"></a><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm22931-bb"></a><span class="identifier">lower_bound</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></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> KeyTypeKeyCompare<span class="special">></span> <span class="identifier">const_iterator</span> - <a name="idm45971718789888-bb"></a><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Effects</strong></span>: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971718782768-bb"></a><span class="identifier">upper_bound</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 an iterator to the first element whose key is greater than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> -</li> + <a name="idm22935-bb"></a><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm22944-bb"></a><span class="identifier">upper_bound</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></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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a name="idm45971718778016-bb"></a><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <span class="identifier">iterator</span> <a name="idm22948-bb"></a><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns an iterator to the first element whose key is greater than k according to comp or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971718769312-bb"></a><span class="identifier">upper_bound</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 an iterator to the first element whose key is greater than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm22969-bb"></a><span class="identifier">upper_bound</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></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> KeyTypeKeyCompare<span class="special">></span> <span class="identifier">const_iterator</span> - <a name="idm45971718764288-bb"></a><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> + <a name="idm22973-bb"></a><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns an iterator to the first element whose key is greater than k according to comp or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971718755312-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 whose key is k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm22994-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></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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a name="idm45971718750576-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <span class="identifier">iterator</span> <a name="idm22998-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Finds an iterator to the first element whose key is k or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971718741840-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 an iterator to the first element whose key is k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm23019-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></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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">const_iterator</span> <a name="idm45971718736832-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> + <span class="identifier">const_iterator</span> <a name="idm23023-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Finds an iterator to the first element whose key is k or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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="idm45971718727824-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>: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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="idm23044-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></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> KeyTypeKeyCompare<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="idm45971718722992-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <a name="idm23048-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">></span> -<a name="idm45971718714160-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>: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">></span> +<a name="idm23069-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></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> KeyTypeKeyCompare<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="idm45971718709040-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> + <a name="idm23073-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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="idm45971718699920-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> lower<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> upper_key<span class="special">,</span> - <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: <code class="computeroutput">upper_key</code> shall not precede <code class="computeroutput">lower_key</code> according to key_compare. [key_comp()(upper_key, lower_key) shall be false]</p> -<p>If <code class="computeroutput">lower_key</code> is equivalent to <code class="computeroutput">upper_key</code> [!key_comp()(upper_key, lower_key) && !key_comp()(lower_key, upper_key)] then ('left_closed' || 'right_closed') must be false.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns an a pair with the following criteria:</p> -<p>first = lower_bound(lower_key) if left_closed, upper_bound(lower_key) otherwise</p> -<p>second = upper_bound(upper_key) if right_closed, lower_bound(upper_key) otherwise</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws.</p> -<p><span class="bold"><strong>Note</strong></span>: This function can be more efficient than calling upper_bound and lower_bound for lower_value and upper_value.</p> -<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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="idm23094-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> lower<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> upper_key<span class="special">,</span> + <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span><span class="special">;</span></pre></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> KeyTypeKeyCompare<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="idm45971718687488-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> + <a name="idm23104-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span> comp<span class="special">,</span> <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: <code class="computeroutput">lower_key</code> is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, lower_key) if left_closed is true, with respect to !comp(lower_key, nk) otherwise.</p> <p><code class="computeroutput">upper_key</code> is a value such that <code class="computeroutput">*this</code> is partitioned with respect to !comp(upper_key, nk) if right_closed is true, with respect to comp(nk, upper_key) otherwise.</p> @@ -762,26 +585,15 @@ <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> <p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws.</p> <p><span class="bold"><strong>Note</strong></span>: This function can be more efficient than calling upper_bound and lower_bound for lower_key and upper_key.</p> -<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </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">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">></span> -<a name="idm45971718670688-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> upper_key<span class="special">,</span> - <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: <code class="computeroutput">upper_key</code> shall not precede <code class="computeroutput">lower_key</code> according to key_compare. [key_comp()(upper_key, lower_key) shall be false]</p> -<p>If <code class="computeroutput">lower_key</code> is equivalent to <code class="computeroutput">upper_key</code> [!key_comp()(upper_key, lower_key) && !key_comp()(lower_key, upper_key)] then ('left_closed' || 'right_closed') must be false.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns an a pair with the following criteria:</p> -<p>first = lower_bound(lower_key) if left_closed, upper_bound(lower_key) otherwise</p> -<p>second = upper_bound(upper_key) if right_closed, lower_bound(upper_key) otherwise</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws.</p> -<p><span class="bold"><strong>Note</strong></span>: This function can be more efficient than calling upper_bound and lower_bound for lower_value and upper_value.</p> -<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </p> +<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </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">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">></span> +<a name="idm23146-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> upper_key<span class="special">,</span> + <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></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> KeyTypeKeyCompare<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="idm45971718657968-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> + <a name="idm23156-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span> comp<span class="special">,</span> <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: <code class="computeroutput">lower_key</code> is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, lower_key) if left_closed is true, with respect to !comp(lower_key, nk) otherwise.</p> <p><code class="computeroutput">upper_key</code> is a value such that <code class="computeroutput">*this</code> is partitioned with respect to !comp(upper_key, nk) if right_closed is true, with respect to comp(nk, upper_key) otherwise.</p> @@ -793,134 +605,60 @@ <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> <p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws.</p> <p><span class="bold"><strong>Note</strong></span>: This function can be more efficient than calling upper_bound and lower_bound for lower_key and upper_key.</p> -<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971718640880-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 set of appropriate type. Otherwise the behavior is undefined.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns: a valid iterator i belonging to the set 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> +<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm23198-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm23202-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></li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971718635392-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 set of appropriate type. Otherwise the behavior is undefined.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns: a valid const_iterator i belonging to the set 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">pointer</span> <a name="idm45971718629904-bb"></a><span class="identifier">unlink_leftmost_without_rebalance</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">pointer</span> <a name="idm23206-bb"></a><span class="identifier">unlink_leftmost_without_rebalance</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>: Unlinks the leftmost node from the container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Average complexity is constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Notes</strong></span>: This function breaks the container and the container can only be used for more unlink_leftmost_without_rebalance calls. This function is normally used to achieve a step by step controlled destruction of the container. </p> +<p><span class="bold"><strong>Notes</strong></span>: This function breaks the container and the container can only be used for more unlink_leftmost_without_rebalance calls. This function is normally used to achieve a step by step controlled destruction of the container. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971718624992-bb"></a><span class="identifier">replace_node</span><span class="special">(</span><span class="identifier">iterator</span> replace_this<span class="special">,</span> <span class="identifier">reference</span> with_this<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">void</span> <a name="idm23217-bb"></a><span class="identifier">replace_node</span><span class="special">(</span><span class="identifier">iterator</span> replace_this<span class="special">,</span> <span class="identifier">reference</span> with_this<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: replace_this must be a valid iterator of *this and with_this must not be inserted in any container.</p> <p><span class="bold"><strong>Effects</strong></span>: Replaces replace_this in its position in the container with with_this. The container does not need to be rebalanced.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: This function will break container ordering invariants if with_this is not equivalent to *replace_this according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing or comparison is needed. </p> +<p><span class="bold"><strong>Note</strong></span>: This function will break container ordering invariants if with_this is not equivalent to *replace_this according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing or comparison is needed. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971718617728-bb"></a><span class="identifier">remove_node</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">void</span> <a name="idm23234-bb"></a><span class="identifier">remove_node</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>Effects</strong></span>: removes "value" from the container.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic time.</p> <p><span class="bold"><strong>Note</strong></span>: This static function is only usable with non-constant time size containers that have stateless comparison functors.</p> -<p>If the user calls this function with a constant time size container or stateful comparison functor a compilation error will be issued. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><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> Options2<span class="special">></span> - <span class="keyword">void</span> <a name="idm45971718611888-bb"></a><span class="identifier">merge_unique</span><span class="special">(</span><a class="link" href="avltree.html" title="Class template avltree">avltree</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: "source" container's Options can only can differ in the comparison function from *this.</p> -<p><span class="bold"><strong>Effects</strong></span>: Attempts to extract each element in source and insert it into a using the comparison object of *this. If there is an element in a with key equivalent to the key of an element from source, then that element is not extracted from source.</p> -<p><span class="bold"><strong>Postcondition</strong></span>: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing unless the comparison object throws.</p> -<p><span class="bold"><strong>Complexity</strong></span>: N log(a.size() + N) (N has the value source.size()) </p> -</li> -<li class="listitem"> -<pre class="literallayout"><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> Options2<span class="special">></span> - <span class="keyword">void</span> <a name="idm45971718603376-bb"></a><span class="identifier">merge_equal</span><span class="special">(</span><a class="link" href="avltree.html" title="Class template avltree">avltree</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: "source" container's Options can only can differ in the comparison function from *this.</p> -<p><span class="bold"><strong>Effects</strong></span>: Extracts each element in source and insert it into a using the comparison object of *this.</p> -<p><span class="bold"><strong>Postcondition</strong></span>: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing unless the comparison object throws.</p> -<p><span class="bold"><strong>Complexity</strong></span>: N log(a.size() + N) (N has the value source.size()) </p> +<p>If the user calls this function with a constant time size container or stateful comparison functor a compilation error will be issued. </p> </li> +<li class="listitem"><pre class="literallayout"><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> Options2<span class="special">></span> + <span class="keyword">void</span> <a name="idm23248-bb"></a><span class="identifier">merge_unique</span><span class="special">(</span><a class="link" href="avltree.html" title="Class template avltree">avltree</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><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> Options2<span class="special">></span> + <span class="keyword">void</span> <a name="idm23257-bb"></a><span class="identifier">merge_equal</span><span class="special">(</span><a class="link" href="avltree.html" title="Class template avltree">avltree</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span></pre></li> </ol></div> </div> <div class="refsect2"> -<a name="id-1.3.20.42.5.3.4.7"></a><h3> -<a name="idm45971718566400-bb"></a><code class="computeroutput">avltree</code> public static functions</h3> +<a name="id-1.3.18.42.5.3.4.7"></a><h3> +<a name="idm23324-bb"></a><code class="computeroutput">avltree</code> public static functions</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <a class="link" href="avltree.html" title="Class template avltree">avltree</a> <span class="special">&</span> <a name="idm45971718565840-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Precondition</strong></span>: end_iterator must be a valid end iterator of the container.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the container associated to the end iterator</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Constant. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="avltree.html" title="Class template avltree">avltree</a> <span class="special">&</span> -<a name="idm45971718559824-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">const_iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Precondition</strong></span>: end_iterator must be a valid end iterator of the container.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the container associated to the end iterator</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Constant. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <a class="link" href="avltree.html" title="Class template avltree">avltree</a> <span class="special">&</span> <a name="idm45971718553648-bb"></a><span class="identifier">container_from_iterator</span><span class="special">(</span><span class="identifier">iterator</span> it<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Precondition</strong></span>: it must be a valid iterator of the container.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the container associated to the iterator</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="avltree.html" title="Class template avltree">avltree</a> <span class="special">&</span> <a name="idm45971718547680-bb"></a><span class="identifier">container_from_iterator</span><span class="special">(</span><span class="identifier">const_iterator</span> it<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Precondition</strong></span>: it must be a valid iterator of the container.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the container associated to the iterator</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="identifier">iterator</span> <a name="idm45971718541552-bb"></a><span class="identifier">s_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 set of appropriate type. Otherwise the behavior is undefined.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns: a valid iterator i belonging to the set 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> -<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">const_iterator</span> <a name="idm45971718534464-bb"></a><span class="identifier">s_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 set of appropriate type. Otherwise the behavior is undefined.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns: a valid iterator i belonging to the set 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> -<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="keyword">void</span> <a name="idm45971718527376-bb"></a><span class="identifier">init_node</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 shall not be in a container.</p> -<p><span class="bold"><strong>Effects</strong></span>: init_node puts the hook of a value in a well-known default state.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> -<p><span class="bold"><strong>Note</strong></span>: This function puts the hook in the well-known default state used by auto_unlink and safe hooks. </p> -</li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <a class="link" href="avltree.html" title="Class template avltree">avltree</a> <span class="special">&</span> <a name="idm23325-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="avltree.html" title="Class template avltree">avltree</a> <span class="special">&</span> +<a name="idm23330-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">const_iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <a class="link" href="avltree.html" title="Class template avltree">avltree</a> <span class="special">&</span> <a name="idm23335-bb"></a><span class="identifier">container_from_iterator</span><span class="special">(</span><span class="identifier">iterator</span> it<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="avltree.html" title="Class template avltree">avltree</a> <span class="special">&</span> <a name="idm23340-bb"></a><span class="identifier">container_from_iterator</span><span class="special">(</span><span class="identifier">const_iterator</span> it<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">iterator</span> <a name="idm23345-bb"></a><span class="identifier">s_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></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">const_iterator</span> <a name="idm23349-bb"></a><span class="identifier">s_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></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm23353-bb"></a><span class="identifier">init_node</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></li> </ol></div> </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="make_avl_set_member_hook.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.avltree_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_avltree.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/avltree_algorithms.html b/doc/html/boost/intrusive/avltree_algorithms.html index bf1ae6e275..6ae7361048 100644 --- a/doc/html/boost/intrusive/avltree_algorithms.html +++ b/doc/html/boost/intrusive/avltree_algorithms.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.avltree_algorithms_hpp" title="Header <boost/intrusive/avltree_algorithms.hpp>"> <link rel="prev" href="make_avltree.html" title="Struct template make_avltree"> <link rel="next" href="bs_multiset.html" title="Class template bs_multiset"> +<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> @@ -29,8 +30,8 @@ <h2><span class="refentrytitle">Class template avltree_algorithms</span></h2> <p>boost::intrusive::avltree_algorithms</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.avltree_algorithms_hpp" title="Header <boost/intrusive/avltree_algorithms.hpp>">boost/intrusive/avltree_algorithms.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.avltree_algorithms_hpp" title="Header <boost/intrusive/avltree_algorithms.hpp>">boost/intrusive/avltree_algorithms.hpp</a>> </span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodeTraits<span class="special">></span> <span class="keyword">class</span> <a class="link" href="avltree_algorithms.html" title="Class template avltree_algorithms">avltree_algorithms</a> <span class="special">{</span> @@ -43,77 +44,75 @@ <span class="keyword">typedef</span> <span class="identifier">NodeTraits</span><span class="special">::</span><span class="identifier">balance</span> <a name="boost.intrusive.avltree_algorithms.balance"></a><span class="identifier">balance</span><span class="special">;</span> <span class="keyword">typedef</span> <span class="identifier">bstree_algo</span><span class="special">::</span><span class="identifier">insert_commit_data</span> <a class="link" href="avltree_algorithms.html#boost.intrusive.avltree_algorithms.insert_commit_data"><span class="identifier">insert_commit_data</span></a><span class="special">;</span> - <span class="comment">// <a class="link" href="avltree_algorithms.html#idm45971718497264-bb">public static functions</a></span> - <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="avltree_algorithms.html#idm45971718496704-bb"><span class="identifier">get_header</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="avltree_algorithms.html#idm45971718491056-bb"><span class="identifier">begin_node</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="avltree_algorithms.html#idm45971718485376-bb"><span class="identifier">end_node</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="avltree_algorithms.html#idm45971718479728-bb"><span class="identifier">swap_tree</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="avltree_algorithms.html#idm45971718473280-bb"><span class="identifier">swap_nodes</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="avltree_algorithms.html#idm45971718465552-bb"><span class="identifier">swap_nodes</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="avltree_algorithms.html#idm45971718456416-bb"><span class="identifier">replace_node</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="avltree_algorithms.html#idm45971718448848-bb"><span class="identifier">replace_node</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="avltree_algorithms.html#idm45971718440576-bb"><span class="identifier">unlink</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="avltree_algorithms.html#idm45971718434896-bb"><span class="identifier">unlink_leftmost_without_rebalance</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">bool</span> <a class="link" href="avltree_algorithms.html#idm45971718428128-bb"><span class="identifier">unique</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a class="link" href="avltree_algorithms.html#idm45971718422416-bb"><span class="identifier">size</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="avltree_algorithms.html#idm45971718416752-bb"><span class="identifier">next_node</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="avltree_algorithms.html#idm45971718411088-bb"><span class="identifier">prev_node</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="avltree_algorithms.html#idm45971718405392-bb"><span class="identifier">init</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="avltree_algorithms.html#idm45971718398848-bb"><span class="identifier">init_header</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="avltree_algorithms.html#idm45971718392272-bb"><span class="identifier">erase</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="comment">// <a class="link" href="avltree_algorithms.html#idm23424-bb">public static functions</a></span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="avltree_algorithms.html#idm23425-bb"><span class="identifier">get_header</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="avltree_algorithms.html#idm23438-bb"><span class="identifier">begin_node</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="avltree_algorithms.html#idm23451-bb"><span class="identifier">end_node</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="avltree_algorithms.html#idm23464-bb"><span class="identifier">swap_tree</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="avltree_algorithms.html#idm23479-bb"><span class="identifier">swap_nodes</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="avltree_algorithms.html#idm23497-bb"><span class="identifier">swap_nodes</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="avltree_algorithms.html#idm23519-bb"><span class="identifier">replace_node</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="avltree_algorithms.html#idm23536-bb"><span class="identifier">replace_node</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="avltree_algorithms.html#idm23555-bb"><span class="identifier">unlink</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="avltree_algorithms.html#idm23568-bb"><span class="identifier">unlink_leftmost_without_rebalance</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">bool</span> <a class="link" href="avltree_algorithms.html#idm23583-bb"><span class="identifier">unique</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a class="link" href="avltree_algorithms.html#idm23596-bb"><span class="identifier">size</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="avltree_algorithms.html#idm23609-bb"><span class="identifier">next_node</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="avltree_algorithms.html#idm23622-bb"><span class="identifier">prev_node</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="avltree_algorithms.html#idm23635-bb"><span class="identifier">init</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="avltree_algorithms.html#idm23650-bb"><span class="identifier">init_header</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="avltree_algorithms.html#idm23665-bb"><span class="identifier">erase</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</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> NodePtrCompare<span class="special">></span> - <span class="keyword">static</span> <span class="keyword">bool</span> <a class="link" href="avltree_algorithms.html#idm45971718385872-bb"><span class="identifier">transfer_unique</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">NodePtrCompare</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">bool</span> <a class="link" href="avltree_algorithms.html#idm23680-bb"><span class="identifier">transfer_unique</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">NodePtrCompare</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span><span class="special">;</span> <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodePtrCompare<span class="special">></span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="avltree_algorithms.html#idm45971718376512-bb"><span class="identifier">transfer_equal</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">NodePtrCompare</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="avltree_algorithms.html#idm23703-bb"><span class="identifier">transfer_equal</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">NodePtrCompare</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</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">static</span> <span class="keyword">void</span> <a class="link" href="avltree_algorithms.html#idm45971718368080-bb"><span class="identifier">clone</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">node_ptr</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">static</span> <span class="keyword">void</span> <a class="link" href="avltree_algorithms.html#idm23724-bb"><span class="identifier">clone</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</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> Disposer<span class="special">></span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="avltree_algorithms.html#idm45971718357056-bb"><span class="identifier">clear_and_dispose</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</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">static</span> <span class="keyword">void</span> <a class="link" href="avltree_algorithms.html#idm23750-bb"><span class="identifier">clear_and_dispose</span></a><span class="special">(</span><span class="identifier">node_ptr</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> KeyType<span class="special">,</span> <span class="keyword">typename</span> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a class="link" href="avltree_algorithms.html#idm45971718349200-bb"><span class="identifier">lower_bound</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span><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">KeyNodePtrCompare</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="avltree_algorithms.html#idm23768-bb"><span class="identifier">lower_bound</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><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">KeyNodePtrCompare</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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a class="link" href="avltree_algorithms.html#idm45971718340736-bb"><span class="identifier">upper_bound</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span><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">KeyNodePtrCompare</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="avltree_algorithms.html#idm23788-bb"><span class="identifier">upper_bound</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><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">KeyNodePtrCompare</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> KeyNodePtrCompare<span class="special">></span> - <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a class="link" href="avltree_algorithms.html#idm45971718332272-bb"><span class="identifier">find</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span><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">KeyNodePtrCompare</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="avltree_algorithms.html#idm23808-bb"><span class="identifier">find</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><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">KeyNodePtrCompare</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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span> <span class="special">></span> - <a class="link" href="avltree_algorithms.html#idm45971718323808-bb"><span class="identifier">equal_range</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span><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">KeyNodePtrCompare</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="avltree_algorithms.html#idm23828-bb"><span class="identifier">equal_range</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><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">KeyNodePtrCompare</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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span> <span class="special">></span> - <a class="link" href="avltree_algorithms.html#idm45971718315216-bb"><span class="identifier">bounded_range</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> + <a class="link" href="avltree_algorithms.html#idm23848-bb"><span class="identifier">bounded_range</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><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">KeyNodePtrCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> - <a class="link" href="avltree_algorithms.html#idm45971718302080-bb"><span class="identifier">count</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span><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">KeyNodePtrCompare</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="avltree_algorithms.html#idm23880-bb"><span class="identifier">count</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><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">KeyNodePtrCompare</span><span class="special">)</span><span class="special">;</span> <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a class="link" href="avltree_algorithms.html#idm45971718293664-bb"><span class="identifier">insert_equal_upper_bound</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">NodePtrCompare</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="avltree_algorithms.html#idm23900-bb"><span class="identifier">insert_equal_upper_bound</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">NodePtrCompare</span><span class="special">)</span><span class="special">;</span> <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a class="link" href="avltree_algorithms.html#idm45971718285776-bb"><span class="identifier">insert_equal_lower_bound</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">NodePtrCompare</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="avltree_algorithms.html#idm23919-bb"><span class="identifier">insert_equal_lower_bound</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">NodePtrCompare</span><span class="special">)</span><span class="special">;</span> <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodePtrCompare<span class="special">></span> - <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="avltree_algorithms.html#idm45971718277888-bb"><span class="identifier">insert_equal</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">NodePtrCompare</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="avltree_algorithms.html#idm45971718269120-bb"><span class="identifier">insert_before</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="avltree_algorithms.html#idm45971718260880-bb"><span class="identifier">push_back</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="avltree_algorithms.html#idm45971718253456-bb"><span class="identifier">push_front</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="avltree_algorithms.html#idm23938-bb"><span class="identifier">insert_equal</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">NodePtrCompare</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="avltree_algorithms.html#idm23959-bb"><span class="identifier">insert_before</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="../container/slist.html#idm23978-bb"><span class="identifier">push_back</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="avltree_algorithms.html#idm23995-bb"><span class="identifier">push_front</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</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> KeyType<span class="special">,</span> <span class="keyword">typename</span> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="keyword">bool</span> <span class="special">></span> - <a class="link" href="avltree_algorithms.html#idm45971718246032-bb"><span class="identifier">insert_unique_check</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span><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">KeyNodePtrCompare</span><span class="special">,</span> <span class="identifier">insert_commit_data</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="avltree_algorithms.html#idm24012-bb"><span class="identifier">insert_unique_check</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><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">KeyNodePtrCompare</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="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> KeyType<span class="special">,</span> <span class="keyword">typename</span> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="keyword">bool</span> <span class="special">></span> - <a class="link" href="avltree_algorithms.html#idm45971718233456-bb"><span class="identifier">insert_unique_check</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span><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">KeyNodePtrCompare</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="keyword">static</span> <span class="keyword">void</span> <a class="link" href="avltree_algorithms.html#idm45971718219888-bb"><span class="identifier">insert_unique_commit</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> + <a class="link" href="avltree_algorithms.html#idm24025-bb"><span class="identifier">insert_unique_check</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><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">KeyNodePtrCompare</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="keyword">static</span> <span class="keyword">void</span> <a class="link" href="avltree_algorithms.html#idm24040-bb"><span class="identifier">insert_unique_commit</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</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">static</span> <span class="keyword">bool</span> <a class="link" href="avltree_algorithms.html#idm45971718211472-bb"><span class="identifier">is_header</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">bool</span> <a class="link" href="avltree_algorithms.html#idm24048-bb"><span class="identifier">is_header</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</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.6.3.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.6.3.4"></a><h2>Description</h2> <p><a class="link" href="avltree_algorithms.html" title="Class template avltree_algorithms">avltree_algorithms</a> is configured with a NodeTraits class, which encapsulates the information about the node to be manipulated. NodeTraits must support the following interface:</p> <p><span class="bold"><strong>Typedefs</strong></span>:</p> <p><code class="computeroutput">node</code>: The type of the node that forms the binary search tree</p> @@ -133,7 +132,7 @@ <p><code class="computeroutput">static balance zero();</code></p> <p><code class="computeroutput">static balance positive();</code> </p> <div class="refsect2"> -<a name="id-1.3.20.42.6.3.4.20"></a><h3> +<a name="id-1.3.18.42.6.3.4.20"></a><h3> <a name="boost.intrusive.avltree_algorithmstypes"></a><code class="computeroutput">avltree_algorithms</code> public types</h3> @@ -144,221 +143,219 @@ </li></ol></div> </div> <div class="refsect2"> -<a name="id-1.3.20.42.6.3.4.21"></a><h3> -<a name="idm45971718497264-bb"></a><code class="computeroutput">avltree_algorithms</code> public static functions</h3> +<a name="id-1.3.18.42.6.3.4.21"></a><h3> +<a name="idm23424-bb"></a><code class="computeroutput">avltree_algorithms</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">node_ptr</span> <a name="idm45971718496704-bb"></a><span class="identifier">get_header</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span> n<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: 'node' is a node of the tree or a header node.</p> +<pre class="literallayout"><span class="keyword">static</span> <span class="identifier">node_ptr</span> <a name="idm23425-bb"></a><span class="identifier">get_header</span><span class="special">(</span><span class="identifier">const_node_ptr</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 a node of the tree or a header node.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns the header of the tree.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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">node_ptr</span> <a name="idm45971718491056-bb"></a><span class="identifier">begin_node</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span> header<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">node_ptr</span> <a name="idm23438-bb"></a><span class="identifier">begin_node</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: 'header' is the header node of a tree.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns the first node of the tree, the header if the tree is empty.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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">node_ptr</span> <a name="idm45971718485376-bb"></a><span class="identifier">end_node</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span> header<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">node_ptr</span> <a name="idm23451-bb"></a><span class="identifier">end_node</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: 'header' is the header node of a tree.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns the header of the tree.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="keyword">void</span> <a name="idm45971718479728-bb"></a><span class="identifier">swap_tree</span><span class="special">(</span><span class="identifier">node_ptr</span> header1<span class="special">,</span> <span class="identifier">node_ptr</span> header2<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm23464-bb"></a><span class="identifier">swap_tree</span><span class="special">(</span><span class="identifier">node_ptr</span> header1<span class="special">,</span> <span class="identifier">node_ptr</span> header2<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: header1 and header2 must be the header nodes of two trees.</p> <p><span class="bold"><strong>Effects</strong></span>: Swaps two trees. After the function header1 will contain links to the second tree and header2 will have links to the first tree.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="keyword">void</span> <a name="idm45971718473280-bb"></a><span class="identifier">swap_nodes</span><span class="special">(</span><span class="identifier">node_ptr</span> node1<span class="special">,</span> <span class="identifier">node_ptr</span> node2<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm23479-bb"></a><span class="identifier">swap_nodes</span><span class="special">(</span><span class="identifier">node_ptr</span> node1<span class="special">,</span> <span class="identifier">node_ptr</span> node2<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: node1 and node2 can't be header nodes of two trees.</p> <p><span class="bold"><strong>Effects</strong></span>: Swaps two nodes. After the function node1 will be inserted in the position node2 before the function. node2 will be inserted in the position node1 had before the function.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Note</strong></span>: This function will break container ordering invariants if node1 and node2 are not equivalent according to the ordering rules.</p> -<p>Experimental function </p> +<p>Experimental function </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971718465552-bb"></a><span class="identifier">swap_nodes</span><span class="special">(</span><span class="identifier">node_ptr</span> node1<span class="special">,</span> <span class="identifier">node_ptr</span> header1<span class="special">,</span> <span class="identifier">node_ptr</span> node2<span class="special">,</span> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm23497-bb"></a><span class="identifier">swap_nodes</span><span class="special">(</span><span class="identifier">node_ptr</span> node1<span class="special">,</span> <span class="identifier">node_ptr</span> header1<span class="special">,</span> <span class="identifier">node_ptr</span> node2<span class="special">,</span> <span class="identifier">node_ptr</span> header2<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: node1 and node2 can't be header nodes of two trees with header header1 and header2.</p> <p><span class="bold"><strong>Effects</strong></span>: Swaps two nodes. After the function node1 will be inserted in the position node2 before the function. node2 will be inserted in the position node1 had before the function.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Note</strong></span>: This function will break container ordering invariants if node1 and node2 are not equivalent according to the ordering rules.</p> -<p>Experimental function </p> +<p>Experimental function </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971718456416-bb"></a><span class="identifier">replace_node</span><span class="special">(</span><span class="identifier">node_ptr</span> node_to_be_replaced<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm23519-bb"></a><span class="identifier">replace_node</span><span class="special">(</span><span class="identifier">node_ptr</span> node_to_be_replaced<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: node_to_be_replaced must be inserted in a tree and new_node must not be inserted in a tree.</p> <p><span class="bold"><strong>Effects</strong></span>: Replaces node_to_be_replaced in its position in the tree with new_node. The tree does not need to be rebalanced</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: This function will break container ordering invariants if new_node is not equivalent to node_to_be_replaced according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing and comparison is needed. Experimental function </p> +<p><span class="bold"><strong>Note</strong></span>: This function will break container ordering invariants if new_node is not equivalent to node_to_be_replaced according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing and comparison is needed. Experimental function </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971718448848-bb"></a><span class="identifier">replace_node</span><span class="special">(</span><span class="identifier">node_ptr</span> node_to_be_replaced<span class="special">,</span> <span class="identifier">node_ptr</span> header<span class="special">,</span> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm23536-bb"></a><span class="identifier">replace_node</span><span class="special">(</span><span class="identifier">node_ptr</span> node_to_be_replaced<span class="special">,</span> <span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: node_to_be_replaced must be inserted in a tree with header "header" and new_node must not be inserted in a tree.</p> <p><span class="bold"><strong>Effects</strong></span>: Replaces node_to_be_replaced in its position in the tree with new_node. The tree does not need to be rebalanced</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: This function will break container ordering invariants if new_node is not equivalent to node_to_be_replaced according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing or comparison is needed. Experimental function </p> +<p><span class="bold"><strong>Note</strong></span>: This function will break container ordering invariants if new_node is not equivalent to node_to_be_replaced according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing or comparison is needed. Experimental function </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971718440576-bb"></a><span class="identifier">unlink</span><span class="special">(</span><span class="identifier">node_ptr</span> node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: node is a tree node but not the header.</p> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm23555-bb"></a><span class="identifier">unlink</span><span class="special">(</span><span class="identifier">node_ptr</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 a tree node but not the header.</p> <p><span class="bold"><strong>Effects</strong></span>: Unlinks the node and rebalances the tree.</p> <p><span class="bold"><strong>Complexity</strong></span>: Average complexity is constant time.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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">node_ptr</span> -<a name="idm45971718434896-bb"></a><span class="identifier">unlink_leftmost_without_rebalance</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span> header<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">node_ptr</span> <a name="idm23568-bb"></a><span class="identifier">unlink_leftmost_without_rebalance</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: header is the header of a tree.</p> <p><span class="bold"><strong>Effects</strong></span>: Unlinks the leftmost node from the tree, and updates the header link to the new leftmost node.</p> <p><span class="bold"><strong>Complexity</strong></span>: Average complexity is constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Notes</strong></span>: This function breaks the tree and the tree can only be used for more unlink_leftmost_without_rebalance calls. This function is normally used to achieve a step by step controlled destruction of the tree. </p> +<p><span class="bold"><strong>Notes</strong></span>: This function breaks the tree and the tree can only be used for more unlink_leftmost_without_rebalance calls. This function is normally used to achieve a step by step controlled destruction of the tree. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">bool</span> <a name="idm45971718428128-bb"></a><span class="identifier">unique</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span> node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: 'node' is a node of the tree or a node initialized by init(...) or init_node.</p> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">bool</span> <a name="idm23583-bb"></a><span class="identifier">unique</span><span class="special">(</span><span class="identifier">const_node_ptr</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 a node of the tree or a node initialized by init(...) or init_node.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns true if the node is initialized by init() or init_node().</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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">std</span><span class="special">::</span><span class="identifier">size_t</span> <a name="idm45971718422416-bb"></a><span class="identifier">size</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span> header<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: node is a node of the tree but it's not the header.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns the number of nodes of the subtree.</p> +<pre class="literallayout"><span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a name="idm23596-bb"></a><span class="identifier">size</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<p><span class="bold"><strong>Requires</strong></span>: 'header' the header of the tree.</p> +<p><span class="bold"><strong>Effects</strong></span>: Returns the number of nodes of the tree.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear time.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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">node_ptr</span> <a name="idm45971718416752-bb"></a><span class="identifier">next_node</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span> node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: 'node' is a node from the tree except the header.</p> +<pre class="literallayout"><span class="keyword">static</span> <span class="identifier">node_ptr</span> <a name="idm23609-bb"></a><span class="identifier">next_node</span><span class="special">(</span><span class="identifier">node_ptr</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 a node from the tree except the header.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns the next node of the tree.</p> <p><span class="bold"><strong>Complexity</strong></span>: Average constant time.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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">node_ptr</span> <a name="idm45971718411088-bb"></a><span class="identifier">prev_node</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span> node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: 'node' is a node from the tree except the leftmost node.</p> +<pre class="literallayout"><span class="keyword">static</span> <span class="identifier">node_ptr</span> <a name="idm23622-bb"></a><span class="identifier">prev_node</span><span class="special">(</span><span class="identifier">node_ptr</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 a node from the tree except the leftmost node.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns the previous node of the tree.</p> <p><span class="bold"><strong>Complexity</strong></span>: Average constant time.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="keyword">void</span> <a name="idm45971718405392-bb"></a><span class="identifier">init</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span> node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: 'node' must not be part of any tree.</p> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm23635-bb"></a><span class="identifier">init</span><span class="special">(</span><span class="identifier">node_ptr</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' must not be part of any tree.</p> <p><span class="bold"><strong>Effects</strong></span>: After the function unique(node) == true.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Nodes</strong></span>: If node is inserted in a tree, this function corrupts the tree. </p> +<p><span class="bold"><strong>Nodes</strong></span>: If node is inserted in a tree, this function corrupts the tree. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971718398848-bb"></a><span class="identifier">init_header</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: node must not be part of any tree.</p> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm23650-bb"></a><span class="identifier">init_header</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<p><span class="bold"><strong>Requires</strong></span>: header must not be part of any tree.</p> <p><span class="bold"><strong>Effects</strong></span>: Initializes the header to represent an empty tree. unique(header) == true.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Nodes</strong></span>: If node is inserted in a tree, this function corrupts the tree. </p> +<p><span class="bold"><strong>Nodes</strong></span>: If header is inserted in a tree, this function corrupts the tree. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="identifier">node_ptr</span> <a name="idm45971718392272-bb"></a><span class="identifier">erase</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> z<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">node_ptr</span> <a name="idm23665-bb"></a><span class="identifier">erase</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> z<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: header must be the header of a tree, z a node of that tree and z != header.</p> <p><span class="bold"><strong>Effects</strong></span>: Erases node "z" from the tree with header "header".</p> <p><span class="bold"><strong>Complexity</strong></span>: Amortized constant time.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> <pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodePtrCompare<span class="special">></span> - <span class="keyword">static</span> <span class="keyword">bool</span> <a name="idm45971718385872-bb"></a><span class="identifier">transfer_unique</span><span class="special">(</span><span class="identifier">node_ptr</span> header1<span class="special">,</span> <span class="identifier">NodePtrCompare</span> comp<span class="special">,</span> + <span class="keyword">static</span> <span class="keyword">bool</span> <a name="idm23680-bb"></a><span class="identifier">transfer_unique</span><span class="special">(</span><span class="identifier">node_ptr</span> header1<span class="special">,</span> <span class="identifier">NodePtrCompare</span> comp<span class="special">,</span> <span class="identifier">node_ptr</span> header2<span class="special">,</span> <span class="identifier">node_ptr</span> z<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: header1 and header2 must be the headers of trees tree1 and tree2 respectively, z a non-header node of tree1. NodePtrCompare is the comparison function of tree1..</p> <p><span class="bold"><strong>Effects</strong></span>: Transfers node "z" from tree1 to tree2 if tree1 does not contain a node that is equivalent to z.</p> <p><span class="bold"><strong>Returns</strong></span>: True if the node was trasferred, false otherwise.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comparison throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If the comparison throws. </p> </li> <li class="listitem"> <pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodePtrCompare<span class="special">></span> - <span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971718376512-bb"></a><span class="identifier">transfer_equal</span><span class="special">(</span><span class="identifier">node_ptr</span> header1<span class="special">,</span> <span class="identifier">NodePtrCompare</span> comp<span class="special">,</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a name="idm23703-bb"></a><span class="identifier">transfer_equal</span><span class="special">(</span><span class="identifier">node_ptr</span> header1<span class="special">,</span> <span class="identifier">NodePtrCompare</span> comp<span class="special">,</span> <span class="identifier">node_ptr</span> header2<span class="special">,</span> <span class="identifier">node_ptr</span> z<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: header1 and header2 must be the headers of trees tree1 and tree2 respectively, z a non-header node of tree1. NodePtrCompare is the comparison function of tree1..</p> <p><span class="bold"><strong>Effects</strong></span>: Transfers node "z" from tree1 to tree2.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comparison throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If the comparison throws. </p> </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">static</span> <span class="keyword">void</span> <a name="idm45971718368080-bb"></a><span class="identifier">clone</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span> source_header<span class="special">,</span> - <span class="identifier">node_ptr</span> target_header<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">static</span> <span class="keyword">void</span> <a name="idm23724-bb"></a><span class="identifier">clone</span><span class="special">(</span><span class="identifier">const_node_ptr</span> source_header<span class="special">,</span> <span class="identifier">node_ptr</span> target_header<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>: "cloner" must be a function object taking a node_ptr and returning a new cloned node of it. "disposer" must take a node_ptr and shouldn't throw.</p> -<p><span class="bold"><strong>Effects</strong></span>: First empties target tree calling <code class="computeroutput">void disposer::operator()(const node_ptr &)</code> for every node of the tree except the header.</p> -<p>Then, duplicates the entire tree pointed by "source_header" cloning each source node with <code class="computeroutput">node_ptr Cloner::operator()(const node_ptr &)</code> to obtain the nodes of the target tree. If "cloner" throws, the cloned target nodes are disposed using <code class="computeroutput">void disposer(const node_ptr &)</code>.</p> +<p><span class="bold"><strong>Effects</strong></span>: First empties target tree calling <code class="computeroutput">void disposer::operator()(node_ptr)</code> for every node of the tree except the header.</p> +<p>Then, duplicates the entire tree pointed by "source_header" cloning each source node with <code class="computeroutput">node_ptr Cloner::operator()(node_ptr)</code> to obtain the nodes of the target tree. If "cloner" throws, the cloned target nodes are disposed using <code class="computeroutput">void disposer(node_ptr )</code>.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to the number of element of the source tree plus the number of elements of tree target tree when calling this function.</p> -<p><span class="bold"><strong>Throws</strong></span>: If cloner functor throws. If this happens target nodes are disposed. </p> +<p><span class="bold"><strong>Throws</strong></span>: If cloner functor throws. If this happens target nodes are disposed. </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">static</span> <span class="keyword">void</span> <a name="idm45971718357056-bb"></a><span class="identifier">clear_and_dispose</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span> header<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">static</span> <span class="keyword">void</span> <a name="idm23750-bb"></a><span class="identifier">clear_and_dispose</span><span class="special">(</span><span class="identifier">node_ptr</span> header<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" must be an object function taking a node_ptr parameter and shouldn't throw.</p> -<p><span class="bold"><strong>Effects</strong></span>: Empties the target tree calling <code class="computeroutput">void disposer::operator()(const node_ptr &)</code> for every node of the tree except the header.</p> +<p><span class="bold"><strong>Effects</strong></span>: Empties the target tree calling <code class="computeroutput">void disposer::operator()(node_ptr)</code> for every node of the tree except the header.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to the number of element of the source tree plus the. number of elements of tree target tree when calling this function.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a name="idm45971718349200-bb"></a><span class="identifier">lower_bound</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span> header<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> key<span class="special">,</span> + <a name="idm23768-bb"></a><span class="identifier">lower_bound</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<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">KeyNodePtrCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns a node_ptr to the first element that is not less than "key" according to "comp" or "header" if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If "comp" 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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a name="idm45971718340736-bb"></a><span class="identifier">upper_bound</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span> header<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> key<span class="special">,</span> + <a name="idm23788-bb"></a><span class="identifier">upper_bound</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<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">KeyNodePtrCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns a node_ptr to the first element that is greater than "key" according to "comp" or "header" if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If "comp" 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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a name="idm45971718332272-bb"></a><span class="identifier">find</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span> header<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">KeyNodePtrCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <a name="idm23808-bb"></a><span class="identifier">find</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<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">KeyNodePtrCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns a node_ptr to the first element that is equivalent to "key" according to "comp" or "header" if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If "comp" 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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span> <span class="special">></span> - <a name="idm45971718323808-bb"></a><span class="identifier">equal_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span> header<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> key<span class="special">,</span> + <a name="idm23828-bb"></a><span class="identifier">equal_range</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<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">KeyNodePtrCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns an a pair of node_ptr delimiting a range containing all elements that are equivalent to "key" according to "comp" or an empty range that indicates the position where those elements would be if there are no equivalent elements.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If "comp" 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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span> <span class="special">></span> - <a name="idm45971718315216-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span> header<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> + <a name="idm23848-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> <span class="identifier">KeyNodePtrCompare</span> comp<span class="special">,</span> <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs. 'lower_key' must not be greater than 'upper_key' according to 'comp'. If 'lower_key' == 'upper_key', ('left_closed' || 'right_closed') must be true.</p> @@ -368,129 +365,98 @@ <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> <p><span class="bold"><strong>Throws</strong></span>: If "comp" throws.</p> <p><span class="bold"><strong>Note</strong></span>: This function can be more efficient than calling upper_bound and lower_bound for lower_key and upper_key.</p> -<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change. </p> +<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change. </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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> - <a name="idm45971718302080-bb"></a><span class="identifier">count</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span> header<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">KeyNodePtrCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <a name="idm23880-bb"></a><span class="identifier">count</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<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">KeyNodePtrCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns the number of elements with a key equivalent to "key" according to "comp".</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws. </p> </li> <li class="listitem"> <pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a name="idm45971718293664-bb"></a><span class="identifier">insert_equal_upper_bound</span><span class="special">(</span><span class="identifier">node_ptr</span> h<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">,</span> <span class="identifier">NodePtrCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <a name="idm23900-bb"></a><span class="identifier">insert_equal_upper_bound</span><span class="special">(</span><span class="identifier">node_ptr</span> h<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">,</span> <span class="identifier">NodePtrCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "h" must be the header node of a tree. NodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. NodePtrCompare compares two node_ptrs.</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts new_node into the tree before the upper bound according to "comp".</p> <p><span class="bold"><strong>Complexity</strong></span>: Average complexity for insert element is at most logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws. </p> </li> <li class="listitem"> <pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a name="idm45971718285776-bb"></a><span class="identifier">insert_equal_lower_bound</span><span class="special">(</span><span class="identifier">node_ptr</span> h<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">,</span> <span class="identifier">NodePtrCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <a name="idm23919-bb"></a><span class="identifier">insert_equal_lower_bound</span><span class="special">(</span><span class="identifier">node_ptr</span> h<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">,</span> <span class="identifier">NodePtrCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "h" must be the header node of a tree. NodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. NodePtrCompare compares two node_ptrs.</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts new_node into the tree before the lower bound according to "comp".</p> <p><span class="bold"><strong>Complexity</strong></span>: Average complexity for insert element is at most logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws. </p> </li> <li class="listitem"> <pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a name="idm45971718277888-bb"></a><span class="identifier">insert_equal</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> hint<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">,</span> + <a name="idm23938-bb"></a><span class="identifier">insert_equal</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> hint<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">,</span> <span class="identifier">NodePtrCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "header" must be the header node of a tree. NodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. NodePtrCompare compares two node_ptrs. "hint" is node from the "header"'s tree.</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts new_node into the tree, using "hint" as a hint to where it will be inserted. If "hint" is the upper_bound the insertion takes constant time (two comparisons in the worst case).</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic in general, but it is amortized constant time if new_node is inserted immediately before "hint".</p> -<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws. </p> </li> <li class="listitem"> <pre class="literallayout"><span class="keyword">static</span> <span class="identifier">node_ptr</span> -<a name="idm45971718269120-bb"></a><span class="identifier">insert_before</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> pos<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<a name="idm23959-bb"></a><span class="identifier">insert_before</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> pos<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "header" must be the header node of a tree. "pos" must be a valid iterator or header (end) node. "pos" must be an iterator pointing to the successor to "new_node" once inserted according to the order of already inserted nodes. This function does not check "pos" and this precondition must be guaranteed by the caller.</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts new_node into the tree before "pos".</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant-time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: If "pos" is not the successor of the newly inserted "new_node" tree invariants might be broken. </p> +<p><span class="bold"><strong>Note</strong></span>: If "pos" is not the successor of the newly inserted "new_node" tree invariants might be broken. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971718260880-bb"></a><span class="identifier">push_back</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm23978-bb"></a><span class="identifier">push_back</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "header" must be the header node of a tree. "new_node" must be, according to the used ordering no less than the greatest inserted key.</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts new_node into the tree before "pos".</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant-time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: If "new_node" is less than the greatest inserted key tree invariants are broken. This function is slightly faster than using "insert_before". </p> +<p><span class="bold"><strong>Note</strong></span>: If "new_node" is less than the greatest inserted key tree invariants are broken. This function is slightly faster than using "insert_before". </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971718253456-bb"></a><span class="identifier">push_front</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm23995-bb"></a><span class="identifier">push_front</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "header" must be the header node of a tree. "new_node" must be, according to the used ordering, no greater than the lowest inserted key.</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts new_node into the tree before "pos".</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant-time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: If "new_node" is greater than the lowest inserted key tree invariants are broken. This function is slightly faster than using "insert_before". </p> +<p><span class="bold"><strong>Note</strong></span>: If "new_node" is greater than the lowest inserted key tree invariants are broken. This function is slightly faster than using "insert_before". </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> KeyNodePtrCompare<span class="special">></span> +<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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="keyword">bool</span> <span class="special">></span> - <a name="idm45971718246032-bb"></a><span class="identifier">insert_unique_check</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span> header<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> key<span class="special">,</span> + <a name="idm24012-bb"></a><span class="identifier">insert_unique_check</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<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">KeyNodePtrCompare</span> comp<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>: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. NodePtrCompare compares KeyType with a node_ptr.</p> -<p><span class="bold"><strong>Effects</strong></span>: Checks if there is an equivalent node to "key" in the tree according to "comp" and obtains the needed information to realize a constant-time node insertion if there is no equivalent node.</p> -<p><span class="bold"><strong>Returns</strong></span>: If there is an equivalent value returns a pair containing a node_ptr to the already present node and false. If there is not equivalent key can be inserted returns true in the returned pair's boolean and fills "commit_data" that is meant to be used with the "insert_commit" function to achieve a constant-time insertion function.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Average complexity is at most logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws.</p> -<p><span class="bold"><strong>Notes</strong></span>: This function is used to improve performance when constructing a node is expensive and the user does not want to have two equivalent nodes in the tree: if there is an equivalent value the constructed object must be discarded. Many times, the part of the node that is used to impose the order is much cheaper to construct than the node and this function offers the possibility to use that part to check if the insertion will be successful.</p> -<p>If the check is successful, the user can construct the node and use "insert_commit" to insert the node in constant-time. This gives a total logarithmic complexity to the insertion: check(O(log(N)) + commit(O(1)).</p> -<p>"commit_data" remains valid for a subsequent "insert_unique_commit" only if no more objects are inserted or erased from the set. </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> KeyNodePtrCompare<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></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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="keyword">bool</span> <span class="special">></span> - <a name="idm45971718233456-bb"></a><span class="identifier">insert_unique_check</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span> header<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span> hint<span class="special">,</span> + <a name="idm24025-bb"></a><span class="identifier">insert_unique_check</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> hint<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">KeyNodePtrCompare</span> comp<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>: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. NodePtrCompare compares KeyType with a node_ptr. "hint" is node from the "header"'s tree.</p> -<p><span class="bold"><strong>Effects</strong></span>: Checks if there is an equivalent node to "key" in the tree according to "comp" using "hint" as a hint to where it should be inserted and obtains the needed information to realize a constant-time node insertion if there is no equivalent node. If "hint" is the upper_bound the function has constant time complexity (two comparisons in the worst case).</p> -<p><span class="bold"><strong>Returns</strong></span>: If there is an equivalent value returns a pair containing a node_ptr to the already present node and false. If there is not equivalent key can be inserted returns true in the returned pair's boolean and fills "commit_data" that is meant to be used with the "insert_commit" function to achieve a constant-time insertion function.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Average complexity is at most logarithmic, but it is amortized constant time if new_node should be inserted immediately before "hint".</p> -<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws.</p> -<p><span class="bold"><strong>Notes</strong></span>: This function is used to improve performance when constructing a node is expensive and the user does not want to have two equivalent nodes in the tree: if there is an equivalent value the constructed object must be discarded. Many times, the part of the node that is used to impose the order is much cheaper to construct than the node and this function offers the possibility to use that part to check if the insertion will be successful.</p> -<p>If the check is successful, the user can construct the node and use "insert_commit" to insert the node in constant-time. This gives a total logarithmic complexity to the insertion: check(O(log(N)) + commit(O(1)).</p> -<p>"commit_data" remains valid for a subsequent "insert_unique_commit" only if no more objects are inserted or erased from the set. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971718219888-bb"></a><span class="identifier">insert_unique_commit</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> new_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>: "header" must be the header node of a tree. "commit_data" must have been obtained from a previous call to "insert_unique_check". No objects should have been inserted or erased from the set between the "insert_unique_check" that filled "commit_data" and the call to "insert_commit".</p> -<p><span class="bold"><strong>Effects</strong></span>: Inserts new_node in the set using the information obtained from the "commit_data" that a previous "insert_check" filled.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Notes</strong></span>: This function has only sense if a "insert_unique_check" has been previously executed to fill "commit_data". No value should be inserted or erased between the "insert_check" and "insert_commit" calls. </p> -</li> + <span class="identifier">insert_commit_data</span> <span class="special">&</span> commit_data<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm24040-bb"></a><span class="identifier">insert_unique_commit</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> new_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></li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">bool</span> <a name="idm45971718211472-bb"></a><span class="identifier">is_header</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span> p<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">bool</span> <a name="idm24048-bb"></a><span class="identifier">is_header</span><span class="special">(</span><span class="identifier">const_node_ptr</span> p<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: p is a node of a tree.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns true if p is the header of the tree.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> </ol></div> </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="make_avltree.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.avltree_algorithms_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="bs_multiset.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/base_hook.html b/doc/html/boost/intrusive/base_hook.html index 39ff0468af..2758151945 100644 --- a/doc/html/boost/intrusive/base_hook.html +++ b/doc/html/boost/intrusive/base_hook.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.options_hpp" title="Header <boost/intrusive/options.hpp>"> <link rel="prev" href="member_value_traits.html" title="Struct template member_value_traits"> <link rel="next" href="bucket_traits.html" title="Struct template bucket_traits"> +<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> @@ -29,25 +30,22 @@ <h2><span class="refentrytitle">Struct template base_hook</span></h2> <p>boost::intrusive::base_hook</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.options_hpp" title="Header <boost/intrusive/options.hpp>">boost/intrusive/options.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.options_hpp" title="Header <boost/intrusive/options.hpp>">boost/intrusive/options.hpp</a>> </span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> BaseHook<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="base_hook.html" title="Struct template base_hook">base_hook</a> <span class="special">{</span> <span class="special">}</span><span class="special">;</span></pre></div> <div class="refsect1"> -<a name="id-1.3.20.42.21.3.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.21.3.4"></a><h2>Description</h2> <p>This option setter specifies that the container must use the specified base hook </p> </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="member_value_traits.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.options_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="bucket_traits.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/bs_multiset.html b/doc/html/boost/intrusive/bs_multiset.html index 5474dd1b25..d19b5d5f1e 100644 --- a/doc/html/boost/intrusive/bs_multiset.html +++ b/doc/html/boost/intrusive/bs_multiset.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.bs_set_hpp" title="Header <boost/intrusive/bs_set.hpp>"> <link rel="prev" href="avltree_algorithms.html" title="Class template avltree_algorithms"> <link rel="next" href="bs_set.html" title="Class template bs_set"> +<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> @@ -29,8 +30,8 @@ <h2><span class="refentrytitle">Class template bs_multiset</span></h2> <p>boost::intrusive::bs_multiset</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.bs_set_hpp" title="Header <boost/intrusive/bs_set.hpp>">boost/intrusive/bs_set.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.bs_set_hpp" title="Header <boost/intrusive/bs_set.hpp>">boost/intrusive/bs_set.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="bs_multiset.html" title="Class template bs_multiset">bs_multiset</a> <span class="special">{</span> @@ -59,431 +60,365 @@ <span class="keyword">typedef</span> <span class="identifier">implementation_defined</span><span class="special">::</span><span class="identifier">node_algorithms</span> <a name="boost.intrusive.bs_multiset.node_algorithms"></a><span class="identifier">node_algorithms</span><span class="special">;</span> <span class="comment">// <a class="link" href="bs_multiset.html#boost.intrusive.bs_multisetconstruct-copy-destruct">construct/copy/destruct</a></span> - <a class="link" href="bs_multiset.html#idm45971717738128-bb"><span class="identifier">bs_multiset</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">explicit</span> <a class="link" href="bs_multiset.html#idm45971717734976-bb"><span class="identifier">bs_multiset</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span><span class="special">,</span> + <a class="link" href="bs_multiset.html#idm24940-bb"><span class="identifier">bs_multiset</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">explicit</span> <a class="link" href="bs_multiset.html#idm24948-bb"><span class="identifier">bs_multiset</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_compare</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="bs_multiset.html#idm45971717729856-bb"><span class="identifier">bs_multiset</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="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> <span class="special">=</span> <span class="identifier">key_compare</span><span class="special">(</span><span class="special">)</span><span class="special">,</span> + <a class="link" href="bs_multiset.html#idm24954-bb"><span class="identifier">bs_multiset</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="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> <span class="special">=</span> <span class="identifier">key_compare</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="bs_multiset.html#idm45971717721392-bb"><span class="identifier">bs_multiset</span></a><span class="special">(</span><a class="link" href="bs_multiset.html" title="Class template bs_multiset">bs_multiset</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> - <a class="link" href="bs_multiset.html" title="Class template bs_multiset">bs_multiset</a> <span class="special">&</span> <a class="link" href="bs_multiset.html#idm45971717717088-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><a class="link" href="bs_multiset.html" title="Class template bs_multiset">bs_multiset</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> - <a class="link" href="bs_multiset.html#idm45971717714272-bb"><span class="special">~</span><span class="identifier">bs_multiset</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="bs_multiset.html#idm24967-bb"><span class="identifier">bs_multiset</span></a><span class="special">(</span><a class="link" href="bs_multiset.html" title="Class template bs_multiset">bs_multiset</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="bs_multiset.html" title="Class template bs_multiset">bs_multiset</a> <span class="special">&</span> <a class="link" href="bs_multiset.html#idm24978-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><a class="link" href="bs_multiset.html" title="Class template bs_multiset">bs_multiset</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="bs_multiset.html#idm24987-bb"><span class="special">~</span><span class="identifier">bs_multiset</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> - <span class="comment">// <a class="link" href="bs_multiset.html#idm45971718177632-bb">public member functions</a></span> - <span class="identifier">iterator</span> <a class="link" href="bs_multiset.html#idm45971718177072-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="bs_multiset.html#idm45971718173232-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="bs_multiset.html#idm45971718169392-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="bs_multiset.html#idm45971718165552-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="bs_multiset.html#idm45971718161712-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="bs_multiset.html#idm45971718157872-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">reverse_iterator</span> <a class="link" href="bs_multiset.html#idm45971718154032-bb"><span class="identifier">rbegin</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="identifier">const_reverse_iterator</span> <a class="link" href="bs_multiset.html#idm45971718150176-bb"><span class="identifier">rbegin</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_reverse_iterator</span> <a class="link" href="bs_multiset.html#idm45971718146320-bb"><span class="identifier">crbegin</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">reverse_iterator</span> <a class="link" href="bs_multiset.html#idm45971718142464-bb"><span class="identifier">rend</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="identifier">const_reverse_iterator</span> <a class="link" href="bs_multiset.html#idm45971718138608-bb"><span class="identifier">rend</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_reverse_iterator</span> <a class="link" href="bs_multiset.html#idm45971718134752-bb"><span class="identifier">crend</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="bs_multiset.html#idm45971718130896-bb"><span class="identifier">root</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="bs_multiset.html#idm45971718127024-bb"><span class="identifier">root</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="bs_multiset.html#idm45971718123152-bb"><span class="identifier">croot</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">key_compare</span> <a class="link" href="bs_multiset.html#idm45971718119280-bb"><span class="identifier">key_comp</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">value_compare</span> <a class="link" href="bs_multiset.html#idm45971718115424-bb"><span class="identifier">value_comp</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="bs_multiset.html#idm45971718111552-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="bs_multiset.html#idm45971718107728-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="bs_multiset.html#idm45971718103792-bb"><span class="identifier">swap</span></a><span class="special">(</span><a class="link" href="bs_multiset.html" title="Class template bs_multiset">bs_multiset</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="comment">// <a class="link" href="bs_multiset.html#idm24123-bb">public member functions</a></span> + <span class="identifier">iterator</span> <a class="link" href="bs_multiset.html#idm24124-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="bs_multiset.html#idm24133-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="bs_multiset.html#idm24142-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="bs_multiset.html#idm24151-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="bs_multiset.html#idm24160-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="bs_multiset.html#idm24169-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">reverse_iterator</span> <a class="link" href="bs_multiset.html#idm24178-bb"><span class="identifier">rbegin</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">const_reverse_iterator</span> <a class="link" href="bs_multiset.html#idm24187-bb"><span class="identifier">rbegin</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_reverse_iterator</span> <a class="link" href="bs_multiset.html#idm24196-bb"><span class="identifier">crbegin</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">reverse_iterator</span> <a class="link" href="bs_multiset.html#idm24205-bb"><span class="identifier">rend</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">const_reverse_iterator</span> <a class="link" href="bs_multiset.html#idm24214-bb"><span class="identifier">rend</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_reverse_iterator</span> <a class="link" href="bs_multiset.html#idm24223-bb"><span class="identifier">crend</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="bs_multiset.html#idm24232-bb"><span class="identifier">root</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="bs_multiset.html#idm24241-bb"><span class="identifier">root</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="bs_multiset.html#idm24250-bb"><span class="identifier">croot</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">key_compare</span> <a class="link" href="bs_multiset.html#idm24259-bb"><span class="identifier">key_comp</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">value_compare</span> <a class="link" href="bs_multiset.html#idm24268-bb"><span class="identifier">value_comp</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="bs_multiset.html#idm24277-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="bs_multiset.html#idm24286-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="../interprocess/allocator.html#idm24295-bb"><span class="identifier">swap</span></a><span class="special">(</span><a class="link" href="bs_multiset.html" title="Class template bs_multiset">bs_multiset</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="bs_multiset.html#idm45971718099248-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="bs_multiset.html" title="Class template bs_multiset">bs_multiset</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="../interprocess/allocator.html#idm24307-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="bs_multiset.html" title="Class template bs_multiset">bs_multiset</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="bs_multiset.html#idm45971718090192-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><a class="link" href="bs_multiset.html" title="Class template bs_multiset">bs_multiset</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="bs_multiset.html#idm45971718080384-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="identifier">reference</span><span class="special">)</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="bs_multiset.html#idm45971718074224-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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="bs_multiset.html#idm45971718067200-bb"><span class="identifier">insert</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">iterator</span> <a class="link" href="bs_multiset.html#idm45971718059360-bb"><span class="identifier">insert_before</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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">void</span> <a class="link" href="bs_multiset.html#idm45971718052128-bb"><span class="identifier">push_back</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">void</span> <a class="link" href="bs_multiset.html#idm45971718045568-bb"><span class="identifier">push_front</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">iterator</span> <a class="link" href="bs_multiset.html#idm45971718039008-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="identifier">iterator</span> <a class="link" href="bs_multiset.html#idm45971718033520-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="bs_multiset.html#idm45971718027280-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">void</span> <a class="link" href="bs_multiset.html#idm24329-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><a class="link" href="bs_multiset.html" title="Class template bs_multiset">bs_multiset</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="bs_multiset.html#idm24353-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="identifier">reference</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="bs_multiset.html#idm24357-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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="bs_multiset.html#idm24363-bb"><span class="identifier">insert</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">iterator</span> <a class="link" href="bs_multiset.html#idm24382-bb"><span class="identifier">insert_before</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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">void</span> <a class="link" href="../container/small_vector.html#idm24399-bb"><span class="identifier">push_back</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">void</span> <a class="link" href="../container/small_vector.html#idm24414-bb"><span class="identifier">push_front</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">iterator</span> <a class="link" href="bs_multiset.html#idm24429-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="identifier">iterator</span> <a class="link" href="bs_multiset.html#idm24433-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="bs_multiset.html#idm24439-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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">size_type</span> <a class="link" href="bs_multiset.html#idm45971718021232-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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">size_type</span> <a class="link" href="bs_multiset.html#idm24443-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">KeyTypeKeyCompare</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="identifier">iterator</span> <a class="link" href="bs_multiset.html#idm45971718011136-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="identifier">iterator</span> <a class="link" href="bs_multiset.html#idm24467-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="identifier">iterator</span> <a class="link" href="bs_multiset.html#idm45971718003232-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="identifier">iterator</span> <a class="link" href="bs_multiset.html#idm24475-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="bs_multiset.html#idm45971717994576-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="bs_multiset.html#idm24485-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> KeyTypeKeyCompare<span class="special">,</span> <span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="identifier">size_type</span> <a class="link" href="bs_multiset.html#idm45971717986048-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">KeyTypeKeyCompare</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="bs_multiset.html#idm45971717973824-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="bs_multiset.html#idm45971717968960-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="bs_multiset.html#idm45971717962656-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="identifier">size_type</span> <a class="link" href="bs_multiset.html#idm24493-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">KeyTypeKeyCompare</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="../interprocess/cached_adaptive_pool.html#idm24522-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="bs_multiset.html#idm24533-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="bs_multiset.html#idm24547-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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">size_type</span> <a class="link" href="bs_multiset.html#idm45971717957584-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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="bs_multiset.html#idm45971717948528-bb"><span class="identifier">lower_bound</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="bs_multiset.html#idm24551-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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="bs_multiset.html#idm24572-bb"><span class="identifier">lower_bound</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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a class="link" href="bs_multiset.html#idm45971717943776-bb"><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> - <span class="identifier">const_iterator</span> <a class="link" href="bs_multiset.html#idm45971717936928-bb"><span class="identifier">lower_bound</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="bs_multiset.html#idm24576-bb"><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">const_iterator</span> <a class="link" href="../container/small_vector_allocator.html#idm24585-bb"><span class="identifier">lower_bound</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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">const_iterator</span> <a class="link" href="bs_multiset.html#idm45971717931904-bb"><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="bs_multiset.html#idm45971717924784-bb"><span class="identifier">upper_bound</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="bs_multiset.html#idm24589-bb"><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="bs_multiset.html#idm24598-bb"><span class="identifier">upper_bound</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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a class="link" href="bs_multiset.html#idm45971717920032-bb"><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> - <span class="identifier">const_iterator</span> <a class="link" href="bs_multiset.html#idm45971717911328-bb"><span class="identifier">upper_bound</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="bs_multiset.html#idm24602-bb"><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">const_iterator</span> <a class="link" href="bs_multiset.html#idm24623-bb"><span class="identifier">upper_bound</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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">const_iterator</span> <a class="link" href="bs_multiset.html#idm45971717906304-bb"><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="bs_multiset.html#idm45971717897328-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">const_iterator</span> <a class="link" href="bs_multiset.html#idm24627-bb"><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="bs_multiset.html#idm24648-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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a class="link" href="bs_multiset.html#idm45971717892592-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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> - <span class="identifier">const_iterator</span> <a class="link" href="bs_multiset.html#idm45971717883856-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="bs_multiset.html#idm24652-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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">const_iterator</span> <a class="link" href="bs_multiset.html#idm24673-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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">const_iterator</span> <a class="link" href="bs_multiset.html#idm45971717878848-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">KeyTypeKeyCompare</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="bs_multiset.html#idm45971717869840-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="bs_multiset.html#idm24677-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">KeyTypeKeyCompare</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="bs_multiset.html#idm24698-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> KeyTypeKeyCompare<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="bs_multiset.html#idm45971717865008-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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="bs_multiset.html#idm24702-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">KeyTypeKeyCompare</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="bs_multiset.html#idm45971717856176-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="bs_multiset.html#idm24723-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> KeyTypeKeyCompare<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="bs_multiset.html#idm45971717851056-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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <a class="link" href="bs_multiset.html#idm24727-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">KeyTypeKeyCompare</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="bs_multiset.html#idm45971717841936-bb"><span class="identifier">bounded_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="identifier">key_type</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="bs_multiset.html#idm24748-bb"><span class="identifier">bounded_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="identifier">key_type</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</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> KeyTypeKeyCompare<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="bs_multiset.html#idm45971717829504-bb"><span class="identifier">bounded_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="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> + <a class="link" href="bs_multiset.html#idm24758-bb"><span class="identifier">bounded_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="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</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="bs_multiset.html#idm45971717812704-bb"><span class="identifier">bounded_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="identifier">key_type</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <a class="link" href="bs_multiset.html#idm24800-bb"><span class="identifier">bounded_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="identifier">key_type</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</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> KeyTypeKeyCompare<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="bs_multiset.html#idm45971717799984-bb"><span class="identifier">bounded_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="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> + <a class="link" href="bs_multiset.html#idm24810-bb"><span class="identifier">bounded_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="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="bs_multiset.html#idm45971717782896-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="bs_multiset.html#idm45971717777408-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">pointer</span> <a class="link" href="bs_multiset.html#idm45971717771920-bb"><span class="identifier">unlink_leftmost_without_rebalance</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="bs_multiset.html#idm45971717767008-bb"><span class="identifier">replace_node</span></a><span class="special">(</span><span class="identifier">iterator</span><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">void</span> <a class="link" href="bs_multiset.html#idm45971717759744-bb"><span class="identifier">remove_node</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">template</span><span class="special"><</span><span class="keyword">class</span> <span class="special">...</span> Options2<span class="special">></span> <span class="keyword">void</span> <a class="link" href="bs_multiset.html#idm45971717753904-bb"><span class="identifier">merge</span></a><span class="special">(</span><a class="link" href="bs_multiset.html" title="Class template bs_multiset">bs_multiset</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</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">class</span> <span class="special">...</span> Options2<span class="special">></span> <span class="keyword">void</span> <a class="link" href="bs_multiset.html#idm45971717746096-bb"><span class="identifier">merge</span></a><span class="special">(</span><a class="link" href="bs_set.html" title="Class template bs_set">bs_set</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="bs_multiset.html#idm24852-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="../interprocess/cached_node_allocator.html#idm24856-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">pointer</span> <a class="link" href="bs_multiset.html#idm24860-bb"><span class="identifier">unlink_leftmost_without_rebalance</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="bs_multiset.html#idm24871-bb"><span class="identifier">replace_node</span></a><span class="special">(</span><span class="identifier">iterator</span><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">void</span> <a class="link" href="bs_multiset.html#idm24888-bb"><span class="identifier">remove_node</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">template</span><span class="special"><</span><span class="keyword">class</span> <span class="special">...</span> Options2<span class="special">></span> <span class="keyword">void</span> <a class="link" href="bs_multiset.html#idm24902-bb"><span class="identifier">merge</span></a><span class="special">(</span><a class="link" href="bs_multiset.html" title="Class template bs_multiset">bs_multiset</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</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">class</span> <span class="special">...</span> Options2<span class="special">></span> <span class="keyword">void</span> <a class="link" href="bs_multiset.html#idm24921-bb"><span class="identifier">merge</span></a><span class="special">(</span><a class="link" href="bs_set.html" title="Class template bs_set">bs_set</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> - <span class="comment">// <a class="link" href="bs_multiset.html#idm45971717710368-bb">public static functions</a></span> - <span class="keyword">static</span> <a class="link" href="bs_multiset.html" title="Class template bs_multiset">bs_multiset</a> <span class="special">&</span> <a class="link" href="bs_multiset.html#idm45971717709808-bb"><span class="identifier">container_from_end_iterator</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="comment">// <a class="link" href="../interprocess/node_allocator.html#idm24996-bb">public static functions</a></span> + <span class="keyword">static</span> <a class="link" href="bs_multiset.html" title="Class template bs_multiset">bs_multiset</a> <span class="special">&</span> <a class="link" href="bs_multiset.html#idm24997-bb"><span class="identifier">container_from_end_iterator</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> <span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="bs_multiset.html" title="Class template bs_multiset">bs_multiset</a> <span class="special">&</span> - <a class="link" href="bs_multiset.html#idm45971717703792-bb"><span class="identifier">container_from_end_iterator</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">static</span> <a class="link" href="bs_multiset.html" title="Class template bs_multiset">bs_multiset</a> <span class="special">&</span> <a class="link" href="bs_multiset.html#idm45971717697616-bb"><span class="identifier">container_from_iterator</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="bs_multiset.html" title="Class template bs_multiset">bs_multiset</a> <span class="special">&</span> <a class="link" href="bs_multiset.html#idm45971717691648-bb"><span class="identifier">container_from_iterator</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">static</span> <span class="identifier">iterator</span> <a class="link" href="bs_multiset.html#idm45971717685520-bb"><span class="identifier">s_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_iterator</span> <a class="link" href="bs_multiset.html#idm45971717678432-bb"><span class="identifier">s_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="keyword">void</span> <a class="link" href="bs_multiset.html#idm45971717671344-bb"><span class="identifier">init_node</span></a><span class="special">(</span><span class="identifier">reference</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <a class="link" href="bs_multiset.html#idm25002-bb"><span class="identifier">container_from_end_iterator</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">static</span> <a class="link" href="bs_multiset.html" title="Class template bs_multiset">bs_multiset</a> <span class="special">&</span> <a class="link" href="bs_multiset.html#idm25007-bb"><span class="identifier">container_from_iterator</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="bs_multiset.html" title="Class template bs_multiset">bs_multiset</a> <span class="special">&</span> <a class="link" href="bs_multiset.html#idm25012-bb"><span class="identifier">container_from_iterator</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">static</span> <span class="identifier">iterator</span> <a class="link" href="bs_multiset.html#idm25017-bb"><span class="identifier">s_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_iterator</span> <a class="link" href="../container/stable_vector.html#idm25021-bb"><span class="identifier">s_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="keyword">void</span> <a class="link" href="bs_multiset.html#idm25025-bb"><span class="identifier">init_node</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="comment">// public data members</span> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">bool</span> <span class="identifier">constant_time_size</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.7.3.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.7.3.4"></a><h2>Description</h2> <p>The class template <a class="link" href="bs_multiset.html" title="Class template bs_multiset">bs_multiset</a> is an intrusive container, that mimics most of the interface of std::multiset as described in the C++ standard.</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> <p>The container supports the following options: <code class="computeroutput">base_hook<>/member_hook<>/value_traits<></code>, <code class="computeroutput">constant_time_size<></code>, <code class="computeroutput">size_type<></code> and <code class="computeroutput">compare<></code>. </p> <div class="refsect2"> -<a name="id-1.3.20.42.7.3.4.5"></a><h3> +<a name="id-1.3.18.42.7.3.4.5"></a><h3> <a name="boost.intrusive.bs_multisetconstruct-copy-destruct"></a><code class="computeroutput">bs_multiset</code> public construct/copy/destruct</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> <li class="listitem"> -<pre class="literallayout"><a name="idm45971717738128-bb"></a><span class="identifier">bs_multiset</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm24940-bb"></a><span class="identifier">bs_multiset</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Constructs an empty container.</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 constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor of the key_compare object throws. Basic guarantee. </p> +<p><span class="bold"><strong>Throws</strong></span>: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor of the key_compare object throws. Basic guarantee. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="keyword">explicit</span> <a name="idm24948-bb"></a><span class="identifier">bs_multiset</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> cmp<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></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="idm24954-bb"></a><span class="identifier">bs_multiset</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="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> cmp <span class="special">=</span> <span class="identifier">key_compare</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></li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">explicit</span> <a name="idm45971717734976-bb"></a><span class="identifier">bs_multiset</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> cmp<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> -<p><span class="bold"><strong>Effects</strong></span>: Constructs an empty container with given comparison and traits.</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 constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor of the key_compare object throws. Basic guarantee. </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> - <a name="idm45971717729856-bb"></a><span class="identifier">bs_multiset</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="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> cmp <span class="special">=</span> <span class="identifier">key_compare</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> -<p><span class="bold"><strong>Requires</strong></span>: Dereferencing iterator must yield an lvalue of type value_type. cmp must be a comparison function that induces a strict weak ordering.</p> -<p><span class="bold"><strong>Effects</strong></span>: Constructs an empty container and inserts elements from [b, e).</p> -<p><span class="bold"><strong>Complexity</strong></span>: Linear in N if [b, e) is already sorted using comp and otherwise N * log N, where N is the distance between first and last.</p> -<p><span class="bold"><strong>Throws</strong></span>: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor/operator() of the key_compare object throws. Basic guarantee. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><a name="idm45971717721392-bb"></a><span class="identifier">bs_multiset</span><span class="special">(</span><a class="link" href="bs_multiset.html" title="Class template bs_multiset">bs_multiset</a> <span class="special">&&</span> x<span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm24967-bb"></a><span class="identifier">bs_multiset</span><span class="special">(</span><a class="link" href="bs_multiset.html" title="Class template bs_multiset">bs_multiset</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 comparison object and value traits are move constructed and nodes belonging to x (except the node representing the "end") 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 the comparison objet throws. </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 the comparison objet throws. </p> </li> <li class="listitem"> -<pre class="literallayout"><a class="link" href="bs_multiset.html" title="Class template bs_multiset">bs_multiset</a> <span class="special">&</span> <a name="idm45971717717088-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><a class="link" href="bs_multiset.html" title="Class template bs_multiset">bs_multiset</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> +<pre class="literallayout"><a class="link" href="bs_multiset.html" title="Class template bs_multiset">bs_multiset</a> <span class="special">&</span> <a name="idm24978-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><a class="link" href="bs_multiset.html" title="Class template bs_multiset">bs_multiset</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="idm45971717714272-bb"></a><span class="special">~</span><span class="identifier">bs_multiset</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm24987-bb"></a><span class="special">~</span><span class="identifier">bs_multiset</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 set are not deleted (i.e. no destructors are called), but the nodes according to the <code class="computeroutput"><a class="link" href="value_traits.html" title="Struct template value_traits">value_traits</a></code> template parameter are reinitialized and thus can be reused.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to elements contained in *this.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> </ol></div> </div> <div class="refsect2"> -<a name="id-1.3.20.42.7.3.4.6"></a><h3> -<a name="idm45971718177632-bb"></a><code class="computeroutput">bs_multiset</code> public member functions</h3> +<a name="id-1.3.18.42.7.3.4.6"></a><h3> +<a name="idm24123-bb"></a><code class="computeroutput">bs_multiset</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="idm45971718177072-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="idm24124-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971718173232-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="idm24133-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971718169392-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="idm24142-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971718165552-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="idm24151-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971718161712-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="idm24160-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971718157872-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="idm24169-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">reverse_iterator</span> <a name="idm45971718154032-bb"></a><span class="identifier">rbegin</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">reverse_iterator</span> <a name="idm24178-bb"></a><span class="identifier">rbegin</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 a reverse_iterator pointing to the beginning of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45971718150176-bb"></a><span class="identifier">rbegin</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_reverse_iterator</span> <a name="idm24187-bb"></a><span class="identifier">rbegin</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_reverse_iterator pointing to the beginning of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45971718146320-bb"></a><span class="identifier">crbegin</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_reverse_iterator</span> <a name="idm24196-bb"></a><span class="identifier">crbegin</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_reverse_iterator pointing to the beginning of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">reverse_iterator</span> <a name="idm45971718142464-bb"></a><span class="identifier">rend</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">reverse_iterator</span> <a name="idm24205-bb"></a><span class="identifier">rend</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 a reverse_iterator pointing to the end of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45971718138608-bb"></a><span class="identifier">rend</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_reverse_iterator</span> <a name="idm24214-bb"></a><span class="identifier">rend</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_reverse_iterator pointing to the end of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45971718134752-bb"></a><span class="identifier">crend</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_reverse_iterator</span> <a name="idm24223-bb"></a><span class="identifier">crend</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_reverse_iterator pointing to the end of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971718130896-bb"></a><span class="identifier">root</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="idm24232-bb"></a><span class="identifier">root</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 a iterator pointing to the root node of the container or end() if not present.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971718127024-bb"></a><span class="identifier">root</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="idm24241-bb"></a><span class="identifier">root</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 root node of the container or cend() if not present.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971718123152-bb"></a><span class="identifier">croot</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="idm24250-bb"></a><span class="identifier">croot</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 root node of the container or cend() if not present.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">key_compare</span> <a name="idm45971718119280-bb"></a><span class="identifier">key_comp</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_compare</span> <a name="idm24259-bb"></a><span class="identifier">key_comp</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_compare object used by the container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: If key_compare copy-constructor throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If key_compare copy-constructor throws. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">value_compare</span> <a name="idm45971718115424-bb"></a><span class="identifier">value_comp</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">value_compare</span> <a name="idm24268-bb"></a><span class="identifier">value_comp</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 value_compare object used by the container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: If value_compare copy-constructor throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If value_compare copy-constructor throws. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">bool</span> <a name="idm45971718111552-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="idm24277-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>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971718107728-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="idm24286-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to elements contained in *this if constant-time size option is disabled. Constant time otherwise.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971718103792-bb"></a><span class="identifier">swap</span><span class="special">(</span><a class="link" href="bs_multiset.html" title="Class template bs_multiset">bs_multiset</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="idm24295-bb"></a><span class="identifier">swap</span><span class="special">(</span><a class="link" href="bs_multiset.html" title="Class template bs_multiset">bs_multiset</a> <span class="special">&</span> other<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Swaps the contents of two containers.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comparison functor's swap call throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If the comparison functor's swap call throws. </p> </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="idm45971718099248-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="bs_multiset.html" title="Class template bs_multiset">bs_multiset</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="idm24307-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="bs_multiset.html" title="Class template bs_multiset">bs_multiset</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 equivalent to the original nodes.</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. Copies the predicate from the source container.</p> <p>If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to erased plus inserted elements.</p> -<p><span class="bold"><strong>Throws</strong></span>: If cloner throws or predicate copy assignment throws. Basic guarantee. </p> +<p><span class="bold"><strong>Throws</strong></span>: If cloner throws or predicate copy assignment throws. Basic guarantee. </p> </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="idm45971718090192-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><a class="link" href="bs_multiset.html" title="Class template bs_multiset">bs_multiset</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="idm24329-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><a class="link" href="bs_multiset.html" title="Class template bs_multiset">bs_multiset</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 equivalent to the original nodes.</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. Copies the predicate from the source container.</p> <p>If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to erased plus inserted elements.</p> <p><span class="bold"><strong>Throws</strong></span>: If cloner throws or predicate copy assignment throws. Basic guarantee.</p> -<p><span class="bold"><strong>Note</strong></span>: This version can modify the source container, useful to implement move semantics. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971718080384-bb"></a><span class="identifier">insert</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 value into the container before the upper bound.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Average complexity for insert element is at most logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the internal key_compare ordering function throws. Strong guarantee.</p> -<p><span class="bold"><strong>Note</strong></span>: Does not affect the validity of iterators and references. No copy-constructors are called. </p> +<p><span class="bold"><strong>Note</strong></span>: This version can modify the source container, useful to implement move semantics. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm24353-bb"></a><span class="identifier">insert</span><span class="special">(</span><span class="identifier">reference</span> value<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm24357-bb"></a><span class="identifier">insert</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<span class="special">,</span> <span class="identifier">reference</span> value<span class="special">)</span><span class="special">;</span></pre></li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971718074224-bb"></a><span class="identifier">insert</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<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, and "hint" must be a valid iterator.</p> -<p><span class="bold"><strong>Effects</strong></span>: Inserts x into the container, using "hint" as a hint to where it will be inserted. If "hint" is the upper_bound the insertion takes constant time (two comparisons in the worst case)</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic in general, but it is amortized constant time if t is inserted immediately before hint.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the internal key_compare ordering function throws. Strong guarantee.</p> -<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="idm45971718067200-bb"></a><span class="identifier">insert</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="idm24363-bb"></a><span class="identifier">insert</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>: Inserts a each element of a range into the container before the upper bound of the key of each element.</p> <p><span class="bold"><strong>Complexity</strong></span>: Insert range is in general O(N * log(N)), where N is the size of the range. However, it is linear in N if the range is already sorted by value_comp().</p> <p><span class="bold"><strong>Throws</strong></span>: If the comparison functor call throws.</p> -<p><span class="bold"><strong>Note</strong></span>: Does not affect the validity of iterators and references. No copy-constructors are called. </p> +<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">iterator</span> <a name="idm45971718059360-bb"></a><span class="identifier">insert_before</span><span class="special">(</span><span class="identifier">const_iterator</span> pos<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="idm24382-bb"></a><span class="identifier">insert_before</span><span class="special">(</span><span class="identifier">const_iterator</span> pos<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, "pos" must be a valid iterator (or end) and must be the succesor of value once inserted according to the predicate</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts x into the container before "pos".</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if "pos" is not the successor of "value" container ordering invariant will be broken. This is a low-level function to be used only for performance reasons by advanced users. </p> +<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if "pos" is not the successor of "value" container ordering invariant will be broken. This is a low-level function to be used only for performance reasons by advanced users. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971718052128-bb"></a><span class="identifier">push_back</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">void</span> <a name="idm24399-bb"></a><span class="identifier">push_back</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 it must be no less than the greatest inserted key</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts x into the container in the last position.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if value is less than the greatest inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users. </p> +<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if value is less than the greatest inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971718045568-bb"></a><span class="identifier">push_front</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">void</span> <a name="idm24414-bb"></a><span class="identifier">push_front</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 it must be no greater than the minimum inserted key</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts x into the container in the first position.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if value is greater than the minimum inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971718039008-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 complexity for erase element is constant time.</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">iterator</span> <a name="idm45971718033520-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 complexity for erase range is at most O(log(size() + N)), where N is the number of elements in the range.</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="idm45971718027280-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>: O(log(size() + N).</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> +<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if value is greater than the minimum inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm24429-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm24433-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">size_type</span> <a name="idm24439-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></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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971718021232-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <span class="identifier">size_type</span> <a name="idm24443-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Erases all the elements with the given key. according to the comparison functor "comp".</p> <p><span class="bold"><strong>Returns</strong></span>: The number of erased elements.</p> <p><span class="bold"><strong>Complexity</strong></span>: O(log(size() + N).</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="identifier">iterator</span> <a name="idm45971718011136-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 complexity for erase element is constant time.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<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">template</span><span class="special"><</span><span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="identifier">iterator</span> <a name="idm45971718003232-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> -<p><span class="bold"><strong>Complexity</strong></span>: Average complexity for erase range is at most O(log(size() + N)), where N is the number of elements in the range.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<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">template</span><span class="special"><</span><span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971717994576-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> -<p><span class="bold"><strong>Complexity</strong></span>: O(log(size() + N).</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> +<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="identifier">iterator</span> <a name="idm24467-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></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">iterator</span> <a name="idm24475-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></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="idm24485-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></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> KeyTypeKeyCompare<span class="special">,</span> <span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971717986048-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">KeyTypeKeyCompare</span> comp<span class="special">,</span> + <span class="identifier">size_type</span> <a name="idm24493-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">KeyTypeKeyCompare</span> comp<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>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk) and nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Requires</strong></span>: Disposer::operator()(pointer) shouldn't throw.</p> @@ -491,168 +426,102 @@ <p><span class="bold"><strong>Returns</strong></span>: The number of erased elements.</p> <p><span class="bold"><strong>Complexity</strong></span>: O(log(size() + N).</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: Invalidates the iterators to the erased elements. </p> +<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="idm45971717973824-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="idm24522-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> +<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="idm45971717968960-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="idm24533-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>Effects</strong></span>: Erases all of the elements calling disposer(p) for each node to be erased. <span class="bold"><strong>Complexity</strong></span>: Average complexity for is at most O(log(size() + N)), where N is the number of elements in the container.</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. Calls N times to disposer functor. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">size_type</span> <a name="idm45971717962656-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>: Logarithmic to the number of elements contained plus lineal to number of objects with the given value.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Note</strong></span>: Invalidates the iterators (but not the references) to the erased elements. Calls N times to disposer functor. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">size_type</span> <a name="idm24547-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></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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971717957584-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> + <span class="identifier">size_type</span> <a name="idm24551-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns the number of contained elements with the given key</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic to the number of elements contained plus lineal to number of objects with the given key.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971717948528-bb"></a><span class="identifier">lower_bound</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 an iterator to the first element whose key is not less than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> 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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a name="idm45971717943776-bb"></a><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Effects</strong></span>: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971717936928-bb"></a><span class="identifier">lower_bound</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 an iterator to the first element whose key is not less than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> 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> KeyTypeKeyCompare<span class="special">></span> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm24572-bb"></a><span class="identifier">lower_bound</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></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> KeyTypeKeyCompare<span class="special">></span> + <span class="identifier">iterator</span> <a name="idm24576-bb"></a><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm24585-bb"></a><span class="identifier">lower_bound</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></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> KeyTypeKeyCompare<span class="special">></span> <span class="identifier">const_iterator</span> - <a name="idm45971717931904-bb"></a><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Effects</strong></span>: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971717924784-bb"></a><span class="identifier">upper_bound</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 an iterator to the first element whose key is greater than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> -</li> + <a name="idm24589-bb"></a><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm24598-bb"></a><span class="identifier">upper_bound</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></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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a name="idm45971717920032-bb"></a><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <span class="identifier">iterator</span> <a name="idm24602-bb"></a><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns an iterator to the first element whose key is greater than k according to comp or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971717911328-bb"></a><span class="identifier">upper_bound</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 an iterator to the first element whose key is greater than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm24623-bb"></a><span class="identifier">upper_bound</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></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> KeyTypeKeyCompare<span class="special">></span> <span class="identifier">const_iterator</span> - <a name="idm45971717906304-bb"></a><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> + <a name="idm24627-bb"></a><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns an iterator to the first element whose key is greater than k according to comp or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971717897328-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 whose key is k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm24648-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></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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a name="idm45971717892592-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <span class="identifier">iterator</span> <a name="idm24652-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Finds an iterator to the first element whose key is k or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971717883856-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 an iterator to the first element whose key is k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm24673-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></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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">const_iterator</span> <a name="idm45971717878848-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> + <span class="identifier">const_iterator</span> <a name="idm24677-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Finds an iterator to the first element whose key is k or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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="idm45971717869840-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>: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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="idm24698-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></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> KeyTypeKeyCompare<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="idm45971717865008-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <a name="idm24702-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">></span> -<a name="idm45971717856176-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>: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">></span> +<a name="idm24723-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></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> KeyTypeKeyCompare<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="idm45971717851056-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> + <a name="idm24727-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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="idm45971717841936-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> upper_key<span class="special">,</span> - <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: <code class="computeroutput">upper_key</code> shall not precede <code class="computeroutput">lower_key</code> according to key_compare. [key_comp()(upper_key, lower_key) shall be false]</p> -<p>If <code class="computeroutput">lower_key</code> is equivalent to <code class="computeroutput">upper_key</code> [!key_comp()(upper_key, lower_key) && !key_comp()(lower_key, upper_key)] then ('left_closed' || 'right_closed') must be false.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns an a pair with the following criteria:</p> -<p>first = lower_bound(lower_key) if left_closed, upper_bound(lower_key) otherwise</p> -<p>second = upper_bound(upper_key) if right_closed, lower_bound(upper_key) otherwise</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws.</p> -<p><span class="bold"><strong>Note</strong></span>: This function can be more efficient than calling upper_bound and lower_bound for lower_value and upper_value.</p> -<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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="idm24748-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> upper_key<span class="special">,</span> + <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span><span class="special">;</span></pre></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> KeyTypeKeyCompare<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="idm45971717829504-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> + <a name="idm24758-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span> comp<span class="special">,</span> <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: <code class="computeroutput">lower_key</code> is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, lower_key) if left_closed is true, with respect to !comp(lower_key, nk) otherwise.</p> <p><code class="computeroutput">upper_key</code> is a value such that <code class="computeroutput">*this</code> is partitioned with respect to !comp(upper_key, nk) if right_closed is true, with respect to comp(nk, upper_key) otherwise.</p> @@ -664,26 +533,15 @@ <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> <p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws.</p> <p><span class="bold"><strong>Note</strong></span>: This function can be more efficient than calling upper_bound and lower_bound for lower_key and upper_key.</p> -<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </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">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">></span> -<a name="idm45971717812704-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> upper_key<span class="special">,</span> - <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: <code class="computeroutput">upper_key</code> shall not precede <code class="computeroutput">lower_key</code> according to key_compare. [key_comp()(upper_key, lower_key) shall be false]</p> -<p>If <code class="computeroutput">lower_key</code> is equivalent to <code class="computeroutput">upper_key</code> [!key_comp()(upper_key, lower_key) && !key_comp()(lower_key, upper_key)] then ('left_closed' || 'right_closed') must be false.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns an a pair with the following criteria:</p> -<p>first = lower_bound(lower_key) if left_closed, upper_bound(lower_key) otherwise</p> -<p>second = upper_bound(upper_key) if right_closed, lower_bound(upper_key) otherwise</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws.</p> -<p><span class="bold"><strong>Note</strong></span>: This function can be more efficient than calling upper_bound and lower_bound for lower_value and upper_value.</p> -<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </p> +<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </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">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">></span> +<a name="idm24800-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> upper_key<span class="special">,</span> + <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></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> KeyTypeKeyCompare<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="idm45971717799984-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> + <a name="idm24810-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span> comp<span class="special">,</span> <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: <code class="computeroutput">lower_key</code> is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, lower_key) if left_closed is true, with respect to !comp(lower_key, nk) otherwise.</p> <p><code class="computeroutput">upper_key</code> is a value such that <code class="computeroutput">*this</code> is partitioned with respect to !comp(upper_key, nk) if right_closed is true, with respect to comp(nk, upper_key) otherwise.</p> @@ -695,134 +553,74 @@ <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> <p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws.</p> <p><span class="bold"><strong>Note</strong></span>: This function can be more efficient than calling upper_bound and lower_bound for lower_key and upper_key.</p> -<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971717782896-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 set of appropriate type. Otherwise the behavior is undefined.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns: a valid iterator i belonging to the set 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_iterator</span> <a name="idm45971717777408-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 set of appropriate type. Otherwise the behavior is undefined.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns: a valid const_iterator i belonging to the set 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> +<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm24852-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm24856-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></li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">pointer</span> <a name="idm45971717771920-bb"></a><span class="identifier">unlink_leftmost_without_rebalance</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">pointer</span> <a name="idm24860-bb"></a><span class="identifier">unlink_leftmost_without_rebalance</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>: Unlinks the leftmost node from the container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Average complexity is constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Notes</strong></span>: This function breaks the container and the container can only be used for more unlink_leftmost_without_rebalance calls. This function is normally used to achieve a step by step controlled destruction of the container. </p> +<p><span class="bold"><strong>Notes</strong></span>: This function breaks the container and the container can only be used for more unlink_leftmost_without_rebalance calls. This function is normally used to achieve a step by step controlled destruction of the container. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971717767008-bb"></a><span class="identifier">replace_node</span><span class="special">(</span><span class="identifier">iterator</span> replace_this<span class="special">,</span> <span class="identifier">reference</span> with_this<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">void</span> <a name="idm24871-bb"></a><span class="identifier">replace_node</span><span class="special">(</span><span class="identifier">iterator</span> replace_this<span class="special">,</span> <span class="identifier">reference</span> with_this<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: replace_this must be a valid iterator of *this and with_this must not be inserted in any container.</p> <p><span class="bold"><strong>Effects</strong></span>: Replaces replace_this in its position in the container with with_this. The container does not need to be rebalanced.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: This function will break container ordering invariants if with_this is not equivalent to *replace_this according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing or comparison is needed. </p> +<p><span class="bold"><strong>Note</strong></span>: This function will break container ordering invariants if with_this is not equivalent to *replace_this according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing or comparison is needed. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971717759744-bb"></a><span class="identifier">remove_node</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">void</span> <a name="idm24888-bb"></a><span class="identifier">remove_node</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>Effects</strong></span>: removes "value" from the container.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic time.</p> <p><span class="bold"><strong>Note</strong></span>: This static function is only usable with non-constant time size containers that have stateless comparison functors.</p> -<p>If the user calls this function with a constant time size container or stateful comparison functor a compilation error will be issued. </p> +<p>If the user calls this function with a constant time size container or stateful comparison functor a compilation error will be issued. </p> </li> <li class="listitem"> <pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="special">...</span> Options2<span class="special">></span> - <span class="keyword">void</span> <a name="idm45971717753904-bb"></a><span class="identifier">merge</span><span class="special">(</span><a class="link" href="bs_multiset.html" title="Class template bs_multiset">bs_multiset</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span> source<span class="special">)</span><span class="special">;</span></pre> + <span class="keyword">void</span> <a name="idm24902-bb"></a><span class="identifier">merge</span><span class="special">(</span><a class="link" href="bs_multiset.html" title="Class template bs_multiset">bs_multiset</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span> source<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "source" container's Options can only can differ in the comparison function from *this.</p> <p><span class="bold"><strong>Effects</strong></span>: Extracts each element in source and insert it into a using the comparison object of *this.</p> <p><span class="bold"><strong>Postcondition</strong></span>: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing unless the comparison object throws.</p> -<p><span class="bold"><strong>Complexity</strong></span>: N log(a.size() + N) (N has the value source.size()) </p> +<p><span class="bold"><strong>Complexity</strong></span>: N log(a.size() + N) (N has the value source.size()) </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="special">...</span> Options2<span class="special">></span> <span class="keyword">void</span> <a name="idm45971717746096-bb"></a><span class="identifier">merge</span><span class="special">(</span><a class="link" href="bs_set.html" title="Class template bs_set">bs_set</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span> source<span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="special">...</span> Options2<span class="special">></span> <span class="keyword">void</span> <a name="idm24921-bb"></a><span class="identifier">merge</span><span class="special">(</span><a class="link" href="bs_set.html" title="Class template bs_set">bs_set</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span> source<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "source" container's Options can only can differ in the comparison function from *this.</p> <p><span class="bold"><strong>Effects</strong></span>: Extracts each element in source and insert it into a using the comparison object of *this.</p> <p><span class="bold"><strong>Postcondition</strong></span>: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing unless the comparison object throws.</p> -<p><span class="bold"><strong>Complexity</strong></span>: N log(a.size() + N) (N has the value source.size()) </p> +<p><span class="bold"><strong>Complexity</strong></span>: N log(a.size() + N) (N has the value source.size()) </p> </li> </ol></div> </div> <div class="refsect2"> -<a name="id-1.3.20.42.7.3.4.7"></a><h3> -<a name="idm45971717710368-bb"></a><code class="computeroutput">bs_multiset</code> public static functions</h3> +<a name="id-1.3.18.42.7.3.4.7"></a><h3> +<a name="idm24996-bb"></a><code class="computeroutput">bs_multiset</code> public static functions</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <a class="link" href="bs_multiset.html" title="Class template bs_multiset">bs_multiset</a> <span class="special">&</span> -<a name="idm45971717709808-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Precondition</strong></span>: end_iterator must be a valid end iterator of the container.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the container associated to the end iterator</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Constant. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="bs_multiset.html" title="Class template bs_multiset">bs_multiset</a> <span class="special">&</span> -<a name="idm45971717703792-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">const_iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Precondition</strong></span>: end_iterator must be a valid end iterator of the container.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the container associated to the end iterator</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Constant. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <a class="link" href="bs_multiset.html" title="Class template bs_multiset">bs_multiset</a> <span class="special">&</span> <a name="idm45971717697616-bb"></a><span class="identifier">container_from_iterator</span><span class="special">(</span><span class="identifier">iterator</span> it<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Precondition</strong></span>: it must be a valid iterator of the container.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the container associated to the iterator</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="bs_multiset.html" title="Class template bs_multiset">bs_multiset</a> <span class="special">&</span> <a name="idm45971717691648-bb"></a><span class="identifier">container_from_iterator</span><span class="special">(</span><span class="identifier">const_iterator</span> it<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Precondition</strong></span>: it must be a valid iterator of the container.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the container associated to the iterator</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="identifier">iterator</span> <a name="idm45971717685520-bb"></a><span class="identifier">s_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 set of appropriate type. Otherwise the behavior is undefined.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns: a valid iterator i belonging to the set 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> -<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">const_iterator</span> <a name="idm45971717678432-bb"></a><span class="identifier">s_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 set of appropriate type. Otherwise the behavior is undefined.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns: a valid iterator i belonging to the set 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> -<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="keyword">void</span> <a name="idm45971717671344-bb"></a><span class="identifier">init_node</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 shall not be in a container.</p> -<p><span class="bold"><strong>Effects</strong></span>: init_node puts the hook of a value in a well-known default state.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> -<p><span class="bold"><strong>Note</strong></span>: This function puts the hook in the well-known default state used by auto_unlink and safe hooks. </p> -</li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <a class="link" href="bs_multiset.html" title="Class template bs_multiset">bs_multiset</a> <span class="special">&</span> +<a name="idm24997-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="bs_multiset.html" title="Class template bs_multiset">bs_multiset</a> <span class="special">&</span> +<a name="idm25002-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">const_iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <a class="link" href="bs_multiset.html" title="Class template bs_multiset">bs_multiset</a> <span class="special">&</span> <a name="idm25007-bb"></a><span class="identifier">container_from_iterator</span><span class="special">(</span><span class="identifier">iterator</span> it<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="bs_multiset.html" title="Class template bs_multiset">bs_multiset</a> <span class="special">&</span> <a name="idm25012-bb"></a><span class="identifier">container_from_iterator</span><span class="special">(</span><span class="identifier">const_iterator</span> it<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">iterator</span> <a name="idm25017-bb"></a><span class="identifier">s_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></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">const_iterator</span> <a name="idm25021-bb"></a><span class="identifier">s_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></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm25025-bb"></a><span class="identifier">init_node</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></li> </ol></div> </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="avltree_algorithms.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.bs_set_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="bs_set.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/bs_set.html b/doc/html/boost/intrusive/bs_set.html index 85e77249ad..ce4a492274 100644 --- a/doc/html/boost/intrusive/bs_set.html +++ b/doc/html/boost/intrusive/bs_set.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.bs_set_hpp" title="Header <boost/intrusive/bs_set.hpp>"> <link rel="prev" href="bs_multiset.html" title="Class template bs_multiset"> <link rel="next" href="make_bs_multiset.html" title="Struct template make_bs_multiset"> +<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> @@ -29,8 +30,8 @@ <h2><span class="refentrytitle">Class template bs_set</span></h2> <p>boost::intrusive::bs_set</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.bs_set_hpp" title="Header <boost/intrusive/bs_set.hpp>">boost/intrusive/bs_set.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.bs_set_hpp" title="Header <boost/intrusive/bs_set.hpp>">boost/intrusive/bs_set.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="bs_set.html" title="Class template bs_set">bs_set</a> <span class="special">{</span> @@ -59,496 +60,398 @@ <span class="keyword">typedef</span> <span class="identifier">implementation_defined</span><span class="special">::</span><span class="identifier">node_algorithms</span> <a name="boost.intrusive.bs_set.node_algorithms"></a><span class="identifier">node_algorithms</span><span class="special">;</span> <span class="comment">// <a class="link" href="bs_set.html#boost.intrusive.bs_setconstruct-copy-destruct">construct/copy/destruct</a></span> - <a class="link" href="bs_set.html#idm45971717154192-bb"><span class="identifier">bs_set</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">explicit</span> <a class="link" href="bs_set.html#idm45971717151040-bb"><span class="identifier">bs_set</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_compare</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="bs_set.html#idm25962-bb"><span class="identifier">bs_set</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">explicit</span> <a class="link" href="bs_set.html#idm25970-bb"><span class="identifier">bs_set</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_compare</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="bs_set.html#idm45971717145920-bb"><span class="identifier">bs_set</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="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> <span class="special">=</span> <span class="identifier">key_compare</span><span class="special">(</span><span class="special">)</span><span class="special">,</span> + <a class="link" href="bs_set.html#idm25976-bb"><span class="identifier">bs_set</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="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> <span class="special">=</span> <span class="identifier">key_compare</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="bs_set.html#idm45971717137456-bb"><span class="identifier">bs_set</span></a><span class="special">(</span><a class="link" href="bs_set.html" title="Class template bs_set">bs_set</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> - <a class="link" href="bs_set.html" title="Class template bs_set">bs_set</a> <span class="special">&</span> <a class="link" href="bs_set.html#idm45971717133152-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><a class="link" href="bs_set.html" title="Class template bs_set">bs_set</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> - <a class="link" href="bs_set.html#idm45971717130336-bb"><span class="special">~</span><span class="identifier">bs_set</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="bs_set.html#idm25989-bb"><span class="identifier">bs_set</span></a><span class="special">(</span><a class="link" href="bs_set.html" title="Class template bs_set">bs_set</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="bs_set.html" title="Class template bs_set">bs_set</a> <span class="special">&</span> <a class="link" href="bs_set.html#idm26000-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><a class="link" href="bs_set.html" title="Class template bs_set">bs_set</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="bs_set.html#idm26009-bb"><span class="special">~</span><span class="identifier">bs_set</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> - <span class="comment">// <a class="link" href="bs_set.html#idm45971717638928-bb">public member functions</a></span> - <span class="identifier">iterator</span> <a class="link" href="bs_set.html#idm45971717638368-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="bs_set.html#idm45971717634528-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="bs_set.html#idm45971717630688-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="bs_set.html#idm45971717626848-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="bs_set.html#idm45971717623008-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="bs_set.html#idm45971717619168-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">reverse_iterator</span> <a class="link" href="bs_set.html#idm45971717615328-bb"><span class="identifier">rbegin</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="identifier">const_reverse_iterator</span> <a class="link" href="bs_set.html#idm45971717611472-bb"><span class="identifier">rbegin</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_reverse_iterator</span> <a class="link" href="bs_set.html#idm45971717607616-bb"><span class="identifier">crbegin</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">reverse_iterator</span> <a class="link" href="bs_set.html#idm45971717603760-bb"><span class="identifier">rend</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="identifier">const_reverse_iterator</span> <a class="link" href="bs_set.html#idm45971717599904-bb"><span class="identifier">rend</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_reverse_iterator</span> <a class="link" href="bs_set.html#idm45971717596048-bb"><span class="identifier">crend</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="bs_set.html#idm45971717592192-bb"><span class="identifier">root</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="bs_set.html#idm45971717588320-bb"><span class="identifier">root</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="bs_set.html#idm45971717584448-bb"><span class="identifier">croot</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">key_compare</span> <a class="link" href="bs_set.html#idm45971717580576-bb"><span class="identifier">key_comp</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">value_compare</span> <a class="link" href="bs_set.html#idm45971717576720-bb"><span class="identifier">value_comp</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="bs_set.html#idm45971717572848-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="bs_set.html#idm45971717569024-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="bs_set.html#idm45971717565088-bb"><span class="identifier">swap</span></a><span class="special">(</span><a class="link" href="bs_set.html" title="Class template bs_set">bs_set</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="comment">// <a class="link" href="../interprocess/node_allocator.html#idm25088-bb">public member functions</a></span> + <span class="identifier">iterator</span> <a class="link" href="bs_set.html#idm25089-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="bs_set.html#idm25098-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="../interprocess/node_allocator.html#idm25107-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="bs_set.html#idm25116-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="bs_set.html#idm25125-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="bs_set.html#idm25134-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">reverse_iterator</span> <a class="link" href="../interprocess/node_allocator.html#idm25143-bb"><span class="identifier">rbegin</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">const_reverse_iterator</span> <a class="link" href="../container/stable_vector.html#idm25152-bb"><span class="identifier">rbegin</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_reverse_iterator</span> <a class="link" href="bs_set.html#idm25161-bb"><span class="identifier">crbegin</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">reverse_iterator</span> <a class="link" href="bs_set.html#idm25170-bb"><span class="identifier">rend</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">const_reverse_iterator</span> <a class="link" href="bs_set.html#idm25179-bb"><span class="identifier">rend</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_reverse_iterator</span> <a class="link" href="bs_set.html#idm25188-bb"><span class="identifier">crend</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="bs_set.html#idm25197-bb"><span class="identifier">root</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="bs_set.html#idm25206-bb"><span class="identifier">root</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="bs_set.html#idm25215-bb"><span class="identifier">croot</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">key_compare</span> <a class="link" href="bs_set.html#idm25224-bb"><span class="identifier">key_comp</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">value_compare</span> <a class="link" href="bs_set.html#idm25233-bb"><span class="identifier">value_comp</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="../container/stable_vector.html#idm25242-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="bs_set.html#idm25251-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="bs_set.html#idm25260-bb"><span class="identifier">swap</span></a><span class="special">(</span><a class="link" href="bs_set.html" title="Class template bs_set">bs_set</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="bs_set.html#idm45971717560544-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="bs_set.html" title="Class template bs_set">bs_set</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="../interprocess/private_adaptive_pool.html#idm25272-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="bs_set.html" title="Class template bs_set">bs_set</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="bs_set.html#idm45971717551488-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><a class="link" href="bs_set.html" title="Class template bs_set">bs_set</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">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="bs_set.html#idm45971717541680-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="identifier">reference</span><span class="special">)</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="bs_set.html#idm45971717535536-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">,</span> <span class="identifier">reference</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="../container/stable_vector.html#idm25294-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><a class="link" href="bs_set.html" title="Class template bs_set">bs_set</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">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="../interprocess/private_adaptive_pool.html#idm25318-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="identifier">reference</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="bs_set.html#idm25322-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">,</span> <span class="identifier">reference</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="bs_set.html#idm45971717528576-bb"><span class="identifier">insert_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> + <a class="link" href="bs_set.html#idm25328-bb"><span class="identifier">insert_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">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="bs_set.html#idm45971717522384-bb"><span class="identifier">insert_check</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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> + <a class="link" href="bs_set.html#idm25334-bb"><span class="identifier">insert_check</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> KeyType<span class="special">,</span> <span class="keyword">typename</span> KeyTypeKeyCompare<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="bs_set.html#idm45971717515408-bb"><span class="identifier">insert_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">KeyTypeKeyCompare</span><span class="special">,</span> <span class="identifier">insert_commit_data</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="bs_set.html#idm25342-bb"><span class="identifier">insert_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">KeyTypeKeyCompare</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="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> KeyType<span class="special">,</span> <span class="keyword">typename</span> KeyTypeKeyCompare<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="bs_set.html#idm45971717504000-bb"><span class="identifier">insert_check</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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">KeyTypeKeyCompare</span><span class="special">,</span> + <a class="link" href="bs_set.html#idm25353-bb"><span class="identifier">insert_check</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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">KeyTypeKeyCompare</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="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="bs_set.html#idm45971717491808-bb"><span class="identifier">insert</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">iterator</span> <a class="link" href="bs_set.html#idm45971717484016-bb"><span class="identifier">insert_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="identifier">iterator</span> <a class="link" href="bs_set.html#idm45971717475712-bb"><span class="identifier">insert_before</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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">void</span> <a class="link" href="bs_set.html#idm45971717468480-bb"><span class="identifier">push_back</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">void</span> <a class="link" href="bs_set.html#idm45971717461920-bb"><span class="identifier">push_front</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">iterator</span> <a class="link" href="bs_set.html#idm45971717455360-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="identifier">iterator</span> <a class="link" href="bs_set.html#idm45971717449872-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="bs_set.html#idm45971717443632-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> Iterator<span class="special">></span> <span class="keyword">void</span> <a class="link" href="../interprocess/private_adaptive_pool.html#idm25366-bb"><span class="identifier">insert</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">iterator</span> <a class="link" href="../interprocess/private_adaptive_pool.html#idm25385-bb"><span class="identifier">insert_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="identifier">iterator</span> <a class="link" href="../interprocess/private_adaptive_pool.html#idm25404-bb"><span class="identifier">insert_before</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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">void</span> <a class="link" href="bs_set.html#idm25421-bb"><span class="identifier">push_back</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">void</span> <a class="link" href="bs_set.html#idm25436-bb"><span class="identifier">push_front</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">iterator</span> <a class="link" href="bs_set.html#idm25451-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="identifier">iterator</span> <a class="link" href="bs_set.html#idm25455-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="bs_set.html#idm25461-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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">size_type</span> <a class="link" href="bs_set.html#idm45971717437584-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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">size_type</span> <a class="link" href="bs_set.html#idm25465-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">KeyTypeKeyCompare</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="identifier">iterator</span> <a class="link" href="bs_set.html#idm45971717427488-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="identifier">iterator</span> <a class="link" href="bs_set.html#idm25489-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="identifier">iterator</span> <a class="link" href="bs_set.html#idm45971717419584-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="identifier">iterator</span> <a class="link" href="bs_set.html#idm25497-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="bs_set.html#idm45971717410928-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="bs_set.html#idm25507-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> KeyTypeKeyCompare<span class="special">,</span> <span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="identifier">size_type</span> <a class="link" href="bs_set.html#idm45971717402400-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">KeyTypeKeyCompare</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="bs_set.html#idm45971717390176-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="bs_set.html#idm45971717385312-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="bs_set.html#idm45971717379008-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="identifier">size_type</span> <a class="link" href="../container/stable_vector.html#idm25515-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">KeyTypeKeyCompare</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="bs_set.html#idm25544-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/private_node_allocator.html#idm25555-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="bs_set.html#idm25569-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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">size_type</span> <a class="link" href="bs_set.html#idm45971717373936-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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="bs_set.html#idm45971717364880-bb"><span class="identifier">lower_bound</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="../interprocess/private_node_allocator.html#idm25573-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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="bs_set.html#idm25594-bb"><span class="identifier">lower_bound</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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a class="link" href="bs_set.html#idm45971717360128-bb"><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> - <span class="identifier">const_iterator</span> <a class="link" href="bs_set.html#idm45971717353280-bb"><span class="identifier">lower_bound</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="bs_set.html#idm25598-bb"><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">const_iterator</span> <a class="link" href="bs_set.html#idm25607-bb"><span class="identifier">lower_bound</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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">const_iterator</span> <a class="link" href="bs_set.html#idm45971717348256-bb"><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="bs_set.html#idm45971717341136-bb"><span class="identifier">upper_bound</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="bs_set.html#idm25611-bb"><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="bs_set.html#idm25620-bb"><span class="identifier">upper_bound</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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a class="link" href="bs_set.html#idm45971717336384-bb"><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> - <span class="identifier">const_iterator</span> <a class="link" href="bs_set.html#idm45971717327680-bb"><span class="identifier">upper_bound</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="bs_set.html#idm25624-bb"><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">const_iterator</span> <a class="link" href="bs_set.html#idm25645-bb"><span class="identifier">upper_bound</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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">const_iterator</span> <a class="link" href="bs_set.html#idm45971717322656-bb"><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="bs_set.html#idm45971717313680-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">const_iterator</span> <a class="link" href="bs_set.html#idm25649-bb"><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="bs_set.html#idm25670-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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a class="link" href="bs_set.html#idm45971717308944-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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> - <span class="identifier">const_iterator</span> <a class="link" href="bs_set.html#idm45971717300208-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="bs_set.html#idm25674-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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">const_iterator</span> <a class="link" href="bs_set.html#idm25695-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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">const_iterator</span> <a class="link" href="bs_set.html#idm45971717295200-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">KeyTypeKeyCompare</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="bs_set.html#idm45971717286192-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="bs_set.html#idm25699-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">KeyTypeKeyCompare</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="bs_set.html#idm25720-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> KeyTypeKeyCompare<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="bs_set.html#idm45971717281360-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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="bs_set.html#idm25724-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">KeyTypeKeyCompare</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="bs_set.html#idm45971717272528-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="bs_set.html#idm25745-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> KeyTypeKeyCompare<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="bs_set.html#idm45971717267408-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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <a class="link" href="bs_set.html#idm25749-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">KeyTypeKeyCompare</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="bs_set.html#idm45971717258288-bb"><span class="identifier">bounded_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="identifier">key_type</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="bs_set.html#idm25770-bb"><span class="identifier">bounded_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="identifier">key_type</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</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> KeyTypeKeyCompare<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="bs_set.html#idm45971717245856-bb"><span class="identifier">bounded_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="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> + <a class="link" href="bs_set.html#idm25780-bb"><span class="identifier">bounded_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="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</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="bs_set.html#idm45971717229056-bb"><span class="identifier">bounded_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="identifier">key_type</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <a class="link" href="bs_set.html#idm25822-bb"><span class="identifier">bounded_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="identifier">key_type</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</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> KeyTypeKeyCompare<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="bs_set.html#idm45971717216336-bb"><span class="identifier">bounded_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="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> + <a class="link" href="bs_set.html#idm25832-bb"><span class="identifier">bounded_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="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="bs_set.html#idm45971717199248-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="bs_set.html#idm45971717193760-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">pointer</span> <a class="link" href="bs_set.html#idm45971717188272-bb"><span class="identifier">unlink_leftmost_without_rebalance</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="bs_set.html#idm45971717183360-bb"><span class="identifier">replace_node</span></a><span class="special">(</span><span class="identifier">iterator</span><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">void</span> <a class="link" href="bs_set.html#idm45971717176096-bb"><span class="identifier">remove_node</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">template</span><span class="special"><</span><span class="keyword">class</span> <span class="special">...</span> Options2<span class="special">></span> <span class="keyword">void</span> <a class="link" href="bs_set.html#idm45971717170256-bb"><span class="identifier">merge</span></a><span class="special">(</span><a class="link" href="bs_set.html" title="Class template bs_set">bs_set</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</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">class</span> <span class="special">...</span> Options2<span class="special">></span> <span class="keyword">void</span> <a class="link" href="bs_set.html#idm45971717162304-bb"><span class="identifier">merge</span></a><span class="special">(</span><a class="link" href="bs_multiset.html" title="Class template bs_multiset">bs_multiset</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="bs_set.html#idm25874-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="../container/stable_vector.html#idm25878-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">pointer</span> <a class="link" href="bs_set.html#idm25882-bb"><span class="identifier">unlink_leftmost_without_rebalance</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="../interprocess/bad_alloc.html#idm25893-bb"><span class="identifier">replace_node</span></a><span class="special">(</span><span class="identifier">iterator</span><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">void</span> <a class="link" href="bs_set.html#idm25910-bb"><span class="identifier">remove_node</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">template</span><span class="special"><</span><span class="keyword">class</span> <span class="special">...</span> Options2<span class="special">></span> <span class="keyword">void</span> <a class="link" href="bs_set.html#idm25924-bb"><span class="identifier">merge</span></a><span class="special">(</span><a class="link" href="bs_set.html" title="Class template bs_set">bs_set</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</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">class</span> <span class="special">...</span> Options2<span class="special">></span> <span class="keyword">void</span> <a class="link" href="bs_set.html#idm25943-bb"><span class="identifier">merge</span></a><span class="special">(</span><a class="link" href="bs_multiset.html" title="Class template bs_multiset">bs_multiset</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> - <span class="comment">// <a class="link" href="bs_set.html#idm45971717126432-bb">public static functions</a></span> - <span class="keyword">static</span> <a class="link" href="bs_set.html" title="Class template bs_set">bs_set</a> <span class="special">&</span> <a class="link" href="bs_set.html#idm45971717125872-bb"><span class="identifier">container_from_end_iterator</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="bs_set.html" title="Class template bs_set">bs_set</a> <span class="special">&</span> <a class="link" href="bs_set.html#idm45971717119856-bb"><span class="identifier">container_from_end_iterator</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">static</span> <a class="link" href="bs_set.html" title="Class template bs_set">bs_set</a> <span class="special">&</span> <a class="link" href="bs_set.html#idm45971717113680-bb"><span class="identifier">container_from_iterator</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="bs_set.html" title="Class template bs_set">bs_set</a> <span class="special">&</span> <a class="link" href="bs_set.html#idm45971717107712-bb"><span class="identifier">container_from_iterator</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">static</span> <span class="identifier">iterator</span> <a class="link" href="bs_set.html#idm45971717101584-bb"><span class="identifier">s_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_iterator</span> <a class="link" href="bs_set.html#idm45971717094496-bb"><span class="identifier">s_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="keyword">void</span> <a class="link" href="bs_set.html#idm45971717087408-bb"><span class="identifier">init_node</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="comment">// <a class="link" href="bs_set.html#idm26018-bb">public static functions</a></span> + <span class="keyword">static</span> <a class="link" href="bs_set.html" title="Class template bs_set">bs_set</a> <span class="special">&</span> <a class="link" href="bs_set.html#idm26019-bb"><span class="identifier">container_from_end_iterator</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="bs_set.html" title="Class template bs_set">bs_set</a> <span class="special">&</span> <a class="link" href="bs_set.html#idm26024-bb"><span class="identifier">container_from_end_iterator</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">static</span> <a class="link" href="bs_set.html" title="Class template bs_set">bs_set</a> <span class="special">&</span> <a class="link" href="bs_set.html#idm26029-bb"><span class="identifier">container_from_iterator</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="bs_set.html" title="Class template bs_set">bs_set</a> <span class="special">&</span> <a class="link" href="bs_set.html#idm26034-bb"><span class="identifier">container_from_iterator</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">static</span> <span class="identifier">iterator</span> <a class="link" href="bs_set.html#idm26039-bb"><span class="identifier">s_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_iterator</span> <a class="link" href="bs_set.html#idm26043-bb"><span class="identifier">s_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="keyword">void</span> <a class="link" href="bs_set.html#idm26047-bb"><span class="identifier">init_node</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="comment">// public data members</span> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">bool</span> <span class="identifier">constant_time_size</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.7.4.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.7.4.4"></a><h2>Description</h2> <p>The class template <a class="link" href="bs_set.html" title="Class template bs_set">bs_set</a> is an intrusive container, that mimics most of the interface of std::set as described in the C++ standard.</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> <p>The container supports the following options: <code class="computeroutput">base_hook<>/member_hook<>/value_traits<></code>, <code class="computeroutput">constant_time_size<></code>, <code class="computeroutput">size_type<></code> and <code class="computeroutput">compare<></code>. </p> <div class="refsect2"> -<a name="id-1.3.20.42.7.4.4.5"></a><h3> +<a name="id-1.3.18.42.7.4.4.5"></a><h3> <a name="boost.intrusive.bs_setconstruct-copy-destruct"></a><code class="computeroutput">bs_set</code> public construct/copy/destruct</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> <li class="listitem"> -<pre class="literallayout"><a name="idm45971717154192-bb"></a><span class="identifier">bs_set</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm25962-bb"></a><span class="identifier">bs_set</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Constructs an empty container.</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 constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor of the key_compare object throws. Basic guarantee. </p> +<p><span class="bold"><strong>Throws</strong></span>: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor of the key_compare object throws. Basic guarantee. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="keyword">explicit</span> <a name="idm25970-bb"></a><span class="identifier">bs_set</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> cmp<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></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="idm25976-bb"></a><span class="identifier">bs_set</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="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> cmp <span class="special">=</span> <span class="identifier">key_compare</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></li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">explicit</span> <a name="idm45971717151040-bb"></a><span class="identifier">bs_set</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> cmp<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> -<p><span class="bold"><strong>Effects</strong></span>: Constructs an empty container with given comparison and traits.</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 constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor of the key_compare object throws. Basic guarantee. </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> - <a name="idm45971717145920-bb"></a><span class="identifier">bs_set</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="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> cmp <span class="special">=</span> <span class="identifier">key_compare</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> -<p><span class="bold"><strong>Requires</strong></span>: Dereferencing iterator must yield an lvalue of type value_type. cmp must be a comparison function that induces a strict weak ordering.</p> -<p><span class="bold"><strong>Effects</strong></span>: Constructs an empty container and inserts elements from [b, e).</p> -<p><span class="bold"><strong>Complexity</strong></span>: Linear in N if [b, e) is already sorted using comp and otherwise N * log N, where N is the distance between first and last.</p> -<p><span class="bold"><strong>Throws</strong></span>: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor/operator() of the key_compare object throws. Basic guarantee. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><a name="idm45971717137456-bb"></a><span class="identifier">bs_set</span><span class="special">(</span><a class="link" href="bs_set.html" title="Class template bs_set">bs_set</a> <span class="special">&&</span> x<span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm25989-bb"></a><span class="identifier">bs_set</span><span class="special">(</span><a class="link" href="bs_set.html" title="Class template bs_set">bs_set</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 comparison object and value traits are move constructed and nodes belonging to x (except the node representing the "end") 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 the comparison objet throws. </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 the comparison objet throws. </p> </li> <li class="listitem"> -<pre class="literallayout"><a class="link" href="bs_set.html" title="Class template bs_set">bs_set</a> <span class="special">&</span> <a name="idm45971717133152-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><a class="link" href="bs_set.html" title="Class template bs_set">bs_set</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> +<pre class="literallayout"><a class="link" href="bs_set.html" title="Class template bs_set">bs_set</a> <span class="special">&</span> <a name="idm26000-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><a class="link" href="bs_set.html" title="Class template bs_set">bs_set</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="idm45971717130336-bb"></a><span class="special">~</span><span class="identifier">bs_set</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm26009-bb"></a><span class="special">~</span><span class="identifier">bs_set</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 set are not deleted (i.e. no destructors are called), but the nodes according to the <code class="computeroutput"><a class="link" href="value_traits.html" title="Struct template value_traits">value_traits</a></code> template parameter are reinitialized and thus can be reused.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to elements contained in *this.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> </ol></div> </div> <div class="refsect2"> -<a name="id-1.3.20.42.7.4.4.6"></a><h3> -<a name="idm45971717638928-bb"></a><code class="computeroutput">bs_set</code> public member functions</h3> +<a name="id-1.3.18.42.7.4.4.6"></a><h3> +<a name="idm25088-bb"></a><code class="computeroutput">bs_set</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="idm45971717638368-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="idm25089-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971717634528-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="idm25098-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971717630688-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="idm25107-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971717626848-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="idm25116-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971717623008-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="idm25125-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971717619168-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="idm25134-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">reverse_iterator</span> <a name="idm45971717615328-bb"></a><span class="identifier">rbegin</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">reverse_iterator</span> <a name="idm25143-bb"></a><span class="identifier">rbegin</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 a reverse_iterator pointing to the beginning of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45971717611472-bb"></a><span class="identifier">rbegin</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_reverse_iterator</span> <a name="idm25152-bb"></a><span class="identifier">rbegin</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_reverse_iterator pointing to the beginning of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45971717607616-bb"></a><span class="identifier">crbegin</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_reverse_iterator</span> <a name="idm25161-bb"></a><span class="identifier">crbegin</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_reverse_iterator pointing to the beginning of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">reverse_iterator</span> <a name="idm45971717603760-bb"></a><span class="identifier">rend</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">reverse_iterator</span> <a name="idm25170-bb"></a><span class="identifier">rend</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 a reverse_iterator pointing to the end of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45971717599904-bb"></a><span class="identifier">rend</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_reverse_iterator</span> <a name="idm25179-bb"></a><span class="identifier">rend</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_reverse_iterator pointing to the end of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45971717596048-bb"></a><span class="identifier">crend</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_reverse_iterator</span> <a name="idm25188-bb"></a><span class="identifier">crend</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_reverse_iterator pointing to the end of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971717592192-bb"></a><span class="identifier">root</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="idm25197-bb"></a><span class="identifier">root</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 a iterator pointing to the root node of the container or end() if not present.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971717588320-bb"></a><span class="identifier">root</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="idm25206-bb"></a><span class="identifier">root</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 root node of the container or cend() if not present.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971717584448-bb"></a><span class="identifier">croot</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="idm25215-bb"></a><span class="identifier">croot</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 root node of the container or cend() if not present.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">key_compare</span> <a name="idm45971717580576-bb"></a><span class="identifier">key_comp</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_compare</span> <a name="idm25224-bb"></a><span class="identifier">key_comp</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_compare object used by the container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: If key_compare copy-constructor throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If key_compare copy-constructor throws. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">value_compare</span> <a name="idm45971717576720-bb"></a><span class="identifier">value_comp</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">value_compare</span> <a name="idm25233-bb"></a><span class="identifier">value_comp</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 value_compare object used by the container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: If value_compare copy-constructor throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If value_compare copy-constructor throws. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">bool</span> <a name="idm45971717572848-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="idm25242-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>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971717569024-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="idm25251-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to elements contained in *this if constant-time size option is disabled. Constant time otherwise.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971717565088-bb"></a><span class="identifier">swap</span><span class="special">(</span><a class="link" href="bs_set.html" title="Class template bs_set">bs_set</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="idm25260-bb"></a><span class="identifier">swap</span><span class="special">(</span><a class="link" href="bs_set.html" title="Class template bs_set">bs_set</a> <span class="special">&</span> other<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Swaps the contents of two containers.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comparison functor's swap call throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If the comparison functor's swap call throws. </p> </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="idm45971717560544-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="bs_set.html" title="Class template bs_set">bs_set</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="idm25272-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="bs_set.html" title="Class template bs_set">bs_set</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 equivalent to the original nodes.</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. Copies the predicate from the source container.</p> <p>If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to erased plus inserted elements.</p> -<p><span class="bold"><strong>Throws</strong></span>: If cloner throws or predicate copy assignment throws. Basic guarantee. </p> +<p><span class="bold"><strong>Throws</strong></span>: If cloner throws or predicate copy assignment throws. Basic guarantee. </p> </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="idm45971717551488-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><a class="link" href="bs_set.html" title="Class template bs_set">bs_set</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="idm25294-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><a class="link" href="bs_set.html" title="Class template bs_set">bs_set</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 equivalent to the original nodes.</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. Copies the predicate from the source container.</p> <p>If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to erased plus inserted elements.</p> <p><span class="bold"><strong>Throws</strong></span>: If cloner throws or predicate copy assignment throws. Basic guarantee.</p> -<p><span class="bold"><strong>Note</strong></span>: This version can modify the source container, useful to implement move semantics. </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="idm45971717541680-bb"></a><span class="identifier">insert</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 value into the container if the value is not already present.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Average complexity for insert element is at most logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comparison functor call throws.</p> -<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">iterator</span> <a name="idm45971717535536-bb"></a><span class="identifier">insert</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<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, and "hint" must be a valid iterator</p> -<p><span class="bold"><strong>Effects</strong></span>: Tries to insert x into the container, using "hint" as a hint to where it will be inserted.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic in general, but it is amortized constant time (two comparisons in the worst case) if t is inserted immediately before hint.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comparison functor call throws.</p> -<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="idm45971717528576-bb"></a><span class="identifier">insert_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 container, 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 complexity is at most logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comp ordering function throws. Strong guarantee. </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="idm45971717522384-bb"></a><span class="identifier">insert_check</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<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 container, using a user provided key instead of the value itself, using "hint" as a hint to where it will be inserted.</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>: Logarithmic in general, but it's amortized constant time if t is inserted immediately before hint.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comp ordering function throws. Strong guarantee. </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> KeyTypeKeyCompare<span class="special">></span> +<p><span class="bold"><strong>Note</strong></span>: This version can modify the source container, useful to implement move semantics. </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="idm25318-bb"></a><span class="identifier">insert</span><span class="special">(</span><span class="identifier">reference</span> value<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm25322-bb"></a><span class="identifier">insert</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<span class="special">,</span> <span class="identifier">reference</span> value<span class="special">)</span><span class="special">;</span></pre></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="idm25328-bb"></a><span class="identifier">insert_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></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="idm25334-bb"></a><span class="identifier">insert_check</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<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></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> KeyTypeKeyCompare<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="idm45971717515408-bb"></a><span class="identifier">insert_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">KeyTypeKeyCompare</span> comp<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>: comp must be a comparison function that induces the same strict weak ordering as key_compare. The difference is that comp compares an arbitrary key with the contained values.</p> -<p><span class="bold"><strong>Effects</strong></span>: Checks if a value can be inserted in the container, 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 complexity is at most logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comp ordering function throws. Strong guarantee.</p> -<p><span class="bold"><strong>Notes</strong></span>: This function is used to improve performance when constructing a value_type is expensive: if there is an equivalent value the constructed object must be discarded. Many times, the part of the node that is used to impose the order is much cheaper to construct than the value_type and this function offers the possibility to use that part to check if the insertion will be successful.</p> -<p>If the check is successful, the user can construct the value_type and use "insert_commit" to insert the object in constant-time. This gives a total logarithmic complexity to the insertion: check(O(log(N)) + commit(O(1)).</p> -<p>"commit_data" remains valid for a subsequent "insert_commit" only if no more objects are inserted or erased from the container. </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> KeyTypeKeyCompare<span class="special">></span> + <a name="idm25342-bb"></a><span class="identifier">insert_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">KeyTypeKeyCompare</span> comp<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></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> KeyTypeKeyCompare<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="idm45971717504000-bb"></a><span class="identifier">insert_check</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<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">KeyTypeKeyCompare</span> comp<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>: comp must be a comparison function that induces the same strict weak ordering as key_compare. The difference is that comp compares an arbitrary key with the contained values.</p> -<p><span class="bold"><strong>Effects</strong></span>: Checks if a value can be inserted in the container, using a user provided key instead of the value itself, using "hint" as a hint to where it will be inserted.</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>: Logarithmic in general, but it's amortized constant time if t is inserted immediately before hint.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comp ordering function throws. Strong guarantee.</p> -<p><span class="bold"><strong>Notes</strong></span>: This function is used to improve performance when constructing a value_type is expensive: if there is an equivalent value the constructed object must be discarded. Many times, the part of the constructing that is used to impose the order is much cheaper to construct than the value_type and this function offers the possibility to use that key to check if the insertion will be successful.</p> -<p>If the check is successful, the user can construct the value_type and use "insert_commit" to insert the object in constant-time. This can give a total constant-time complexity to the insertion: check(O(1)) + commit(O(1)).</p> -<p>"commit_data" remains valid for a subsequent "insert_commit" only if no more objects are inserted or erased from the container. </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="idm45971717491808-bb"></a><span class="identifier">insert</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> + <a name="idm25353-bb"></a><span class="identifier">insert_check</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<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">KeyTypeKeyCompare</span> comp<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></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="idm25366-bb"></a><span class="identifier">insert</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>: Tries to insert each element of a range into the container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Insert range is in general O(N * log(N)), where N is the size of the range. However, it is linear in N if the range is already sorted by value_comp().</p> <p><span class="bold"><strong>Throws</strong></span>: If the comparison functor call throws.</p> -<p><span class="bold"><strong>Note</strong></span>: Does not affect the validity of iterators and references. No copy-constructors are called. </p> +<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">iterator</span> <a name="idm45971717484016-bb"></a><span class="identifier">insert_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="idm25385-bb"></a><span class="identifier">insert_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 container 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 container using the information obtained from the "commit_data" that a previous "insert_check" filled.</p> <p><span class="bold"><strong>Returns</strong></span>: An iterator to the newly inserted object.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Notes</strong></span>: This function has only sense if a "insert_check" has been previously executed to fill "commit_data". No value should be inserted or erased between the "insert_check" and "insert_commit" calls. </p> +<p><span class="bold"><strong>Notes</strong></span>: This function has only sense if a "insert_check" has been previously executed to fill "commit_data". No value should be inserted or erased between the "insert_check" and "insert_commit" calls. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971717475712-bb"></a><span class="identifier">insert_before</span><span class="special">(</span><span class="identifier">const_iterator</span> pos<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="idm25404-bb"></a><span class="identifier">insert_before</span><span class="special">(</span><span class="identifier">const_iterator</span> pos<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, "pos" must be a valid iterator (or end) and must be the succesor of value once inserted according to the predicate</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts x into the container before "pos".</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if "pos" is not the successor of "value" container ordering invariant will be broken. This is a low-level function to be used only for performance reasons by advanced users. </p> +<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if "pos" is not the successor of "value" container ordering invariant will be broken. This is a low-level function to be used only for performance reasons by advanced users. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971717468480-bb"></a><span class="identifier">push_back</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">void</span> <a name="idm25421-bb"></a><span class="identifier">push_back</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 it must be no less than the greatest inserted key</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts x into the container in the last position.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if value is less than the greatest inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users. </p> +<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if value is less than the greatest inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971717461920-bb"></a><span class="identifier">push_front</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">void</span> <a name="idm25436-bb"></a><span class="identifier">push_front</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 it must be no greater than the minimum inserted key</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts x into the container in the first position.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if value is greater than the minimum inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971717455360-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 complexity for erase element is constant time.</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">iterator</span> <a name="idm45971717449872-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 complexity for erase range is at most O(log(size() + N)), where N is the number of elements in the range.</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="idm45971717443632-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>: O(log(size() + N).</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> +<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if value is greater than the minimum inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm25451-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm25455-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">size_type</span> <a name="idm25461-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></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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971717437584-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <span class="identifier">size_type</span> <a name="idm25465-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Erases all the elements with the given key. according to the comparison functor "comp".</p> <p><span class="bold"><strong>Returns</strong></span>: The number of erased elements.</p> <p><span class="bold"><strong>Complexity</strong></span>: O(log(size() + N).</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="identifier">iterator</span> <a name="idm45971717427488-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 complexity for erase element is constant time.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<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">template</span><span class="special"><</span><span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="identifier">iterator</span> <a name="idm45971717419584-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> -<p><span class="bold"><strong>Complexity</strong></span>: Average complexity for erase range is at most O(log(size() + N)), where N is the number of elements in the range.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<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">template</span><span class="special"><</span><span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971717410928-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> -<p><span class="bold"><strong>Complexity</strong></span>: O(log(size() + N).</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> +<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="identifier">iterator</span> <a name="idm25489-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></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">iterator</span> <a name="idm25497-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></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="idm25507-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></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> KeyTypeKeyCompare<span class="special">,</span> <span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971717402400-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">KeyTypeKeyCompare</span> comp<span class="special">,</span> + <span class="identifier">size_type</span> <a name="idm25515-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">KeyTypeKeyCompare</span> comp<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>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk) and nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Requires</strong></span>: Disposer::operator()(pointer) shouldn't throw.</p> @@ -556,168 +459,102 @@ <p><span class="bold"><strong>Returns</strong></span>: The number of erased elements.</p> <p><span class="bold"><strong>Complexity</strong></span>: O(log(size() + N).</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: Invalidates the iterators to the erased elements. </p> +<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="idm45971717390176-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="idm25544-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> +<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="idm45971717385312-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="idm25555-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>Effects</strong></span>: Erases all of the elements calling disposer(p) for each node to be erased. <span class="bold"><strong>Complexity</strong></span>: Average complexity for is at most O(log(size() + N)), where N is the number of elements in the container.</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. Calls N times to disposer functor. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">size_type</span> <a name="idm45971717379008-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>: Logarithmic to the number of elements contained plus lineal to number of objects with the given value.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Note</strong></span>: Invalidates the iterators (but not the references) to the erased elements. Calls N times to disposer functor. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">size_type</span> <a name="idm25569-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></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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971717373936-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> + <span class="identifier">size_type</span> <a name="idm25573-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns the number of contained elements with the given key</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic to the number of elements contained plus lineal to number of objects with the given key.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971717364880-bb"></a><span class="identifier">lower_bound</span><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></pre> -<p><span class="bold"><strong>Effects</strong></span>: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> 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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a name="idm45971717360128-bb"></a><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Effects</strong></span>: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> </li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971717353280-bb"></a><span class="identifier">lower_bound</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 an iterator to the first element whose key is not less than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> 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> KeyTypeKeyCompare<span class="special">></span> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm25594-bb"></a><span class="identifier">lower_bound</span><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></pre></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> KeyTypeKeyCompare<span class="special">></span> + <span class="identifier">iterator</span> <a name="idm25598-bb"></a><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm25607-bb"></a><span class="identifier">lower_bound</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></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> KeyTypeKeyCompare<span class="special">></span> <span class="identifier">const_iterator</span> - <a name="idm45971717348256-bb"></a><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Effects</strong></span>: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971717341136-bb"></a><span class="identifier">upper_bound</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 an iterator to the first element whose key is greater than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> -</li> + <a name="idm25611-bb"></a><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm25620-bb"></a><span class="identifier">upper_bound</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></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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a name="idm45971717336384-bb"></a><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <span class="identifier">iterator</span> <a name="idm25624-bb"></a><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns an iterator to the first element whose key is greater than k according to comp or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971717327680-bb"></a><span class="identifier">upper_bound</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 an iterator to the first element whose key is greater than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm25645-bb"></a><span class="identifier">upper_bound</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></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> KeyTypeKeyCompare<span class="special">></span> <span class="identifier">const_iterator</span> - <a name="idm45971717322656-bb"></a><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> + <a name="idm25649-bb"></a><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns an iterator to the first element whose key is greater than k according to comp or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971717313680-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 whose key is k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm25670-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></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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a name="idm45971717308944-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <span class="identifier">iterator</span> <a name="idm25674-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Finds an iterator to the first element whose key is k or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971717300208-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 an iterator to the first element whose key is k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm25695-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></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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">const_iterator</span> <a name="idm45971717295200-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> + <span class="identifier">const_iterator</span> <a name="idm25699-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Finds an iterator to the first element whose key is k or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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="idm45971717286192-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>: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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="idm25720-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></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> KeyTypeKeyCompare<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="idm45971717281360-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <a name="idm25724-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">></span> -<a name="idm45971717272528-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>: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">></span> +<a name="idm25745-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></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> KeyTypeKeyCompare<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="idm45971717267408-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> + <a name="idm25749-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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="idm45971717258288-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> upper_key<span class="special">,</span> - <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: <code class="computeroutput">upper_key</code> shall not precede <code class="computeroutput">lower_key</code> according to key_compare. [key_comp()(upper_key, lower_key) shall be false]</p> -<p>If <code class="computeroutput">lower_key</code> is equivalent to <code class="computeroutput">upper_key</code> [!key_comp()(upper_key, lower_key) && !key_comp()(lower_key, upper_key)] then ('left_closed' || 'right_closed') must be false.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns an a pair with the following criteria:</p> -<p>first = lower_bound(lower_key) if left_closed, upper_bound(lower_key) otherwise</p> -<p>second = upper_bound(upper_key) if right_closed, lower_bound(upper_key) otherwise</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws.</p> -<p><span class="bold"><strong>Note</strong></span>: This function can be more efficient than calling upper_bound and lower_bound for lower_value and upper_value.</p> -<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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="idm25770-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> upper_key<span class="special">,</span> + <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span><span class="special">;</span></pre></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> KeyTypeKeyCompare<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="idm45971717245856-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> + <a name="idm25780-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span> comp<span class="special">,</span> <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: <code class="computeroutput">lower_key</code> is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, lower_key) if left_closed is true, with respect to !comp(lower_key, nk) otherwise.</p> <p><code class="computeroutput">upper_key</code> is a value such that <code class="computeroutput">*this</code> is partitioned with respect to !comp(upper_key, nk) if right_closed is true, with respect to comp(nk, upper_key) otherwise.</p> @@ -729,26 +566,15 @@ <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> <p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws.</p> <p><span class="bold"><strong>Note</strong></span>: This function can be more efficient than calling upper_bound and lower_bound for lower_key and upper_key.</p> -<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </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">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">></span> -<a name="idm45971717229056-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> upper_key<span class="special">,</span> - <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: <code class="computeroutput">upper_key</code> shall not precede <code class="computeroutput">lower_key</code> according to key_compare. [key_comp()(upper_key, lower_key) shall be false]</p> -<p>If <code class="computeroutput">lower_key</code> is equivalent to <code class="computeroutput">upper_key</code> [!key_comp()(upper_key, lower_key) && !key_comp()(lower_key, upper_key)] then ('left_closed' || 'right_closed') must be false.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns an a pair with the following criteria:</p> -<p>first = lower_bound(lower_key) if left_closed, upper_bound(lower_key) otherwise</p> -<p>second = upper_bound(upper_key) if right_closed, lower_bound(upper_key) otherwise</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws.</p> -<p><span class="bold"><strong>Note</strong></span>: This function can be more efficient than calling upper_bound and lower_bound for lower_value and upper_value.</p> -<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </p> +<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </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">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">></span> +<a name="idm25822-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> upper_key<span class="special">,</span> + <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></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> KeyTypeKeyCompare<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="idm45971717216336-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> + <a name="idm25832-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span> comp<span class="special">,</span> <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: <code class="computeroutput">lower_key</code> is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, lower_key) if left_closed is true, with respect to !comp(lower_key, nk) otherwise.</p> <p><code class="computeroutput">upper_key</code> is a value such that <code class="computeroutput">*this</code> is partitioned with respect to !comp(upper_key, nk) if right_closed is true, with respect to comp(nk, upper_key) otherwise.</p> @@ -760,133 +586,73 @@ <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> <p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws.</p> <p><span class="bold"><strong>Note</strong></span>: This function can be more efficient than calling upper_bound and lower_bound for lower_key and upper_key.</p> -<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971717199248-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 set of appropriate type. Otherwise the behavior is undefined.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns: a valid iterator i belonging to the set 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_iterator</span> <a name="idm45971717193760-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 set of appropriate type. Otherwise the behavior is undefined.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns: a valid const_iterator i belonging to the set 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> +<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm25874-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm25878-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></li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">pointer</span> <a name="idm45971717188272-bb"></a><span class="identifier">unlink_leftmost_without_rebalance</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">pointer</span> <a name="idm25882-bb"></a><span class="identifier">unlink_leftmost_without_rebalance</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>: Unlinks the leftmost node from the container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Average complexity is constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Notes</strong></span>: This function breaks the container and the container can only be used for more unlink_leftmost_without_rebalance calls. This function is normally used to achieve a step by step controlled destruction of the container. </p> +<p><span class="bold"><strong>Notes</strong></span>: This function breaks the container and the container can only be used for more unlink_leftmost_without_rebalance calls. This function is normally used to achieve a step by step controlled destruction of the container. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971717183360-bb"></a><span class="identifier">replace_node</span><span class="special">(</span><span class="identifier">iterator</span> replace_this<span class="special">,</span> <span class="identifier">reference</span> with_this<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">void</span> <a name="idm25893-bb"></a><span class="identifier">replace_node</span><span class="special">(</span><span class="identifier">iterator</span> replace_this<span class="special">,</span> <span class="identifier">reference</span> with_this<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: replace_this must be a valid iterator of *this and with_this must not be inserted in any container.</p> <p><span class="bold"><strong>Effects</strong></span>: Replaces replace_this in its position in the container with with_this. The container does not need to be rebalanced.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: This function will break container ordering invariants if with_this is not equivalent to *replace_this according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing or comparison is needed. </p> +<p><span class="bold"><strong>Note</strong></span>: This function will break container ordering invariants if with_this is not equivalent to *replace_this according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing or comparison is needed. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971717176096-bb"></a><span class="identifier">remove_node</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">void</span> <a name="idm25910-bb"></a><span class="identifier">remove_node</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>Effects</strong></span>: removes "value" from the container.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic time.</p> <p><span class="bold"><strong>Note</strong></span>: This static function is only usable with non-constant time size containers that have stateless comparison functors.</p> -<p>If the user calls this function with a constant time size container or stateful comparison functor a compilation error will be issued. </p> +<p>If the user calls this function with a constant time size container or stateful comparison functor a compilation error will be issued. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="special">...</span> Options2<span class="special">></span> <span class="keyword">void</span> <a name="idm45971717170256-bb"></a><span class="identifier">merge</span><span class="special">(</span><a class="link" href="bs_set.html" title="Class template bs_set">bs_set</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span> source<span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="special">...</span> Options2<span class="special">></span> <span class="keyword">void</span> <a name="idm25924-bb"></a><span class="identifier">merge</span><span class="special">(</span><a class="link" href="bs_set.html" title="Class template bs_set">bs_set</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span> source<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "source" container's Options can only can differ in the comparison function from *this.</p> <p><span class="bold"><strong>Effects</strong></span>: Attempts to extract each element in source and insert it into a using the comparison object of *this. If there is an element in a with key equivalent to the key of an element from source, then that element is not extracted from source.</p> <p><span class="bold"><strong>Postcondition</strong></span>: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing unless the comparison object throws.</p> -<p><span class="bold"><strong>Complexity</strong></span>: N log(a.size() + N) (N has the value source.size()) </p> +<p><span class="bold"><strong>Complexity</strong></span>: N log(a.size() + N) (N has the value source.size()) </p> </li> <li class="listitem"> <pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="special">...</span> Options2<span class="special">></span> - <span class="keyword">void</span> <a name="idm45971717162304-bb"></a><span class="identifier">merge</span><span class="special">(</span><a class="link" href="bs_multiset.html" title="Class template bs_multiset">bs_multiset</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span> source<span class="special">)</span><span class="special">;</span></pre> + <span class="keyword">void</span> <a name="idm25943-bb"></a><span class="identifier">merge</span><span class="special">(</span><a class="link" href="bs_multiset.html" title="Class template bs_multiset">bs_multiset</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span> source<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "source" container's Options can only can differ in the comparison function from *this.</p> <p><span class="bold"><strong>Effects</strong></span>: Attempts to extract each element in source and insert it into a using the comparison object of *this. If there is an element in a with key equivalent to the key of an element from source, then that element is not extracted from source.</p> <p><span class="bold"><strong>Postcondition</strong></span>: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing unless the comparison object throws.</p> -<p><span class="bold"><strong>Complexity</strong></span>: N log(a.size() + N) (N has the value source.size()) </p> +<p><span class="bold"><strong>Complexity</strong></span>: N log(a.size() + N) (N has the value source.size()) </p> </li> </ol></div> </div> <div class="refsect2"> -<a name="id-1.3.20.42.7.4.4.7"></a><h3> -<a name="idm45971717126432-bb"></a><code class="computeroutput">bs_set</code> public static functions</h3> +<a name="id-1.3.18.42.7.4.4.7"></a><h3> +<a name="idm26018-bb"></a><code class="computeroutput">bs_set</code> public static functions</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <a class="link" href="bs_set.html" title="Class template bs_set">bs_set</a> <span class="special">&</span> <a name="idm45971717125872-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Precondition</strong></span>: end_iterator must be a valid end iterator of the container.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the container associated to the end iterator</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Constant. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="bs_set.html" title="Class template bs_set">bs_set</a> <span class="special">&</span> -<a name="idm45971717119856-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">const_iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Precondition</strong></span>: end_iterator must be a valid end iterator of the container.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the container associated to the end iterator</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Constant. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <a class="link" href="bs_set.html" title="Class template bs_set">bs_set</a> <span class="special">&</span> <a name="idm45971717113680-bb"></a><span class="identifier">container_from_iterator</span><span class="special">(</span><span class="identifier">iterator</span> it<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Precondition</strong></span>: it must be a valid iterator of the container.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the container associated to the iterator</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="bs_set.html" title="Class template bs_set">bs_set</a> <span class="special">&</span> <a name="idm45971717107712-bb"></a><span class="identifier">container_from_iterator</span><span class="special">(</span><span class="identifier">const_iterator</span> it<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Precondition</strong></span>: it must be a valid iterator of the container.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the container associated to the iterator</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="identifier">iterator</span> <a name="idm45971717101584-bb"></a><span class="identifier">s_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 set of appropriate type. Otherwise the behavior is undefined.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns: a valid iterator i belonging to the set 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> -<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">const_iterator</span> <a name="idm45971717094496-bb"></a><span class="identifier">s_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 set of appropriate type. Otherwise the behavior is undefined.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns: a valid iterator i belonging to the set 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> -<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="keyword">void</span> <a name="idm45971717087408-bb"></a><span class="identifier">init_node</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 shall not be in a container.</p> -<p><span class="bold"><strong>Effects</strong></span>: init_node puts the hook of a value in a well-known default state.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> -<p><span class="bold"><strong>Note</strong></span>: This function puts the hook in the well-known default state used by auto_unlink and safe hooks. </p> -</li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <a class="link" href="bs_set.html" title="Class template bs_set">bs_set</a> <span class="special">&</span> <a name="idm26019-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="bs_set.html" title="Class template bs_set">bs_set</a> <span class="special">&</span> +<a name="idm26024-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">const_iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <a class="link" href="bs_set.html" title="Class template bs_set">bs_set</a> <span class="special">&</span> <a name="idm26029-bb"></a><span class="identifier">container_from_iterator</span><span class="special">(</span><span class="identifier">iterator</span> it<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="bs_set.html" title="Class template bs_set">bs_set</a> <span class="special">&</span> <a name="idm26034-bb"></a><span class="identifier">container_from_iterator</span><span class="special">(</span><span class="identifier">const_iterator</span> it<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">iterator</span> <a name="idm26039-bb"></a><span class="identifier">s_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></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">const_iterator</span> <a name="idm26043-bb"></a><span class="identifier">s_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></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm26047-bb"></a><span class="identifier">init_node</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></li> </ol></div> </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="bs_multiset.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.bs_set_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_bs_multiset.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/bs_set_base_hook.html b/doc/html/boost/intrusive/bs_set_base_hook.html index 188db688e6..35c2b7e1ba 100644 --- a/doc/html/boost/intrusive/bs_set_base_hook.html +++ b/doc/html/boost/intrusive/bs_set_base_hook.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.bs_set_hook_hpp" title="Header <boost/intrusive/bs_set_hook.hpp>"> <link rel="prev" href="make_bs_set.html" title="Struct template make_bs_set"> <link rel="next" href="bs_set_member_hook.html" title="Class template bs_set_member_hook"> +<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> @@ -29,78 +30,78 @@ <h2><span class="refentrytitle">Class template bs_set_base_hook</span></h2> <p>boost::intrusive::bs_set_base_hook</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.bs_set_hook_hpp" title="Header <boost/intrusive/bs_set_hook.hpp>">boost/intrusive/bs_set_hook.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.bs_set_hook_hpp" title="Header <boost/intrusive/bs_set_hook.hpp>">boost/intrusive/bs_set_hook.hpp</a>> </span><span class="keyword">template</span><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="bs_set_base_hook.html" title="Class template bs_set_base_hook">bs_set_base_hook</a> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">make_bs_set_base_hook</span><span class="special">::</span><span class="identifier">type</span><span class="special"><</span> <span class="identifier">O1</span><span class="special">,</span> <span class="identifier">O2</span><span class="special">,</span> <span class="identifier">O3</span> <span class="special">></span> <span class="special">{</span> +<span class="keyword">class</span> <a class="link" href="bs_set_base_hook.html" title="Class template bs_set_base_hook">bs_set_base_hook</a> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">make_bs_set_base_hook</span><span class="special">::</span><span class="identifier">type</span> <span class="special">{</span> <span class="keyword">public</span><span class="special">:</span> <span class="comment">// <a class="link" href="bs_set_base_hook.html#boost.intrusive.bs_set_base_hookconstruct-copy-destruct">construct/copy/destruct</a></span> - <a class="link" href="bs_set_base_hook.html#idm45971716994960-bb"><span class="identifier">bs_set_base_hook</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> - <a class="link" href="bs_set_base_hook.html#idm45971716991184-bb"><span class="identifier">bs_set_base_hook</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="bs_set_base_hook.html" title="Class template bs_set_base_hook">bs_set_base_hook</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span> - <a class="link" href="bs_set_base_hook.html" title="Class template bs_set_base_hook">bs_set_base_hook</a> <span class="special">&</span> <a class="link" href="bs_set_base_hook.html#idm45971716984816-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="bs_set_base_hook.html" title="Class template bs_set_base_hook">bs_set_base_hook</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span> - <a class="link" href="bs_set_base_hook.html#idm45971716979520-bb"><span class="special">~</span><span class="identifier">bs_set_base_hook</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="bs_set_base_hook.html#idm26258-bb"><span class="identifier">bs_set_base_hook</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="bs_set_base_hook.html#idm26267-bb"><span class="identifier">bs_set_base_hook</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="bs_set_base_hook.html" title="Class template bs_set_base_hook">bs_set_base_hook</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="bs_set_base_hook.html" title="Class template bs_set_base_hook">bs_set_base_hook</a> <span class="special">&</span> <a class="link" href="bs_set_base_hook.html#idm26282-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="bs_set_base_hook.html" title="Class template bs_set_base_hook">bs_set_base_hook</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="bs_set_base_hook.html#idm26296-bb"><span class="special">~</span><span class="identifier">bs_set_base_hook</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> - <span class="comment">// <a class="link" href="bs_set_base_hook.html#idm45971717010576-bb">public member functions</a></span> - <span class="keyword">void</span> <a class="link" href="bs_set_base_hook.html#idm45971717010016-bb"><span class="identifier">swap_nodes</span></a><span class="special">(</span><a class="link" href="bs_set_base_hook.html" title="Class template bs_set_base_hook">bs_set_base_hook</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">bool</span> <a class="link" href="bs_set_base_hook.html#idm45971717005008-bb"><span class="identifier">is_linked</span></a><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="bs_set_base_hook.html#idm45971716999040-bb"><span class="identifier">unlink</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="comment">// <a class="link" href="../container/static_vector.html#idm26223-bb">public member functions</a></span> + <span class="keyword">void</span> <a class="link" href="bs_set_base_hook.html#idm26224-bb"><span class="identifier">swap_nodes</span></a><span class="special">(</span><a class="link" href="bs_set_base_hook.html" title="Class template bs_set_base_hook">bs_set_base_hook</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">bool</span> <a class="link" href="bs_set_base_hook.html#idm26236-bb"><span class="identifier">is_linked</span></a><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="bs_set_base_hook.html#idm26249-bb"><span class="identifier">unlink</span></a><span class="special">(</span><span class="special">)</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.8.3.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.8.3.4"></a><h2>Description</h2> <p>Derive a class from <a class="link" href="bs_set_base_hook.html" title="Class template bs_set_base_hook">bs_set_base_hook</a> in order to store objects in in a bs_set/bs_multiset. <a class="link" href="bs_set_base_hook.html" title="Class template bs_set_base_hook">bs_set_base_hook</a> holds the data necessary to maintain the bs_set/bs_multiset and provides an appropriate <a class="link" href="value_traits.html" title="Struct template value_traits">value_traits</a> class for bs_set/bs_multiset.</p> <p>The hook admits the following options: <code class="computeroutput">tag<></code>, <code class="computeroutput">void_pointer<></code>, <code class="computeroutput">link_mode<></code>.</p> <p><code class="computeroutput">tag<></code> defines a tag to identify the node. The same tag value can be used in different classes, but if a class is derived from more than one <code class="computeroutput"><a class="link" href="list_base_hook.html" title="Class template list_base_hook">list_base_hook</a></code>, then each <code class="computeroutput"><a class="link" href="list_base_hook.html" title="Class template list_base_hook">list_base_hook</a></code> needs its unique tag.</p> <p><code class="computeroutput">void_pointer<></code> is the pointer type that will be used internally in the hook and the container configured to use this hook.</p> <p><code class="computeroutput">link_mode<></code> will specify the linking mode of the hook (<code class="computeroutput">normal_link</code>, <code class="computeroutput">auto_unlink</code> or <code class="computeroutput">safe_link</code>). </p> <div class="refsect2"> -<a name="id-1.3.20.42.8.3.4.7"></a><h3> +<a name="id-1.3.18.42.8.3.4.7"></a><h3> <a name="boost.intrusive.bs_set_base_hookconstruct-copy-destruct"></a><code class="computeroutput">bs_set_base_hook</code> public construct/copy/destruct</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> <li class="listitem"> -<pre class="literallayout"><a name="idm45971716994960-bb"></a><span class="identifier">bs_set_base_hook</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm26258-bb"></a><span class="identifier">bs_set_base_hook</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: If <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is <code class="computeroutput">auto_unlink</code> or <code class="computeroutput">safe_link</code> initializes the node to an unlinked state.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><a name="idm45971716991184-bb"></a><span class="identifier">bs_set_base_hook</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="bs_set_base_hook.html" title="Class template bs_set_base_hook">bs_set_base_hook</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm26267-bb"></a><span class="identifier">bs_set_base_hook</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="bs_set_base_hook.html" title="Class template bs_set_base_hook">bs_set_base_hook</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: If <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is <code class="computeroutput">auto_unlink</code> or <code class="computeroutput">safe_link</code> initializes the node to an unlinked state. The argument is ignored.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Rationale</strong></span>: Providing a copy-constructor makes classes using the hook STL-compliant without forcing the user to do some additional work. <code class="computeroutput">swap</code> can be used to emulate move-semantics. </p> </li> <li class="listitem"> -<pre class="literallayout"><a class="link" href="bs_set_base_hook.html" title="Class template bs_set_base_hook">bs_set_base_hook</a> <span class="special">&</span> <a name="idm45971716984816-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="bs_set_base_hook.html" title="Class template bs_set_base_hook">bs_set_base_hook</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a class="link" href="bs_set_base_hook.html" title="Class template bs_set_base_hook">bs_set_base_hook</a> <span class="special">&</span> <a name="idm26282-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="bs_set_base_hook.html" title="Class template bs_set_base_hook">bs_set_base_hook</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Empty function. The argument is ignored.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Rationale</strong></span>: Providing an assignment operator makes classes using the hook STL-compliant without forcing the user to do some additional work. <code class="computeroutput">swap</code> can be used to emulate move-semantics. </p> </li> <li class="listitem"> -<pre class="literallayout"><a name="idm45971716979520-bb"></a><span class="special">~</span><span class="identifier">bs_set_base_hook</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm26296-bb"></a><span class="special">~</span><span class="identifier">bs_set_base_hook</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: If <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is <code class="computeroutput">normal_link</code>, the destructor does nothing (ie. no code is generated). If <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is <code class="computeroutput">safe_link</code> and the object is stored in a set an assertion is raised. If <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is <code class="computeroutput">auto_unlink</code> and <code class="computeroutput">is_linked()</code> is true, the node is unlinked.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> </ol></div> </div> <div class="refsect2"> -<a name="id-1.3.20.42.8.3.4.8"></a><h3> -<a name="idm45971717010576-bb"></a><code class="computeroutput">bs_set_base_hook</code> public member functions</h3> +<a name="id-1.3.18.42.8.3.4.8"></a><h3> +<a name="idm26223-bb"></a><code class="computeroutput">bs_set_base_hook</code> public member functions</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971717010016-bb"></a><span class="identifier">swap_nodes</span><span class="special">(</span><a class="link" href="bs_set_base_hook.html" title="Class template bs_set_base_hook">bs_set_base_hook</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="idm26224-bb"></a><span class="identifier">swap_nodes</span><span class="special">(</span><a class="link" href="bs_set_base_hook.html" title="Class template bs_set_base_hook">bs_set_base_hook</a> <span class="special">&</span> other<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Swapping two nodes swaps the position of the elements related to those nodes in one or two containers. That is, if the node this is part of the element e1, the node x is part of the element e2 and both elements are included in the containers s1 and s2, then after the swap-operation e1 is in s2 at the position of e2 and e2 is in s1 at the position of e1. If one element is not in a container, then after the swap-operation the other element is not in a container. Iterators to e1 and e2 related to those nodes are invalidated.</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="keyword">bool</span> <a name="idm45971717005008-bb"></a><span class="identifier">is_linked</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">bool</span> <a name="idm26236-bb"></a><span class="identifier">is_linked</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Precondition</strong></span>: <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> must be <code class="computeroutput">safe_link</code> or <code class="computeroutput">auto_unlink</code>.</p> <p><span class="bold"><strong>Returns</strong></span>: true, if the node belongs to a container, false otherwise. This function can be used to test whether <code class="computeroutput">set::iterator_to</code> will return a valid iterator.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971716999040-bb"></a><span class="identifier">unlink</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">void</span> <a name="idm26249-bb"></a><span class="identifier">unlink</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Removes the node if it's inserted in a container. This function is only allowed if <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is <code class="computeroutput">auto_unlink</code>.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> @@ -108,14 +109,11 @@ </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="make_bs_set.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.bs_set_hook_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="bs_set_member_hook.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/bs_set_member_hook.html b/doc/html/boost/intrusive/bs_set_member_hook.html index aaf754d392..b2805925f4 100644 --- a/doc/html/boost/intrusive/bs_set_member_hook.html +++ b/doc/html/boost/intrusive/bs_set_member_hook.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.bs_set_hook_hpp" title="Header <boost/intrusive/bs_set_hook.hpp>"> <link rel="prev" href="bs_set_base_hook.html" title="Class template bs_set_base_hook"> <link rel="next" href="make_bs_set_base_hook.html" title="Struct template make_bs_set_base_hook"> +<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> @@ -29,77 +30,77 @@ <h2><span class="refentrytitle">Class template bs_set_member_hook</span></h2> <p>boost::intrusive::bs_set_member_hook</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.bs_set_hook_hpp" title="Header <boost/intrusive/bs_set_hook.hpp>">boost/intrusive/bs_set_hook.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.bs_set_hook_hpp" title="Header <boost/intrusive/bs_set_hook.hpp>">boost/intrusive/bs_set_hook.hpp</a>> </span><span class="keyword">template</span><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="bs_set_member_hook.html" title="Class template bs_set_member_hook">bs_set_member_hook</a> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">make_bs_set_member_hook</span><span class="special">::</span><span class="identifier">type</span><span class="special"><</span> <span class="identifier">O1</span><span class="special">,</span> <span class="identifier">O2</span><span class="special">,</span> <span class="identifier">O3</span> <span class="special">></span> <span class="special">{</span> +<span class="keyword">class</span> <a class="link" href="bs_set_member_hook.html" title="Class template bs_set_member_hook">bs_set_member_hook</a> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">make_bs_set_member_hook</span><span class="special">::</span><span class="identifier">type</span> <span class="special">{</span> <span class="keyword">public</span><span class="special">:</span> <span class="comment">// <a class="link" href="bs_set_member_hook.html#boost.intrusive.bs_set_member_hookconstruct-copy-destruct">construct/copy/destruct</a></span> - <a class="link" href="bs_set_member_hook.html#idm45971716948944-bb"><span class="identifier">bs_set_member_hook</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> - <a class="link" href="bs_set_member_hook.html#idm45971716945168-bb"><span class="identifier">bs_set_member_hook</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="bs_set_member_hook.html" title="Class template bs_set_member_hook">bs_set_member_hook</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span> - <a class="link" href="bs_set_member_hook.html" title="Class template bs_set_member_hook">bs_set_member_hook</a> <span class="special">&</span> <a class="link" href="bs_set_member_hook.html#idm45971716938800-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="bs_set_member_hook.html" title="Class template bs_set_member_hook">bs_set_member_hook</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span> - <a class="link" href="bs_set_member_hook.html#idm45971716933504-bb"><span class="special">~</span><span class="identifier">bs_set_member_hook</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="bs_set_member_hook.html#idm26364-bb"><span class="identifier">bs_set_member_hook</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="bs_set_member_hook.html#idm26373-bb"><span class="identifier">bs_set_member_hook</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="bs_set_member_hook.html" title="Class template bs_set_member_hook">bs_set_member_hook</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="bs_set_member_hook.html" title="Class template bs_set_member_hook">bs_set_member_hook</a> <span class="special">&</span> <a class="link" href="bs_set_member_hook.html#idm26388-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="bs_set_member_hook.html" title="Class template bs_set_member_hook">bs_set_member_hook</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="bs_set_member_hook.html#idm26402-bb"><span class="special">~</span><span class="identifier">bs_set_member_hook</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> - <span class="comment">// <a class="link" href="bs_set_member_hook.html#idm45971716964560-bb">public member functions</a></span> - <span class="keyword">void</span> <a class="link" href="bs_set_member_hook.html#idm45971716964000-bb"><span class="identifier">swap_nodes</span></a><span class="special">(</span><a class="link" href="bs_set_member_hook.html" title="Class template bs_set_member_hook">bs_set_member_hook</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">bool</span> <a class="link" href="bs_set_member_hook.html#idm45971716958992-bb"><span class="identifier">is_linked</span></a><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="bs_set_member_hook.html#idm45971716953024-bb"><span class="identifier">unlink</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="comment">// <a class="link" href="bs_set_member_hook.html#idm26329-bb">public member functions</a></span> + <span class="keyword">void</span> <a class="link" href="bs_set_member_hook.html#idm26330-bb"><span class="identifier">swap_nodes</span></a><span class="special">(</span><a class="link" href="bs_set_member_hook.html" title="Class template bs_set_member_hook">bs_set_member_hook</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">bool</span> <a class="link" href="bs_set_member_hook.html#idm26342-bb"><span class="identifier">is_linked</span></a><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="bs_set_member_hook.html#idm26355-bb"><span class="identifier">unlink</span></a><span class="special">(</span><span class="special">)</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.8.4.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.8.4.4"></a><h2>Description</h2> <p>Put a public data member <a class="link" href="bs_set_member_hook.html" title="Class template bs_set_member_hook">bs_set_member_hook</a> in order to store objects of this class in a bs_set/bs_multiset. <a class="link" href="bs_set_member_hook.html" title="Class template bs_set_member_hook">bs_set_member_hook</a> holds the data necessary for maintaining the bs_set/bs_multiset and provides an appropriate <a class="link" href="value_traits.html" title="Struct template value_traits">value_traits</a> class for bs_set/bs_multiset.</p> <p>The hook admits the following options: <code class="computeroutput">void_pointer<></code>, <code class="computeroutput">link_mode<></code>.</p> <p><code class="computeroutput">void_pointer<></code> is the pointer type that will be used internally in the hook and the container configured to use this hook.</p> <p><code class="computeroutput">link_mode<></code> will specify the linking mode of the hook (<code class="computeroutput">normal_link</code>, <code class="computeroutput">auto_unlink</code> or <code class="computeroutput">safe_link</code>). </p> <div class="refsect2"> -<a name="id-1.3.20.42.8.4.4.6"></a><h3> +<a name="id-1.3.18.42.8.4.4.6"></a><h3> <a name="boost.intrusive.bs_set_member_hookconstruct-copy-destruct"></a><code class="computeroutput">bs_set_member_hook</code> public construct/copy/destruct</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> <li class="listitem"> -<pre class="literallayout"><a name="idm45971716948944-bb"></a><span class="identifier">bs_set_member_hook</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm26364-bb"></a><span class="identifier">bs_set_member_hook</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: If <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is <code class="computeroutput">auto_unlink</code> or <code class="computeroutput">safe_link</code> initializes the node to an unlinked state.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><a name="idm45971716945168-bb"></a><span class="identifier">bs_set_member_hook</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="bs_set_member_hook.html" title="Class template bs_set_member_hook">bs_set_member_hook</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm26373-bb"></a><span class="identifier">bs_set_member_hook</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="bs_set_member_hook.html" title="Class template bs_set_member_hook">bs_set_member_hook</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: If <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is <code class="computeroutput">auto_unlink</code> or <code class="computeroutput">safe_link</code> initializes the node to an unlinked state. The argument is ignored.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Rationale</strong></span>: Providing a copy-constructor makes classes using the hook STL-compliant without forcing the user to do some additional work. <code class="computeroutput">swap</code> can be used to emulate move-semantics. </p> </li> <li class="listitem"> -<pre class="literallayout"><a class="link" href="bs_set_member_hook.html" title="Class template bs_set_member_hook">bs_set_member_hook</a> <span class="special">&</span> <a name="idm45971716938800-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="bs_set_member_hook.html" title="Class template bs_set_member_hook">bs_set_member_hook</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a class="link" href="bs_set_member_hook.html" title="Class template bs_set_member_hook">bs_set_member_hook</a> <span class="special">&</span> <a name="idm26388-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="bs_set_member_hook.html" title="Class template bs_set_member_hook">bs_set_member_hook</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Empty function. The argument is ignored.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Rationale</strong></span>: Providing an assignment operator makes classes using the hook STL-compliant without forcing the user to do some additional work. <code class="computeroutput">swap</code> can be used to emulate move-semantics. </p> </li> <li class="listitem"> -<pre class="literallayout"><a name="idm45971716933504-bb"></a><span class="special">~</span><span class="identifier">bs_set_member_hook</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm26402-bb"></a><span class="special">~</span><span class="identifier">bs_set_member_hook</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: If <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is <code class="computeroutput">normal_link</code>, the destructor does nothing (ie. no code is generated). If <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is <code class="computeroutput">safe_link</code> and the object is stored in a set an assertion is raised. If <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is <code class="computeroutput">auto_unlink</code> and <code class="computeroutput">is_linked()</code> is true, the node is unlinked.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> </ol></div> </div> <div class="refsect2"> -<a name="id-1.3.20.42.8.4.4.7"></a><h3> -<a name="idm45971716964560-bb"></a><code class="computeroutput">bs_set_member_hook</code> public member functions</h3> +<a name="id-1.3.18.42.8.4.4.7"></a><h3> +<a name="idm26329-bb"></a><code class="computeroutput">bs_set_member_hook</code> public member functions</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971716964000-bb"></a><span class="identifier">swap_nodes</span><span class="special">(</span><a class="link" href="bs_set_member_hook.html" title="Class template bs_set_member_hook">bs_set_member_hook</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="idm26330-bb"></a><span class="identifier">swap_nodes</span><span class="special">(</span><a class="link" href="bs_set_member_hook.html" title="Class template bs_set_member_hook">bs_set_member_hook</a> <span class="special">&</span> other<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Swapping two nodes swaps the position of the elements related to those nodes in one or two containers. That is, if the node this is part of the element e1, the node x is part of the element e2 and both elements are included in the containers s1 and s2, then after the swap-operation e1 is in s2 at the position of e2 and e2 is in s1 at the position of e1. If one element is not in a container, then after the swap-operation the other element is not in a container. Iterators to e1 and e2 related to those nodes are invalidated.</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="keyword">bool</span> <a name="idm45971716958992-bb"></a><span class="identifier">is_linked</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">bool</span> <a name="idm26342-bb"></a><span class="identifier">is_linked</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Precondition</strong></span>: <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> must be <code class="computeroutput">safe_link</code> or <code class="computeroutput">auto_unlink</code>.</p> <p><span class="bold"><strong>Returns</strong></span>: true, if the node belongs to a container, false otherwise. This function can be used to test whether <code class="computeroutput">set::iterator_to</code> will return a valid iterator.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971716953024-bb"></a><span class="identifier">unlink</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">void</span> <a name="idm26355-bb"></a><span class="identifier">unlink</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Removes the node if it's inserted in a container. This function is only allowed if <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is <code class="computeroutput">auto_unlink</code>.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> @@ -107,14 +108,11 @@ </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="bs_set_base_hook.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.bs_set_hook_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_bs_set_base_hook.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/bstree.html b/doc/html/boost/intrusive/bstree.html index 2f6a308347..b58a7b9824 100644 --- a/doc/html/boost/intrusive/bstree.html +++ b/doc/html/boost/intrusive/bstree.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.bstree_hpp" title="Header <boost/intrusive/bstree.hpp>"> <link rel="prev" href="make_bs_set_member_hook.html" title="Struct template make_bs_set_member_hook"> <link rel="next" href="make_bstree.html" title="Struct template make_bstree"> +<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> @@ -29,8 +30,8 @@ <h2><span class="refentrytitle">Class template bstree</span></h2> <p>boost::intrusive::bstree</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.bstree_hpp" title="Header <boost/intrusive/bstree.hpp>">boost/intrusive/bstree.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.bstree_hpp" title="Header <boost/intrusive/bstree.hpp>">boost/intrusive/bstree.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="bstree.html" title="Class template bstree">bstree</a> <span class="special">:</span> <span class="keyword">public</span> bstbase< ValueTraits, VoidOrKeyOfValue, VoidOrKeyComp, ConstantTimeSize, SizeType, AlgoType, HeaderHolder > @@ -61,168 +62,168 @@ <span class="keyword">typedef</span> <span class="identifier">node_algorithms</span><span class="special">::</span><span class="identifier">insert_commit_data</span> <a name="boost.intrusive.bstree.insert_commit_data"></a><span class="identifier">insert_commit_data</span><span class="special">;</span> <span class="comment">// <a class="link" href="bstree.html#boost.intrusive.bstreeconstruct-copy-destruct">construct/copy/destruct</a></span> - <a class="link" href="bstree.html#idm45971716365712-bb"><span class="identifier">bstree</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">explicit</span> <a class="link" href="bstree.html#idm45971716362560-bb"><span class="identifier">bstree</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_compare</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="bstree.html#idm27753-bb"><span class="identifier">bstree</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">explicit</span> <a class="link" href="bstree.html#idm27761-bb"><span class="identifier">bstree</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_compare</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="bstree.html#idm45971716357440-bb"><span class="identifier">bstree</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> <span class="identifier">key_compare</span> <span class="special">&</span> <span class="special">=</span> <span class="identifier">key_compare</span><span class="special">(</span><span class="special">)</span><span class="special">,</span> + <a class="link" href="bstree.html#idm27774-bb"><span class="identifier">bstree</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> <span class="identifier">key_compare</span> <span class="special">&</span> <span class="special">=</span> <span class="identifier">key_compare</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="bstree.html#idm45971716348288-bb"><span class="identifier">bstree</span></a><span class="special">(</span><a class="link" href="bstree.html" title="Class template bstree">bstree</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> - <a class="link" href="bstree.html" title="Class template bstree">bstree</a> <span class="special">&</span> <a class="link" href="bstree.html#idm45971716343984-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><a class="link" href="bstree.html" title="Class template bstree">bstree</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> - <a class="link" href="bstree.html#idm45971716341168-bb"><span class="special">~</span><span class="identifier">bstree</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="bstree.html#idm27798-bb"><span class="identifier">bstree</span></a><span class="special">(</span><a class="link" href="bstree.html" title="Class template bstree">bstree</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="bstree.html" title="Class template bstree">bstree</a> <span class="special">&</span> <a class="link" href="bstree.html#idm27809-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><a class="link" href="bstree.html" title="Class template bstree">bstree</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="../interprocess/rbtree_best_fit.html#idm27818-bb"><span class="special">~</span><span class="identifier">bstree</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> - <span class="comment">// <a class="link" href="bstree.html#idm45971716889744-bb">public member functions</a></span> - <span class="identifier">iterator</span> <a class="link" href="bstree.html#idm45971716889184-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="bstree.html#idm45971716885344-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="bstree.html#idm45971716881504-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="bstree.html#idm45971716877664-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="bstree.html#idm45971716873824-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="bstree.html#idm45971716869984-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">reverse_iterator</span> <a class="link" href="bstree.html#idm45971716866144-bb"><span class="identifier">rbegin</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="identifier">const_reverse_iterator</span> <a class="link" href="bstree.html#idm45971716862288-bb"><span class="identifier">rbegin</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_reverse_iterator</span> <a class="link" href="bstree.html#idm45971716858432-bb"><span class="identifier">crbegin</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">reverse_iterator</span> <a class="link" href="bstree.html#idm45971716854576-bb"><span class="identifier">rend</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="identifier">const_reverse_iterator</span> <a class="link" href="bstree.html#idm45971716850720-bb"><span class="identifier">rend</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_reverse_iterator</span> <a class="link" href="bstree.html#idm45971716846864-bb"><span class="identifier">crend</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="bstree.html#idm45971716843008-bb"><span class="identifier">root</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="bstree.html#idm45971716839136-bb"><span class="identifier">root</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="bstree.html#idm45971716835264-bb"><span class="identifier">croot</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">key_compare</span> <a class="link" href="bstree.html#idm45971716831392-bb"><span class="identifier">key_comp</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">value_compare</span> <a class="link" href="bstree.html#idm45971716827536-bb"><span class="identifier">value_comp</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="bstree.html#idm45971716823664-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="bstree.html#idm45971716819840-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="bstree.html#idm45971716815904-bb"><span class="identifier">swap</span></a><span class="special">(</span><a class="link" href="bstree.html" title="Class template bstree">bstree</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="comment">// <a class="link" href="bstree.html#idm26502-bb">public member functions</a></span> + <span class="identifier">iterator</span> <a class="link" href="bstree.html#idm26503-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="bstree.html#idm26512-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="../interprocess/message_queue_t.html#idm26521-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="bstree.html#idm26530-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="bstree.html#idm26539-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="bstree.html#idm26548-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">reverse_iterator</span> <a class="link" href="bstree.html#idm26557-bb"><span class="identifier">rbegin</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">const_reverse_iterator</span> <a class="link" href="bstree.html#idm26566-bb"><span class="identifier">rbegin</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_reverse_iterator</span> <a class="link" href="bstree.html#idm26575-bb"><span class="identifier">crbegin</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">reverse_iterator</span> <a class="link" href="bstree.html#idm26584-bb"><span class="identifier">rend</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">const_reverse_iterator</span> <a class="link" href="bstree.html#idm26593-bb"><span class="identifier">rend</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_reverse_iterator</span> <a class="link" href="bstree.html#idm26602-bb"><span class="identifier">crend</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="bstree.html#idm26611-bb"><span class="identifier">root</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="bstree.html#idm26620-bb"><span class="identifier">root</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="bstree.html#idm26629-bb"><span class="identifier">croot</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">key_compare</span> <a class="link" href="bstree.html#idm26638-bb"><span class="identifier">key_comp</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">value_compare</span> <a class="link" href="bstree.html#idm26647-bb"><span class="identifier">value_comp</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="bstree.html#idm26656-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="bstree.html#idm26665-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="bstree.html#idm26674-bb"><span class="identifier">swap</span></a><span class="special">(</span><a class="link" href="bstree.html" title="Class template bstree">bstree</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="bstree.html#idm45971716811360-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="bstree.html" title="Class template bstree">bstree</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="bstree.html#idm26686-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="bstree.html" title="Class template bstree">bstree</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="bstree.html#idm45971716802304-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><a class="link" href="bstree.html" title="Class template bstree">bstree</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="bstree.html#idm45971716792496-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="identifier">iterator</span> <a class="link" href="bstree.html#idm45971716786336-bb"><span class="identifier">insert_equal</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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="bstree.html#idm45971716779312-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="bstree.html#idm45971716771472-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="identifier">iterator</span> <a class="link" href="bstree.html#idm45971716765328-bb"><span class="identifier">insert_unique</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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="bstree.html#idm45971716758368-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="bstree.html#idm26708-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><a class="link" href="bstree.html" title="Class template bstree">bstree</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="bstree.html#idm26732-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="identifier">iterator</span> <a class="link" href="bstree.html#idm26747-bb"><span class="identifier">insert_equal</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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="bstree.html#idm26764-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="bstree.html#idm26783-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="identifier">iterator</span> <a class="link" href="../interprocess/basic_managed_heap_memory.html#idm26798-bb"><span class="identifier">insert_unique</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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="bstree.html#idm26815-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="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="bstree.html#idm45971716750576-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> + <a class="link" href="bstree.html#idm26834-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">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="bstree.html#idm45971716744384-bb"><span class="identifier">insert_unique_check</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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> + <a class="link" href="bstree.html#idm26849-bb"><span class="identifier">insert_unique_check</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> KeyType<span class="special">,</span> <span class="keyword">typename</span> KeyTypeKeyCompare<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="bstree.html#idm45971716737408-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">KeyTypeKeyCompare</span><span class="special">,</span> + <a class="link" href="bstree.html#idm26866-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">KeyTypeKeyCompare</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="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> KeyType<span class="special">,</span> <span class="keyword">typename</span> KeyTypeKeyCompare<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="bstree.html#idm45971716726000-bb"><span class="identifier">insert_unique_check</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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">KeyTypeKeyCompare</span><span class="special">,</span> + <a class="link" href="bstree.html#idm26892-bb"><span class="identifier">insert_unique_check</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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">KeyTypeKeyCompare</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="bstree.html#idm45971716713808-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="identifier">iterator</span> <a class="link" href="bstree.html#idm45971716705504-bb"><span class="identifier">insert_before</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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">void</span> <a class="link" href="bstree.html#idm45971716698272-bb"><span class="identifier">push_back</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">void</span> <a class="link" href="bstree.html#idm45971716691712-bb"><span class="identifier">push_front</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">iterator</span> <a class="link" href="bstree.html#idm45971716685152-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="identifier">iterator</span> <a class="link" href="bstree.html#idm45971716679664-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="bstree.html#idm45971716673424-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="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="bstree.html#idm26920-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="identifier">iterator</span> <a class="link" href="../interprocess/basic_managed_mapped_file.html#idm26939-bb"><span class="identifier">insert_before</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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">void</span> <a class="link" href="bstree.html#idm26956-bb"><span class="identifier">push_back</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">void</span> <a class="link" href="bstree.html#idm26971-bb"><span class="identifier">push_front</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">iterator</span> <a class="link" href="bstree.html#idm26986-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="identifier">iterator</span> <a class="link" href="bstree.html#idm26999-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="bstree.html#idm27014-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="keyword">noexcept</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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">size_type</span> <a class="link" href="bstree.html#idm45971716667104-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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">size_type</span> <a class="link" href="bstree.html#idm27029-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">KeyTypeKeyCompare</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="identifier">iterator</span> <a class="link" href="bstree.html#idm45971716657008-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="identifier">iterator</span> <a class="link" href="bstree.html#idm27053-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="identifier">size_type</span> <a class="link" href="bstree.html#idm45971716649104-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="bstree.html#idm27072-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> Disposer<span class="special">></span> - <span class="identifier">iterator</span> <a class="link" href="bstree.html#idm45971716640576-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="identifier">iterator</span> <a class="link" href="bstree.html#idm27093-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> KeyType<span class="special">,</span> <span class="keyword">typename</span> KeyTypeKeyCompare<span class="special">,</span> <span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="identifier">size_type</span> <a class="link" href="bstree.html#idm45971716631920-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">KeyTypeKeyCompare</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="bstree.html#idm45971716619696-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="bstree.html#idm45971716614832-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="bstree.html#idm45971716608528-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="identifier">size_type</span> <a class="link" href="bstree.html#idm27114-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">KeyTypeKeyCompare</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="bstree.html#idm27143-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="bstree.html#idm27154-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="bstree.html#idm27168-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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">size_type</span> <a class="link" href="bstree.html#idm45971716603456-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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="bstree.html#idm45971716594400-bb"><span class="identifier">lower_bound</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="bstree.html#idm45971716589648-bb"><span class="identifier">lower_bound</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">size_type</span> <a class="link" href="bstree.html#idm27180-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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="bstree.html#idm27201-bb"><span class="identifier">lower_bound</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="bstree.html#idm27213-bb"><span class="identifier">lower_bound</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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a class="link" href="bstree.html#idm45971716584624-bb"><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="bstree.html#idm27225-bb"><span class="identifier">lower_bound</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">KeyTypeKeyCompare</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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">const_iterator</span> <a class="link" href="bstree.html#idm45971716577776-bb"><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="bstree.html#idm45971716570656-bb"><span class="identifier">upper_bound</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="bstree.html#idm27242-bb"><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="bstree.html#idm27259-bb"><span class="identifier">upper_bound</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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a class="link" href="bstree.html#idm45971716565904-bb"><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> - <span class="identifier">const_iterator</span> <a class="link" href="bstree.html#idm45971716557200-bb"><span class="identifier">upper_bound</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="bstree.html#idm27271-bb"><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">const_iterator</span> <a class="link" href="bstree.html#idm27292-bb"><span class="identifier">upper_bound</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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">const_iterator</span> <a class="link" href="bstree.html#idm45971716552176-bb"><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="bstree.html#idm45971716543200-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">const_iterator</span> <a class="link" href="bstree.html#idm27304-bb"><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="bstree.html#idm27325-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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a class="link" href="bstree.html#idm45971716538464-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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> - <span class="identifier">const_iterator</span> <a class="link" href="bstree.html#idm45971716529728-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="bstree.html#idm27337-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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">const_iterator</span> <a class="link" href="bstree.html#idm27358-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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">const_iterator</span> <a class="link" href="bstree.html#idm45971716524720-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">KeyTypeKeyCompare</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="bstree.html#idm45971716515712-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="bstree.html#idm27370-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">KeyTypeKeyCompare</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="bstree.html#idm27391-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> KeyTypeKeyCompare<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="bstree.html#idm45971716510880-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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="bstree.html#idm27403-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">KeyTypeKeyCompare</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="bstree.html#idm45971716502048-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="../interprocess/basic_managed_win_idm27340.html#idm27424-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> KeyTypeKeyCompare<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="bstree.html#idm45971716496928-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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <a class="link" href="bstree.html#idm27436-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">KeyTypeKeyCompare</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="bstree.html#idm45971716487808-bb"><span class="identifier">bounded_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="identifier">key_type</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="bstree.html#idm27457-bb"><span class="identifier">bounded_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="identifier">key_type</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</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> KeyTypeKeyCompare<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="bstree.html#idm45971716475376-bb"><span class="identifier">bounded_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="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> + <a class="link" href="bstree.html#idm27488-bb"><span class="identifier">bounded_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="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</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="bstree.html#idm45971716458576-bb"><span class="identifier">bounded_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="identifier">key_type</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <a class="link" href="bstree.html#idm27530-bb"><span class="identifier">bounded_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="identifier">key_type</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</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> KeyTypeKeyCompare<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="bstree.html#idm45971716445856-bb"><span class="identifier">bounded_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="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> + <a class="link" href="bstree.html#idm27561-bb"><span class="identifier">bounded_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="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="bstree.html#idm45971716428768-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="bstree.html#idm45971716423280-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">pointer</span> <a class="link" href="bstree.html#idm45971716417792-bb"><span class="identifier">unlink_leftmost_without_rebalance</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="bstree.html#idm45971716412880-bb"><span class="identifier">replace_node</span></a><span class="special">(</span><span class="identifier">iterator</span><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">void</span> <a class="link" href="bstree.html#idm45971716405616-bb"><span class="identifier">rebalance</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="bstree.html#idm45971716401824-bb"><span class="identifier">rebalance_subtree</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="bstree.html#idm27603-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="bstree.html#idm27616-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">pointer</span> <a class="link" href="bstree.html#idm27629-bb"><span class="identifier">unlink_leftmost_without_rebalance</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="bstree.html#idm27640-bb"><span class="identifier">replace_node</span></a><span class="special">(</span><span class="identifier">iterator</span><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">void</span> <a class="link" href="bstree.html#idm27657-bb"><span class="identifier">rebalance</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="bstree.html#idm27666-bb"><span class="identifier">rebalance_subtree</span></a><span class="special">(</span><span class="identifier">iterator</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> T<span class="special">,</span> <span class="keyword">class</span> <span class="special">...</span> Options2<span class="special">></span> - <span class="keyword">void</span> <a class="link" href="bstree.html#idm45971716395552-bb"><span class="identifier">merge_unique</span></a><span class="special">(</span><a class="link" href="bstree.html" title="Class template bstree">bstree</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> - <a class="link" href="bstree.html#idm45971716387040-bb"><span class="keyword">while</span></a><span class="special">(</span><span class="identifier">it</span> <span class="special">!</span> <span class="special">=</span> <span class="identifier">itend</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="../interprocess/mapped_region.html#idm27681-bb"><span class="identifier">merge_unique</span></a><span class="special">(</span><a class="link" href="bstree.html" title="Class template bstree">bstree</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="bstree.html#idm27701-bb"><span class="keyword">while</span></a><span class="special">(</span><span class="identifier">it</span> <span class="special">!</span> <span class="special">=</span> <span class="identifier">itend</span><span class="special">)</span><span class="special">;</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> Options2<span class="special">></span> - <span class="keyword">void</span> <a class="link" href="bstree.html#idm45971716385376-bb"><span class="identifier">merge_equal</span></a><span class="special">(</span><a class="link" href="bstree.html" title="Class template bstree">bstree</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> - <a class="link" href="bstree.html#idm45971716377008-bb"><span class="keyword">while</span></a><span class="special">(</span><span class="identifier">it</span> <span class="special">!</span> <span class="special">=</span> <span class="identifier">itend</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> ExtraChecker<span class="special">></span> <span class="keyword">void</span> <a class="link" href="bstree.html#idm45971716375344-bb"><span class="identifier">check</span></a><span class="special">(</span><span class="identifier">ExtraChecker</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="keyword">void</span> <a class="link" href="bstree.html#idm45971716369824-bb"><span class="identifier">check</span></a><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="bstree.html#idm27706-bb"><span class="identifier">merge_equal</span></a><span class="special">(</span><a class="link" href="bstree.html" title="Class template bstree">bstree</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="bstree.html#idm27726-bb"><span class="keyword">while</span></a><span class="special">(</span><span class="identifier">it</span> <span class="special">!</span> <span class="special">=</span> <span class="identifier">itend</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> ExtraChecker<span class="special">></span> <span class="keyword">void</span> <a class="link" href="bstree.html#idm27731-bb"><span class="identifier">check</span></a><span class="special">(</span><span class="identifier">ExtraChecker</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="bstree.html#idm27744-bb"><span class="identifier">check</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="comment">// <a class="link" href="bstree.html#idm45971716337264-bb">public static functions</a></span> - <span class="keyword">static</span> <a class="link" href="bstree.html" title="Class template bstree">bstree</a> <span class="special">&</span> <a class="link" href="bstree.html#idm45971716336704-bb"><span class="identifier">container_from_end_iterator</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="bstree.html" title="Class template bstree">bstree</a> <span class="special">&</span> <a class="link" href="bstree.html#idm45971716330688-bb"><span class="identifier">container_from_end_iterator</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">static</span> <a class="link" href="bstree.html" title="Class template bstree">bstree</a> <span class="special">&</span> <a class="link" href="bstree.html#idm45971716324528-bb"><span class="identifier">container_from_iterator</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="bstree.html" title="Class template bstree">bstree</a> <span class="special">&</span> <a class="link" href="bstree.html#idm45971716318560-bb"><span class="identifier">container_from_iterator</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">static</span> <span class="identifier">iterator</span> <a class="link" href="bstree.html#idm45971716312416-bb"><span class="identifier">s_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_iterator</span> <a class="link" href="bstree.html#idm45971716305328-bb"><span class="identifier">s_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="keyword">void</span> <a class="link" href="bstree.html#idm45971716298240-bb"><span class="identifier">init_node</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="keyword">void</span> <a class="link" href="bstree.html#idm45971716291648-bb"><span class="identifier">remove_node</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="comment">// <a class="link" href="bstree.html#idm27827-bb">public static functions</a></span> + <span class="keyword">static</span> <a class="link" href="bstree.html" title="Class template bstree">bstree</a> <span class="special">&</span> <a class="link" href="../interprocess/rbtree_best_fit.html#idm27828-bb"><span class="identifier">container_from_end_iterator</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="bstree.html" title="Class template bstree">bstree</a> <span class="special">&</span> <a class="link" href="bstree.html#idm27842-bb"><span class="identifier">container_from_end_iterator</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">static</span> <a class="link" href="bstree.html" title="Class template bstree">bstree</a> <span class="special">&</span> <a class="link" href="../interprocess/rbtree_best_fit.html#idm27856-bb"><span class="identifier">container_from_iterator</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="bstree.html" title="Class template bstree">bstree</a> <span class="special">&</span> <a class="link" href="bstree.html#idm27870-bb"><span class="identifier">container_from_iterator</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">static</span> <span class="identifier">iterator</span> <a class="link" href="../container/basic_string.html#idm27884-bb"><span class="identifier">s_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_iterator</span> <a class="link" href="bstree.html#idm27900-bb"><span class="identifier">s_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="keyword">void</span> <a class="link" href="bstree.html#idm27916-bb"><span class="identifier">init_node</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="keyword">void</span> <a class="link" href="bstree.html#idm27931-bb"><span class="identifier">remove_node</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="comment">// public data members</span> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">bool</span> <span class="identifier">constant_time_size</span><span class="special">;</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> <span class="special">}</span><span class="special">;</span></pre></div> <div class="refsect1"> -<a name="id-1.3.20.42.9.3.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.9.3.4"></a><h2>Description</h2> <p>The class template bstree is an unbalanced intrusive binary search tree container. The no-throw guarantee holds only, if the key_compare object doesn't throw.</p> <p>The complexity guarantees only hold if the tree is balanced, logarithmic complexity would increase to linear if the tree is totally unbalanced.</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> <p>The container supports the following options: <code class="computeroutput">base_hook<>/member_hook<>/value_traits<></code>, <code class="computeroutput">constant_time_size<></code>, <code class="computeroutput">size_type<></code> and <code class="computeroutput">compare<></code>. </p> <div class="refsect2"> -<a name="id-1.3.20.42.9.3.4.6"></a><h3> +<a name="id-1.3.18.42.9.3.4.6"></a><h3> <a name="boost.intrusive.bstreeconstruct-copy-destruct"></a><code class="computeroutput">bstree</code> public construct/copy/destruct</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> <li class="listitem"> -<pre class="literallayout"><a name="idm45971716365712-bb"></a><span class="identifier">bstree</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm27753-bb"></a><span class="identifier">bstree</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Constructs an empty container.</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 constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor of the key_compare object throws. Basic guarantee. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">explicit</span> <a name="idm45971716362560-bb"></a><span class="identifier">bstree</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> cmp<span class="special">,</span> +<pre class="literallayout"><span class="keyword">explicit</span> <a name="idm27761-bb"></a><span class="identifier">bstree</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> cmp<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> <p><span class="bold"><strong>Effects</strong></span>: Constructs an empty container with given comparison and traits.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> @@ -230,7 +231,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="idm45971716357440-bb"></a><span class="identifier">bstree</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="idm27774-bb"></a><span class="identifier">bstree</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> <span class="identifier">key_compare</span> <span class="special">&</span> cmp <span class="special">=</span> <span class="identifier">key_compare</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> <p><span class="bold"><strong>Requires</strong></span>: Dereferencing iterator must yield an lvalue of type value_type. cmp must be a comparison function that induces a strict weak ordering.</p> @@ -239,17 +240,17 @@ <p><span class="bold"><strong>Throws</strong></span>: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor/operator() of the key_compare object throws. Basic guarantee. </p> </li> <li class="listitem"> -<pre class="literallayout"><a name="idm45971716348288-bb"></a><span class="identifier">bstree</span><span class="special">(</span><a class="link" href="bstree.html" title="Class template bstree">bstree</a> <span class="special">&&</span> x<span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm27798-bb"></a><span class="identifier">bstree</span><span class="special">(</span><a class="link" href="bstree.html" title="Class template bstree">bstree</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 comparison object and value traits are move constructed and nodes belonging to x (except the node representing the "end") 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 the comparison objet throws. </p> </li> <li class="listitem"> -<pre class="literallayout"><a class="link" href="bstree.html" title="Class template bstree">bstree</a> <span class="special">&</span> <a name="idm45971716343984-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><a class="link" href="bstree.html" title="Class template bstree">bstree</a> <span class="special">&&</span> x<span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a class="link" href="bstree.html" title="Class template bstree">bstree</a> <span class="special">&</span> <a name="idm27809-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><a class="link" href="bstree.html" title="Class template bstree">bstree</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="idm45971716341168-bb"></a><span class="special">~</span><span class="identifier">bstree</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm27818-bb"></a><span class="special">~</span><span class="identifier">bstree</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 set are not deleted (i.e. no destructors are called), but the nodes according to the <code class="computeroutput"><a class="link" href="value_traits.html" title="Struct template value_traits">value_traits</a></code> template parameter are reinitialized and thus can be reused.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to elements contained in *this.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> @@ -257,132 +258,132 @@ </ol></div> </div> <div class="refsect2"> -<a name="id-1.3.20.42.9.3.4.7"></a><h3> -<a name="idm45971716889744-bb"></a><code class="computeroutput">bstree</code> public member functions</h3> +<a name="id-1.3.18.42.9.3.4.7"></a><h3> +<a name="idm26502-bb"></a><code class="computeroutput">bstree</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="idm45971716889184-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="idm26503-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 container.</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="idm45971716885344-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="idm26512-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 container.</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="idm45971716881504-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="idm26521-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 container.</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">iterator</span> <a name="idm45971716877664-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="idm26530-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 container.</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="idm45971716873824-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="idm26539-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 container.</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="idm45971716869984-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="idm26548-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 container.</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">reverse_iterator</span> <a name="idm45971716866144-bb"></a><span class="identifier">rbegin</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">reverse_iterator</span> <a name="idm26557-bb"></a><span class="identifier">rbegin</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 a reverse_iterator pointing to the beginning of the reversed container.</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_reverse_iterator</span> <a name="idm45971716862288-bb"></a><span class="identifier">rbegin</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_reverse_iterator</span> <a name="idm26566-bb"></a><span class="identifier">rbegin</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_reverse_iterator pointing to the beginning of the reversed container.</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_reverse_iterator</span> <a name="idm45971716858432-bb"></a><span class="identifier">crbegin</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_reverse_iterator</span> <a name="idm26575-bb"></a><span class="identifier">crbegin</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_reverse_iterator pointing to the beginning of the reversed container.</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">reverse_iterator</span> <a name="idm45971716854576-bb"></a><span class="identifier">rend</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">reverse_iterator</span> <a name="idm26584-bb"></a><span class="identifier">rend</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 a reverse_iterator pointing to the end of the reversed container.</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_reverse_iterator</span> <a name="idm45971716850720-bb"></a><span class="identifier">rend</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_reverse_iterator</span> <a name="idm26593-bb"></a><span class="identifier">rend</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_reverse_iterator pointing to the end of the reversed container.</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_reverse_iterator</span> <a name="idm45971716846864-bb"></a><span class="identifier">crend</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_reverse_iterator</span> <a name="idm26602-bb"></a><span class="identifier">crend</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_reverse_iterator pointing to the end of the reversed container.</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">iterator</span> <a name="idm45971716843008-bb"></a><span class="identifier">root</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="idm26611-bb"></a><span class="identifier">root</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 a iterator pointing to the root node of the container or end() if not present.</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="idm45971716839136-bb"></a><span class="identifier">root</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="idm26620-bb"></a><span class="identifier">root</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 root node of the container or cend() if not present.</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="idm45971716835264-bb"></a><span class="identifier">croot</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="idm26629-bb"></a><span class="identifier">croot</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 root node of the container or cend() if not present.</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">key_compare</span> <a name="idm45971716831392-bb"></a><span class="identifier">key_comp</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_compare</span> <a name="idm26638-bb"></a><span class="identifier">key_comp</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_compare object used by the container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> <p><span class="bold"><strong>Throws</strong></span>: If key_compare copy-constructor throws. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">value_compare</span> <a name="idm45971716827536-bb"></a><span class="identifier">value_comp</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">value_compare</span> <a name="idm26647-bb"></a><span class="identifier">value_comp</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 value_compare object used by the container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> <p><span class="bold"><strong>Throws</strong></span>: If value_compare copy-constructor throws. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">bool</span> <a name="idm45971716823664-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="idm26656-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>: 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="idm45971716819840-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="idm26665-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to elements contained in *this if constant-time size option is disabled. 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="idm45971716815904-bb"></a><span class="identifier">swap</span><span class="special">(</span><a class="link" href="bstree.html" title="Class template bstree">bstree</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="idm26674-bb"></a><span class="identifier">swap</span><span class="special">(</span><a class="link" href="bstree.html" title="Class template bstree">bstree</a> <span class="special">&</span> other<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Swaps the contents of two containers.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> <p><span class="bold"><strong>Throws</strong></span>: If the comparison functor's swap call throws. </p> </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="idm45971716811360-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="bstree.html" title="Class template bstree">bstree</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="idm26686-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="bstree.html" title="Class template bstree">bstree</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 equivalent to the original nodes.</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. Copies the predicate from the source container.</p> <p>If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).</p> @@ -391,7 +392,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="idm45971716802304-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><a class="link" href="bstree.html" title="Class template bstree">bstree</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="idm26708-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><a class="link" href="bstree.html" title="Class template bstree">bstree</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 equivalent to the original nodes.</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. Copies the predicate from the source container.</p> <p>If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).</p> @@ -400,7 +401,7 @@ <p><span class="bold"><strong>Note</strong></span>: This version can modify the source container, useful to implement move semantics. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971716792496-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="idm26732-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 value into the container before the upper bound.</p> <p><span class="bold"><strong>Complexity</strong></span>: Average complexity for insert element is at most logarithmic.</p> @@ -408,7 +409,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">iterator</span> <a name="idm45971716786336-bb"></a><span class="identifier">insert_equal</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<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="idm26747-bb"></a><span class="identifier">insert_equal</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<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, and "hint" must be a valid iterator.</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts x into the container, using "hint" as a hint to where it will be inserted. If "hint" is the upper_bound the insertion takes constant time (two comparisons in the worst case)</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic in general, but it is amortized constant time if t is inserted immediately before hint.</p> @@ -416,7 +417,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="idm45971716779312-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="idm26764-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>: Inserts a each element of a range into the container before the upper bound of the key of each element.</p> <p><span class="bold"><strong>Complexity</strong></span>: Insert range is in general O(N * log(N)), where N is the size of the range. However, it is linear in N if the range is already sorted by value_comp().</p> @@ -424,7 +425,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="idm45971716771472-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="idm26783-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>: Inserts value into the container if the value is not already present.</p> <p><span class="bold"><strong>Complexity</strong></span>: Average complexity for insert element is at most logarithmic.</p> @@ -432,7 +433,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">iterator</span> <a name="idm45971716765328-bb"></a><span class="identifier">insert_unique</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<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="idm26798-bb"></a><span class="identifier">insert_unique</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<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, and "hint" must be a valid iterator</p> <p><span class="bold"><strong>Effects</strong></span>: Tries to insert x into the container, using "hint" as a hint to where it will be inserted.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic in general, but it is amortized constant time (two comparisons in the worst case) if t is inserted immediately before hint.</p> @@ -440,7 +441,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="idm45971716758368-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="idm26815-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>: Tries to insert each element of a range into the container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Insert range is in general O(N * log(N)), where N is the size of the range. However, it is linear in N if the range is already sorted by value_comp().</p> @@ -449,7 +450,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="idm45971716750576-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="idm26834-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 container, 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 complexity is at most logarithmic.</p> @@ -457,7 +458,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="idm45971716744384-bb"></a><span class="identifier">insert_unique_check</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> key<span class="special">,</span> +<a name="idm26849-bb"></a><span class="identifier">insert_unique_check</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<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 container, using a user provided key instead of the value itself, using "hint" as a hint to where it will be inserted.</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> @@ -467,7 +468,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> KeyTypeKeyCompare<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="idm45971716737408-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">KeyTypeKeyCompare</span> comp<span class="special">,</span> + <a name="idm26866-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">KeyTypeKeyCompare</span> comp<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>: comp must be a comparison function that induces the same strict weak ordering as key_compare. The difference is that comp compares an arbitrary key with the contained values.</p> <p><span class="bold"><strong>Effects</strong></span>: Checks if a value can be inserted in the container, using a user provided key instead of the value itself.</p> @@ -481,7 +482,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> KeyTypeKeyCompare<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="idm45971716726000-bb"></a><span class="identifier">insert_unique_check</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> key<span class="special">,</span> + <a name="idm26892-bb"></a><span class="identifier">insert_unique_check</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<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">KeyTypeKeyCompare</span> comp<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>: comp must be a comparison function that induces the same strict weak ordering as key_compare. The difference is that comp compares an arbitrary key with the contained values.</p> @@ -494,7 +495,7 @@ <p>"commit_data" remains valid for a subsequent "insert_commit" only if no more objects are inserted or erased from the container. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971716713808-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="idm26920-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 container 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 container using the information obtained from the "commit_data" that a previous "insert_check" filled.</p> @@ -504,7 +505,7 @@ <p><span class="bold"><strong>Notes</strong></span>: This function has only sense if a "insert_check" has been previously executed to fill "commit_data". No value should be inserted or erased between the "insert_check" and "insert_commit" calls. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971716705504-bb"></a><span class="identifier">insert_before</span><span class="special">(</span><span class="identifier">const_iterator</span> pos<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="idm26939-bb"></a><span class="identifier">insert_before</span><span class="special">(</span><span class="identifier">const_iterator</span> pos<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, "pos" must be a valid iterator (or end) and must be the succesor of value once inserted according to the predicate</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts x into the container before "pos".</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> @@ -512,7 +513,7 @@ <p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if "pos" is not the successor of "value" container ordering invariant will be broken. This is a low-level function to be used only for performance reasons by advanced users. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971716698272-bb"></a><span class="identifier">push_back</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">void</span> <a name="idm26956-bb"></a><span class="identifier">push_back</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 it must be no less than the greatest inserted key</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts x into the container in the last position.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> @@ -520,7 +521,7 @@ <p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if value is less than the greatest inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971716691712-bb"></a><span class="identifier">push_front</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">void</span> <a name="idm26971-bb"></a><span class="identifier">push_front</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 it must be no greater than the minimum inserted key</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts x into the container in the first position.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> @@ -528,21 +529,21 @@ <p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if value is greater than the minimum inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971716685152-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="identifier">iterator</span> <a name="idm26986-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 complexity for erase element is constant time.</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">iterator</span> <a name="idm45971716679664-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="identifier">iterator</span> <a name="idm26999-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 complexity for erase range is at most O(log(size() + N)), where N is the number of elements in the range.</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="idm45971716673424-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="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="identifier">size_type</span> <a name="idm27014-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="keyword">noexcept</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>: O(log(size() + N).</p> @@ -551,7 +552,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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971716667104-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <span class="identifier">size_type</span> <a name="idm27029-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Erases all the elements with the given key. according to the comparison functor "comp".</p> <p><span class="bold"><strong>Returns</strong></span>: The number of erased elements.</p> @@ -561,7 +562,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">iterator</span> <a name="idm45971716657008-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="identifier">iterator</span> <a name="idm27053-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 complexity for erase element is constant time.</p> @@ -570,7 +571,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="idm45971716649104-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="idm27072-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> @@ -580,7 +581,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">iterator</span> <a name="idm45971716640576-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">iterator</span> <a name="idm27093-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> @@ -590,7 +591,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> KeyTypeKeyCompare<span class="special">,</span> <span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971716631920-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">KeyTypeKeyCompare</span> comp<span class="special">,</span> + <span class="identifier">size_type</span> <a name="idm27114-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">KeyTypeKeyCompare</span> comp<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>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk) and nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Requires</strong></span>: Disposer::operator()(pointer) shouldn't throw.</p> @@ -601,118 +602,118 @@ <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="idm45971716619696-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="idm27143-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="idm45971716614832-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="idm27154-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>Effects</strong></span>: Erases all of the elements calling disposer(p) for each node to be erased. <span class="bold"><strong>Complexity</strong></span>: Average complexity for is at most O(log(size() + N)), where N is the number of elements in the container.</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. Calls N times to disposer functor. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">size_type</span> <a name="idm45971716608528-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="idm27168-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>: Logarithmic to the number of elements contained plus lineal to number of objects with the given value.</p> <p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> 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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971716603456-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> + <span class="identifier">size_type</span> <a name="idm27180-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns the number of contained elements with the given key</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic to the number of elements contained plus lineal to number of objects with the given key.</p> <p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971716594400-bb"></a><span class="identifier">lower_bound</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="idm27201-bb"></a><span class="identifier">lower_bound</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 an iterator to the first element whose key is not less than k or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> <p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971716589648-bb"></a><span class="identifier">lower_bound</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="idm27213-bb"></a><span class="identifier">lower_bound</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 an iterator to the first element whose key is not less than k or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> <p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> 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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a name="idm45971716584624-bb"></a><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <span class="identifier">iterator</span> <a name="idm27225-bb"></a><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> 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> KeyTypeKeyCompare<span class="special">></span> <span class="identifier">const_iterator</span> - <a name="idm45971716577776-bb"></a><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> + <a name="idm27242-bb"></a><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971716570656-bb"></a><span class="identifier">upper_bound</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="idm27259-bb"></a><span class="identifier">upper_bound</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 an iterator to the first element whose key is greater than k or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> <p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> 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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a name="idm45971716565904-bb"></a><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <span class="identifier">iterator</span> <a name="idm27271-bb"></a><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns an iterator to the first element whose key is greater than k according to comp or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> <p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971716557200-bb"></a><span class="identifier">upper_bound</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="idm27292-bb"></a><span class="identifier">upper_bound</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 an iterator to the first element whose key is greater than k or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> 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> KeyTypeKeyCompare<span class="special">></span> <span class="identifier">const_iterator</span> - <a name="idm45971716552176-bb"></a><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> + <a name="idm27304-bb"></a><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns an iterator to the first element whose key is greater than k according to comp or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971716543200-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="idm27325-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 whose key is k or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> <p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> 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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a name="idm45971716538464-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <span class="identifier">iterator</span> <a name="idm27337-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Finds an iterator to the first element whose key is k or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> <p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971716529728-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="idm27358-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 an iterator to the first element whose key is k or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> 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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">const_iterator</span> <a name="idm45971716524720-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> + <span class="identifier">const_iterator</span> <a name="idm27370-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Finds an iterator to the first element whose key is k or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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="idm45971716515712-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="idm27391-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>: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> <p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> @@ -720,7 +721,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> KeyTypeKeyCompare<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="idm45971716510880-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <a name="idm27403-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> @@ -728,23 +729,23 @@ </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="idm45971716502048-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="idm27424-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>: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> 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> KeyTypeKeyCompare<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="idm45971716496928-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> + <a name="idm27436-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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="idm45971716487808-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> upper_value<span class="special">,</span> +<a name="idm27457-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> upper_value<span class="special">,</span> <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: <code class="computeroutput">upper_key</code> shall not precede <code class="computeroutput">lower_key</code> according to key_compare. [key_comp()(upper_key, lower_key) shall be false]</p> <p>If <code class="computeroutput">lower_key</code> is equivalent to <code class="computeroutput">upper_key</code> [!key_comp()(upper_key, lower_key) && !key_comp()(lower_key, upper_key)] then ('left_closed' || 'right_closed') must be false.</p> @@ -759,7 +760,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> KeyTypeKeyCompare<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="idm45971716475376-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> + <a name="idm27488-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span> comp<span class="special">,</span> <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: <code class="computeroutput">lower_key</code> is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, lower_key) if left_closed is true, with respect to !comp(lower_key, nk) otherwise.</p> <p><code class="computeroutput">upper_key</code> is a value such that <code class="computeroutput">*this</code> is partitioned with respect to !comp(upper_key, nk) if right_closed is true, with respect to comp(nk, upper_key) otherwise.</p> @@ -775,7 +776,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="idm45971716458576-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> upper_key<span class="special">,</span> +<a name="idm27530-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> upper_key<span class="special">,</span> <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: <code class="computeroutput">upper_key</code> shall not precede <code class="computeroutput">lower_key</code> according to key_compare. [key_comp()(upper_key, lower_key) shall be false]</p> <p>If <code class="computeroutput">lower_key</code> is equivalent to <code class="computeroutput">upper_key</code> [!key_comp()(upper_key, lower_key) && !key_comp()(lower_key, upper_key)] then ('left_closed' || 'right_closed') must be false.</p> @@ -785,12 +786,12 @@ <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> <p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws.</p> <p><span class="bold"><strong>Note</strong></span>: This function can be more efficient than calling upper_bound and lower_bound for lower_value and upper_value.</p> -<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </p> +<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </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> KeyTypeKeyCompare<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="idm45971716445856-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> + <a name="idm27561-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span> comp<span class="special">,</span> <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: <code class="computeroutput">lower_key</code> is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, lower_key) if left_closed is true, with respect to !comp(lower_key, nk) otherwise.</p> <p><code class="computeroutput">upper_key</code> is a value such that <code class="computeroutput">*this</code> is partitioned with respect to !comp(upper_key, nk) if right_closed is true, with respect to comp(nk, upper_key) otherwise.</p> @@ -802,31 +803,31 @@ <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> <p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws.</p> <p><span class="bold"><strong>Note</strong></span>: This function can be more efficient than calling upper_bound and lower_bound for lower_key and upper_key.</p> -<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </p> +<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971716428768-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="idm27603-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 set of appropriate type. Otherwise the behavior is undefined.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns: a valid iterator i belonging to the set 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_iterator</span> <a name="idm45971716423280-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="idm27616-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 set of appropriate type. Otherwise the behavior is undefined.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns: a valid const_iterator i belonging to the set 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">pointer</span> <a name="idm45971716417792-bb"></a><span class="identifier">unlink_leftmost_without_rebalance</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">pointer</span> <a name="idm27629-bb"></a><span class="identifier">unlink_leftmost_without_rebalance</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>: Unlinks the leftmost node from the container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Average complexity is constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Notes</strong></span>: This function breaks the container and the container can only be used for more unlink_leftmost_without_rebalance calls. This function is normally used to achieve a step by step controlled destruction of the container. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971716412880-bb"></a><span class="identifier">replace_node</span><span class="special">(</span><span class="identifier">iterator</span> replace_this<span class="special">,</span> <span class="identifier">reference</span> with_this<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">void</span> <a name="idm27640-bb"></a><span class="identifier">replace_node</span><span class="special">(</span><span class="identifier">iterator</span> replace_this<span class="special">,</span> <span class="identifier">reference</span> with_this<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: replace_this must be a valid iterator of *this and with_this must not be inserted in any container.</p> <p><span class="bold"><strong>Effects</strong></span>: Replaces replace_this in its position in the container with with_this. The container does not need to be rebalanced.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> @@ -834,13 +835,13 @@ <p><span class="bold"><strong>Note</strong></span>: This function will break container ordering invariants if with_this is not equivalent to *replace_this according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing or comparison is needed. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971716405616-bb"></a><span class="identifier">rebalance</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="idm27657-bb"></a><span class="identifier">rebalance</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>: Rebalances the tree.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971716401824-bb"></a><span class="identifier">rebalance_subtree</span><span class="special">(</span><span class="identifier">iterator</span> root<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm27666-bb"></a><span class="identifier">rebalance_subtree</span><span class="special">(</span><span class="identifier">iterator</span> r<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: old_root is a node of a tree.</p> <p><span class="bold"><strong>Effects</strong></span>: Rebalances the subtree rooted at old_root.</p> <p><span class="bold"><strong>Returns</strong></span>: The new root of the subtree.</p> @@ -849,32 +850,32 @@ </li> <li class="listitem"> <pre class="literallayout"><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> Options2<span class="special">></span> - <span class="keyword">void</span> <a name="idm45971716395552-bb"></a><span class="identifier">merge_unique</span><span class="special">(</span><a class="link" href="bstree.html" title="Class template bstree">bstree</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span></pre> + <span class="keyword">void</span> <a name="idm27681-bb"></a><span class="identifier">merge_unique</span><span class="special">(</span><a class="link" href="bstree.html" title="Class template bstree">bstree</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "source" container's Options can only can differ in the comparison function from *this.</p> <p><span class="bold"><strong>Effects</strong></span>: Attempts to extract each element in source and insert it into a using the comparison object of *this. If there is an element in a with key equivalent to the key of an element from source, then that element is not extracted from source.</p> <p><span class="bold"><strong>Postcondition</strong></span>: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing unless the comparison object throws.</p> <p><span class="bold"><strong>Complexity</strong></span>: N log(a.size() + N) (N has the value source.size()) </p> </li> -<li class="listitem"><pre class="literallayout"> <a name="idm45971716387040-bb"></a><span class="keyword">while</span><span class="special">(</span><span class="identifier">it</span> <span class="special">!</span> <span class="special">=</span> <span class="identifier">itend</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"> <a name="idm27701-bb"></a><span class="keyword">while</span><span class="special">(</span><span class="identifier">it</span> <span class="special">!</span> <span class="special">=</span> <span class="identifier">itend</span><span class="special">)</span><span class="special">;</span></pre></li> <li class="listitem"> <pre class="literallayout"><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> Options2<span class="special">></span> - <span class="keyword">void</span> <a name="idm45971716385376-bb"></a><span class="identifier">merge_equal</span><span class="special">(</span><a class="link" href="bstree.html" title="Class template bstree">bstree</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span></pre> + <span class="keyword">void</span> <a name="idm27706-bb"></a><span class="identifier">merge_equal</span><span class="special">(</span><a class="link" href="bstree.html" title="Class template bstree">bstree</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "source" container's Options can only can differ in the comparison function from *this.</p> <p><span class="bold"><strong>Effects</strong></span>: Extracts each element in source and insert it into a using the comparison object of *this.</p> <p><span class="bold"><strong>Postcondition</strong></span>: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing unless the comparison object throws.</p> <p><span class="bold"><strong>Complexity</strong></span>: N log(a.size() + N) (N has the value source.size()) </p> </li> -<li class="listitem"><pre class="literallayout"> <a name="idm45971716377008-bb"></a><span class="keyword">while</span><span class="special">(</span><span class="identifier">it</span> <span class="special">!</span> <span class="special">=</span> <span class="identifier">itend</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"> <a name="idm27726-bb"></a><span class="keyword">while</span><span class="special">(</span><span class="identifier">it</span> <span class="special">!</span> <span class="special">=</span> <span class="identifier">itend</span><span class="special">)</span><span class="special">;</span></pre></li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> ExtraChecker<span class="special">></span> <span class="keyword">void</span> <a name="idm45971716375344-bb"></a><span class="identifier">check</span><span class="special">(</span><span class="identifier">ExtraChecker</span> extra_checker<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> ExtraChecker<span class="special">></span> <span class="keyword">void</span> <a name="idm27731-bb"></a><span class="identifier">check</span><span class="special">(</span><span class="identifier">ExtraChecker</span> extra_checker<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Asserts the integrity of the container with additional checks provided by the user.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear time.</p> <p><span class="bold"><strong>Note</strong></span>: The method might not have effect when asserts are turned off (e.g., with NDEBUG). Experimental function, interface might change in future versions. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971716369824-bb"></a><span class="identifier">check</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">void</span> <a name="idm27744-bb"></a><span class="identifier">check</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>: Asserts the integrity of the container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear time.</p> <p><span class="bold"><strong>Note</strong></span>: The method has no effect when asserts are turned off (e.g., with NDEBUG). Experimental function, interface might change in future versions. </p> @@ -882,11 +883,11 @@ </ol></div> </div> <div class="refsect2"> -<a name="id-1.3.20.42.9.3.4.8"></a><h3> -<a name="idm45971716337264-bb"></a><code class="computeroutput">bstree</code> public static functions</h3> +<a name="id-1.3.18.42.9.3.4.8"></a><h3> +<a name="idm27827-bb"></a><code class="computeroutput">bstree</code> public static functions</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <a class="link" href="bstree.html" title="Class template bstree">bstree</a> <span class="special">&</span> <a name="idm45971716336704-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <a class="link" href="bstree.html" title="Class template bstree">bstree</a> <span class="special">&</span> <a name="idm27828-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Precondition</strong></span>: end_iterator must be a valid end iterator of the container.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the container associated to the end iterator</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> @@ -894,28 +895,28 @@ </li> <li class="listitem"> <pre class="literallayout"><span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="bstree.html" title="Class template bstree">bstree</a> <span class="special">&</span> -<a name="idm45971716330688-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">const_iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<a name="idm27842-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">const_iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Precondition</strong></span>: end_iterator must be a valid end const_iterator of the container.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the container associated to the iterator</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <a class="link" href="bstree.html" title="Class template bstree">bstree</a> <span class="special">&</span> <a name="idm45971716324528-bb"></a><span class="identifier">container_from_iterator</span><span class="special">(</span><span class="identifier">iterator</span> it<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <a class="link" href="bstree.html" title="Class template bstree">bstree</a> <span class="special">&</span> <a name="idm27856-bb"></a><span class="identifier">container_from_iterator</span><span class="special">(</span><span class="identifier">iterator</span> it<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Precondition</strong></span>: it must be a valid iterator of the container.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the container associated to the iterator</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="bstree.html" title="Class template bstree">bstree</a> <span class="special">&</span> <a name="idm45971716318560-bb"></a><span class="identifier">container_from_iterator</span><span class="special">(</span><span class="identifier">const_iterator</span> it<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="bstree.html" title="Class template bstree">bstree</a> <span class="special">&</span> <a name="idm27870-bb"></a><span class="identifier">container_from_iterator</span><span class="special">(</span><span class="identifier">const_iterator</span> it<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Precondition</strong></span>: it must be a valid end const_iterator of container.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the container associated to the end iterator</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="identifier">iterator</span> <a name="idm45971716312416-bb"></a><span class="identifier">s_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">iterator</span> <a name="idm27884-bb"></a><span class="identifier">s_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 set of appropriate type. Otherwise the behavior is undefined.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns: a valid iterator i belonging to the set that points to the value</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> @@ -923,7 +924,7 @@ <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">const_iterator</span> <a name="idm45971716305328-bb"></a><span class="identifier">s_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> +<pre class="literallayout"><span class="keyword">static</span> <span class="identifier">const_iterator</span> <a name="idm27900-bb"></a><span class="identifier">s_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 set of appropriate type. Otherwise the behavior is undefined.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns: a valid const_iterator i belonging to the set that points to the value</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> @@ -931,7 +932,7 @@ <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="keyword">void</span> <a name="idm45971716298240-bb"></a><span class="identifier">init_node</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="keyword">void</span> <a name="idm27916-bb"></a><span class="identifier">init_node</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 shall not be in a container.</p> <p><span class="bold"><strong>Effects</strong></span>: init_node puts the hook of a value in a well-known default state.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> @@ -939,7 +940,7 @@ <p><span class="bold"><strong>Note</strong></span>: This function puts the hook in the well-known default state used by auto_unlink and safe hooks. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971716291648-bb"></a><span class="identifier">remove_node</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="keyword">void</span> <a name="idm27931-bb"></a><span class="identifier">remove_node</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>Effects</strong></span>: removes "value" from the container.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic time.</p> @@ -950,14 +951,11 @@ </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="make_bs_set_member_hook.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.bstree_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_bstree.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/bstree_algorithms.html b/doc/html/boost/intrusive/bstree_algorithms.html index ad1dc6e604..097d7bc28d 100644 --- a/doc/html/boost/intrusive/bstree_algorithms.html +++ b/doc/html/boost/intrusive/bstree_algorithms.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.bstree_algorithms_hpp" title="Header <boost/intrusive/bstree_algorithms.hpp>"> <link rel="prev" href="make_bstree.html" title="Struct template make_bstree"> <link rel="next" href="circular_list_algorithms.html" title="Class template circular_list_algorithms"> +<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> @@ -29,8 +30,8 @@ <h2><span class="refentrytitle">Class template bstree_algorithms</span></h2> <p>boost::intrusive::bstree_algorithms</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.bstree_algorithms_hpp" title="Header <boost/intrusive/bstree_algorithms.hpp>">boost/intrusive/bstree_algorithms.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.bstree_algorithms_hpp" title="Header <boost/intrusive/bstree_algorithms.hpp>">boost/intrusive/bstree_algorithms.hpp</a>> </span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodeTraits<span class="special">></span> <span class="keyword">class</span> <a class="link" href="bstree_algorithms.html" title="Class template bstree_algorithms">bstree_algorithms</a> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">bstree_algorithms_base</span><span class="special"><</span> <span class="identifier">NodeTraits</span> <span class="special">></span> <span class="special">{</span> @@ -43,146 +44,143 @@ <span class="keyword">typedef</span> <span class="identifier">insert_commit_data_t</span><span class="special"><</span> <span class="identifier">node_ptr</span> <span class="special">></span> <a name="boost.intrusive.bstree_algorithms.insert_commit_data"></a><span class="identifier">insert_commit_data</span><span class="special">;</span> <span class="keyword">typedef</span> <span class="identifier">data_for_rebalance_t</span><span class="special"><</span> <span class="identifier">node_ptr</span> <span class="special">></span> <a name="boost.intrusive.bstree_algorithms.data_for_rebalance"></a><span class="identifier">data_for_rebalance</span><span class="special">;</span> - <span class="comment">// <a class="link" href="bstree_algorithms.html#idm45971716247232-bb">public static functions</a></span> - <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="bstree_algorithms.html#idm45971716246672-bb"><span class="identifier">begin_node</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="bstree_algorithms.html#idm45971716240992-bb"><span class="identifier">end_node</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="bstree_algorithms.html#idm45971716235344-bb"><span class="identifier">root_node</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">bool</span> <a class="link" href="bstree_algorithms.html#idm45971716229952-bb"><span class="identifier">unique</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="bstree_algorithms.html#idm45971716224240-bb"><span class="identifier">get_header</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="bstree_algorithms.html#idm45971716218864-bb"><span class="identifier">swap_nodes</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="bstree_algorithms.html#idm45971716211136-bb"><span class="identifier">swap_nodes</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="bstree_algorithms.html#idm45971716202000-bb"><span class="identifier">replace_node</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="bstree_algorithms.html#idm45971716194432-bb"><span class="identifier">replace_node</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="bstree_algorithms.html#idm45971716186160-bb"><span class="identifier">next_node</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="bstree_algorithms.html#idm45971716180496-bb"><span class="identifier">prev_node</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="bstree_algorithms.html#idm45971716174800-bb"><span class="identifier">minimum</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="bstree_algorithms.html#idm45971716169360-bb"><span class="identifier">maximum</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="bstree_algorithms.html#idm45971716163920-bb"><span class="identifier">init</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">bool</span> <a class="link" href="bstree_algorithms.html#idm45971716157376-bb"><span class="identifier">inited</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="bstree_algorithms.html#idm45971716152848-bb"><span class="identifier">init_header</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="comment">// <a class="link" href="bstree_algorithms.html#idm28061-bb">public static functions</a></span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="bstree_algorithms.html#idm28062-bb"><span class="identifier">begin_node</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="bstree_algorithms.html#idm28075-bb"><span class="identifier">end_node</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="bstree_algorithms.html#idm28088-bb"><span class="identifier">root_node</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">bool</span> <a class="link" href="bstree_algorithms.html#idm28101-bb"><span class="identifier">unique</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="bstree_algorithms.html#idm28114-bb"><span class="identifier">get_header</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="bstree_algorithms.html#idm28127-bb"><span class="identifier">swap_nodes</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="bstree_algorithms.html#idm28145-bb"><span class="identifier">swap_nodes</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="bstree_algorithms.html#idm28167-bb"><span class="identifier">replace_node</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="../interprocess/offset_ptr.html#idm28184-bb"><span class="identifier">replace_node</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="bstree_algorithms.html#idm28203-bb"><span class="identifier">next_node</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="bstree_algorithms.html#idm28216-bb"><span class="identifier">prev_node</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="../interprocess/offset_ptr.html#idm28229-bb"><span class="identifier">minimum</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="../interprocess/offset_ptr.html#idm28242-bb"><span class="identifier">maximum</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="bstree_algorithms.html#idm28255-bb"><span class="identifier">init</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">bool</span> <a class="link" href="bstree_algorithms.html#idm28270-bb"><span class="identifier">inited</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="bstree_algorithms.html#idm28281-bb"><span class="identifier">init_header</span></a><span class="special">(</span><span class="identifier">node_ptr</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">static</span> <span class="keyword">void</span> <a class="link" href="bstree_algorithms.html#idm45971716146272-bb"><span class="identifier">clear_and_dispose</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</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">static</span> <span class="identifier">node_ptr</span> <a class="link" href="bstree_algorithms.html#idm45971716138416-bb"><span class="identifier">unlink_leftmost_without_rebalance</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a class="link" href="bstree_algorithms.html#idm45971716131648-bb"><span class="identifier">size</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="bstree_algorithms.html#idm45971716125984-bb"><span class="identifier">swap_tree</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">bool</span> <a class="link" href="bstree_algorithms.html#idm45971716119536-bb"><span class="identifier">is_header</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="bstree_algorithms.html#idm28296-bb"><span class="identifier">clear_and_dispose</span></a><span class="special">(</span><span class="identifier">node_ptr</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">static</span> <span class="identifier">node_ptr</span> <a class="link" href="bstree_algorithms.html#idm28314-bb"><span class="identifier">unlink_leftmost_without_rebalance</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a class="link" href="bstree_algorithms.html#idm28329-bb"><span class="identifier">size</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="bstree_algorithms.html#idm28342-bb"><span class="identifier">swap_tree</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">bool</span> <a class="link" href="bstree_algorithms.html#idm28357-bb"><span class="identifier">is_header</span></a><span class="special">(</span><span class="identifier">const_node_ptr</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> KeyType<span class="special">,</span> <span class="keyword">typename</span> KeyNodePtrCompare<span class="special">></span> - <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a class="link" href="bstree_algorithms.html#idm45971716113888-bb"><span class="identifier">find</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span><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">KeyNodePtrCompare</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="bstree_algorithms.html#idm28370-bb"><span class="identifier">find</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><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">KeyNodePtrCompare</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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span> <span class="special">></span> - <a class="link" href="bstree_algorithms.html#idm45971716105424-bb"><span class="identifier">bounded_range</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> + <a class="link" href="../container/basic_string.html#idm28390-bb"><span class="identifier">bounded_range</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><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">KeyNodePtrCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> - <a class="link" href="bstree_algorithms.html#idm45971716092288-bb"><span class="identifier">count</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span><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">KeyNodePtrCompare</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="bstree_algorithms.html#idm28422-bb"><span class="identifier">count</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><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">KeyNodePtrCompare</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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span> <span class="special">></span> - <a class="link" href="bstree_algorithms.html#idm45971716083872-bb"><span class="identifier">equal_range</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span><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">KeyNodePtrCompare</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="bstree_algorithms.html#idm28442-bb"><span class="identifier">equal_range</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><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">KeyNodePtrCompare</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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span> <span class="special">></span> - <a class="link" href="bstree_algorithms.html#idm45971716075280-bb"><span class="identifier">lower_bound_range</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span><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">KeyNodePtrCompare</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="bstree_algorithms.html#idm28462-bb"><span class="identifier">lower_bound_range</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><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">KeyNodePtrCompare</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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a class="link" href="bstree_algorithms.html#idm45971716066688-bb"><span class="identifier">lower_bound</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span><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">KeyNodePtrCompare</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="bstree_algorithms.html#idm28482-bb"><span class="identifier">lower_bound</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><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">KeyNodePtrCompare</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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a class="link" href="bstree_algorithms.html#idm45971716058224-bb"><span class="identifier">upper_bound</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span><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">KeyNodePtrCompare</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="bstree_algorithms.html#idm45971716049760-bb"><span class="identifier">insert_unique_commit</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> + <a class="link" href="../container/basic_string.html#idm28502-bb"><span class="identifier">upper_bound</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><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">KeyNodePtrCompare</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="bstree_algorithms.html#idm28522-bb"><span class="identifier">insert_unique_commit</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</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">template</span><span class="special"><</span><span class="keyword">typename</span> KeyType<span class="special">,</span> <span class="keyword">typename</span> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="keyword">bool</span> <span class="special">></span> - <a class="link" href="bstree_algorithms.html#idm45971716041344-bb"><span class="identifier">insert_unique_check</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span><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">KeyNodePtrCompare</span><span class="special">,</span> <span class="identifier">insert_commit_data</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="bstree_algorithms.html#idm28541-bb"><span class="identifier">insert_unique_check</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><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">KeyNodePtrCompare</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="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> KeyType<span class="special">,</span> <span class="keyword">typename</span> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="keyword">bool</span> <span class="special">></span> - <a class="link" href="bstree_algorithms.html#idm45971716028768-bb"><span class="identifier">insert_unique_check</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span><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">KeyNodePtrCompare</span><span class="special">,</span> - <span class="identifier">insert_commit_data</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="bstree_algorithms.html#idm28569-bb"><span class="identifier">insert_unique_check</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><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">KeyNodePtrCompare</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="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodePtrCompare<span class="special">></span> - <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="bstree_algorithms.html#idm45971716015200-bb"><span class="identifier">insert_equal</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">NodePtrCompare</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="bstree_algorithms.html#idm28599-bb"><span class="identifier">insert_equal</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">NodePtrCompare</span><span class="special">)</span><span class="special">;</span> <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a class="link" href="bstree_algorithms.html#idm45971716006432-bb"><span class="identifier">insert_equal_upper_bound</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">NodePtrCompare</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="bstree_algorithms.html#idm28620-bb"><span class="identifier">insert_equal_upper_bound</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">NodePtrCompare</span><span class="special">)</span><span class="special">;</span> <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a class="link" href="bstree_algorithms.html#idm45971715998544-bb"><span class="identifier">insert_equal_lower_bound</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">NodePtrCompare</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="bstree_algorithms.html#idm45971715990656-bb"><span class="identifier">insert_before</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="bstree_algorithms.html#idm45971715982416-bb"><span class="identifier">push_back</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="bstree_algorithms.html#idm45971715974992-bb"><span class="identifier">push_front</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a class="link" href="bstree_algorithms.html#idm45971715967568-bb"><span class="identifier">depth</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <a class="link" href="bstree_algorithms.html#idm28639-bb"><span class="identifier">insert_equal_lower_bound</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">NodePtrCompare</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="bstree_algorithms.html#idm28658-bb"><span class="identifier">insert_before</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="../container/basic_string.html#idm28677-bb"><span class="identifier">push_back</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="bstree_algorithms.html#idm28694-bb"><span class="identifier">push_front</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a class="link" href="bstree_algorithms.html#idm28711-bb"><span class="identifier">depth</span></a><span class="special">(</span><span class="identifier">const_node_ptr</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> Cloner<span class="special">,</span> <span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="bstree_algorithms.html#idm45971715961776-bb"><span class="identifier">clone</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">node_ptr</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">static</span> <span class="keyword">void</span> <a class="link" href="bstree_algorithms.html#idm45971715950752-bb"><span class="identifier">erase</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="bstree_algorithms.html#idm28724-bb"><span class="identifier">clone</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</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">static</span> <span class="keyword">void</span> <a class="link" href="bstree_algorithms.html#idm28750-bb"><span class="identifier">erase</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</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> NodePtrCompare<span class="special">></span> - <span class="keyword">static</span> <span class="keyword">bool</span> <a class="link" href="bstree_algorithms.html#idm45971715944352-bb"><span class="identifier">transfer_unique</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">NodePtrCompare</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">bool</span> <a class="link" href="bstree_algorithms.html#idm28765-bb"><span class="identifier">transfer_unique</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">NodePtrCompare</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span><span class="special">;</span> <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodePtrCompare<span class="special">></span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="bstree_algorithms.html#idm45971715934992-bb"><span class="identifier">transfer_equal</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">NodePtrCompare</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="bstree_algorithms.html#idm45971715926560-bb"><span class="identifier">unlink</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="bstree_algorithms.html#idm45971715920880-bb"><span class="identifier">rebalance</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="bstree_algorithms.html#idm45971715915264-bb"><span class="identifier">rebalance_subtree</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="bstree_algorithms.html#idm28788-bb"><span class="identifier">transfer_equal</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">NodePtrCompare</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="bstree_algorithms.html#idm28809-bb"><span class="identifier">unlink</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="bstree_algorithms.html#idm28822-bb"><span class="identifier">rebalance</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="bstree_algorithms.html#idm28835-bb"><span class="identifier">rebalance_subtree</span></a><span class="special">(</span><span class="identifier">node_ptr</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> Checker<span class="special">></span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="bstree_algorithms.html#idm45971715908736-bb"><span class="identifier">check</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">Checker</span><span class="special">,</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="../container/basic_string.html#idm28850-bb"><span class="identifier">check</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">,</span> <span class="identifier">Checker</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Checker</span><span class="special">::</span><span class="identifier">return_type</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> - <span class="comment">// <a class="link" href="bstree_algorithms.html#idm45971715900800-bb">protected static functions</a></span> + <span class="comment">// <a class="link" href="bstree_algorithms.html#idm28869-bb">protected static functions</a></span> <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodePtrCompare<span class="special">></span> - <span class="keyword">static</span> <span class="keyword">bool</span> <a class="link" href="bstree_algorithms.html#idm45971715900224-bb"><span class="identifier">transfer_unique</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">NodePtrCompare</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> + <span class="keyword">static</span> <span class="keyword">bool</span> <a class="link" href="bstree_algorithms.html#idm28870-bb"><span class="identifier">transfer_unique</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">NodePtrCompare</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">data_for_rebalance</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> NodePtrCompare<span class="special">></span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="bstree_algorithms.html#idm45971715894816-bb"><span class="identifier">transfer_equal</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">NodePtrCompare</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="bstree_algorithms.html#idm28884-bb"><span class="identifier">transfer_equal</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">NodePtrCompare</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">data_for_rebalance</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="bstree_algorithms.html#idm45971715889408-bb"><span class="identifier">erase</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">data_for_rebalance</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a class="link" href="bstree_algorithms.html#idm45971715886224-bb"><span class="identifier">subtree_size</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">bool</span> <a class="link" href="bstree_algorithms.html#idm45971715880560-bb"><span class="identifier">is_left_child</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">bool</span> <a class="link" href="bstree_algorithms.html#idm45971715874928-bb"><span class="identifier">is_right_child</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="bstree_algorithms.html#idm45971715869296-bb"><span class="identifier">insert_before_check</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</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="keyword">static</span> <span class="keyword">void</span> <a class="link" href="bstree_algorithms.html#idm45971715866112-bb"><span class="identifier">push_back_check</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</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">static</span> <span class="keyword">void</span> <a class="link" href="bstree_algorithms.html#idm45971715863344-bb"><span class="identifier">push_front_check</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</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">static</span> <span class="keyword">void</span> <a class="link" href="bstree_algorithms.html#idm28898-bb"><span class="identifier">erase</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">data_for_rebalance</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a class="link" href="bstree_algorithms.html#idm28906-bb"><span class="identifier">subtree_size</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">bool</span> <a class="link" href="bstree_algorithms.html#idm28919-bb"><span class="identifier">is_left_child</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">bool</span> <a class="link" href="../container/basic_string.html#idm28932-bb"><span class="identifier">is_right_child</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="bstree_algorithms.html#idm28945-bb"><span class="identifier">insert_before_check</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</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="keyword">static</span> <span class="keyword">void</span> <a class="link" href="bstree_algorithms.html#idm28953-bb"><span class="identifier">push_back_check</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</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">static</span> <span class="keyword">void</span> <a class="link" href="../interprocess/deleter.html#idm28959-bb"><span class="identifier">push_front_check</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</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">template</span><span class="special"><</span><span class="keyword">typename</span> NodePtrCompare<span class="special">></span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="bstree_algorithms.html#idm45971715860576-bb"><span class="identifier">insert_equal_check</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="bstree_algorithms.html#idm28965-bb"><span class="identifier">insert_equal_check</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">NodePtrCompare</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="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodePtrCompare<span class="special">></span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="bstree_algorithms.html#idm45971715855168-bb"><span class="identifier">insert_equal_upper_bound_check</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="../interprocess/enable_shared_from_this.html#idm28979-bb"><span class="identifier">insert_equal_upper_bound_check</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">NodePtrCompare</span><span class="special">,</span> <span class="identifier">insert_commit_data</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="special">*</span> <span class="special">=</span> <span class="number">0</span><span class="special">)</span><span class="special">;</span> <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodePtrCompare<span class="special">></span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="bstree_algorithms.html#idm45971715849456-bb"><span class="identifier">insert_equal_lower_bound_check</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="bstree_algorithms.html#idm28994-bb"><span class="identifier">insert_equal_lower_bound_check</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">NodePtrCompare</span><span class="special">,</span> <span class="identifier">insert_commit_data</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="special">*</span> <span class="special">=</span> <span class="number">0</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="bstree_algorithms.html#idm45971715843744-bb"><span class="identifier">insert_commit</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</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">static</span> <span class="keyword">void</span> <a class="link" href="bstree_algorithms.html#idm45971715840272-bb"><span class="identifier">set_child</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="keyword">const</span> <span class="keyword">bool</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="bstree_algorithms.html#idm45971715836128-bb"><span class="identifier">rotate_left_no_parent_fix</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="bstree_algorithms.html#idm45971715833344-bb"><span class="identifier">rotate_left</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="bstree_algorithms.html#idm45971715829200-bb"><span class="identifier">rotate_right_no_parent_fix</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="bstree_algorithms.html#idm45971715826416-bb"><span class="identifier">rotate_right</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="../interprocess/intrusive_ptr.html#idm29009-bb"><span class="identifier">insert_commit</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</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">static</span> <span class="keyword">void</span> <a class="link" href="../interprocess/intrusive_ptr.html#idm29017-bb"><span class="identifier">set_child</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="keyword">const</span> <span class="keyword">bool</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="bstree_algorithms.html#idm29027-bb"><span class="identifier">rotate_left_no_parent_fix</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="../interprocess/intrusive_ptr.html#idm29033-bb"><span class="identifier">rotate_left</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="bstree_algorithms.html#idm29043-bb"><span class="identifier">rotate_right_no_parent_fix</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="bstree_algorithms.html#idm29049-bb"><span class="identifier">rotate_right</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="comment">// <a class="link" href="bstree_algorithms.html#idm45971715822112-bb">private static functions</a></span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="bstree_algorithms.html#idm45971715821536-bb"><span class="identifier">subtree_to_vine</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="bstree_algorithms.html#idm45971715818768-bb"><span class="identifier">compress_subtree</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="bstree_algorithms.html#idm45971715816000-bb"><span class="identifier">vine_to_subtree</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="bstree_algorithms.html#idm45971715813232-bb"><span class="identifier">get_root</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">node_ptr</span> <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/intrusive_ptr.html#idm29059-bb">private static functions</a></span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="bstree_algorithms.html#idm29060-bb"><span class="identifier">subtree_to_vine</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="../container/basic_string.html#idm29066-bb"><span class="identifier">compress_subtree</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="bstree_algorithms.html#idm29072-bb"><span class="identifier">vine_to_subtree</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="../interprocess/intrusive_ptr.html#idm29078-bb"><span class="identifier">get_root</span></a><span class="special">(</span><span class="identifier">node_ptr</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> Cloner<span class="special">,</span> <span class="keyword">typename</span> Disposer<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a class="link" href="bstree_algorithms.html#idm45971715807568-bb"><span class="identifier">clone_subtree</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">node_ptr</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="identifier">node_ptr</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">node_ptr</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="bstree_algorithms.html#idm29091-bb"><span class="identifier">clone_subtree</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</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="identifier">node_ptr</span> <span class="special">&</span><span class="special">,</span> + <span class="identifier">node_ptr</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> Disposer<span class="special">></span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="bstree_algorithms.html#idm45971715800912-bb"><span class="identifier">dispose_subtree</span></a><span class="special">(</span><span class="identifier">node_ptr</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">static</span> <span class="keyword">void</span> <a class="link" href="bstree_algorithms.html#idm29108-bb"><span class="identifier">dispose_subtree</span></a><span class="special">(</span><span class="identifier">node_ptr</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> KeyType<span class="special">,</span> <span class="keyword">typename</span> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a class="link" href="bstree_algorithms.html#idm45971715797296-bb"><span class="identifier">lower_bound_loop</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><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">KeyNodePtrCompare</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="bstree_algorithms.html#idm29116-bb"><span class="identifier">lower_bound_loop</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><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">KeyNodePtrCompare</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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a class="link" href="bstree_algorithms.html#idm45971715792016-bb"><span class="identifier">upper_bound_loop</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><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">KeyNodePtrCompare</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="bstree_algorithms.html#idm29129-bb"><span class="identifier">upper_bound_loop</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><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">KeyNodePtrCompare</span><span class="special">)</span><span class="special">;</span> <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Checker<span class="special">></span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="bstree_algorithms.html#idm45971715786736-bb"><span class="identifier">check_subtree</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">Checker</span><span class="special">,</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="bstree_algorithms.html#idm29142-bb"><span class="identifier">check_subtree</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">,</span> <span class="identifier">Checker</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Checker</span><span class="special">::</span><span class="identifier">return_type</span> <span class="special">&</span><span class="special">)</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.10.3.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.10.3.4"></a><h2>Description</h2> <p>This is an implementation of a binary search tree. A node in the search tree has references to its children and its parent. This is to allow traversal of the whole tree from a given node making the implementation of iterator a pointer to a node. At the top of the tree a node is used specially. This node's parent pointer is pointing to the root of the tree. Its left pointer points to the leftmost node in the tree and the right pointer to the rightmost one. This node is used to represent the end-iterator. +---------+ header------------------------------>| | | | @@ -265,46 +263,46 @@ header------------------------------>| | <p><code class="computeroutput">static node_ptr get_right(const_node_ptr n);</code></p> <p><code class="computeroutput">static void set_right(node_ptr n, node_ptr right);</code> </p> <div class="refsect2"> -<a name="id-1.3.20.42.10.3.4.15"></a><h3> -<a name="idm45971716247232-bb"></a><code class="computeroutput">bstree_algorithms</code> public static functions</h3> +<a name="id-1.3.18.42.10.3.4.15"></a><h3> +<a name="idm28061-bb"></a><code class="computeroutput">bstree_algorithms</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">node_ptr</span> <a name="idm45971716246672-bb"></a><span class="identifier">begin_node</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span> header<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">node_ptr</span> <a name="idm28062-bb"></a><span class="identifier">begin_node</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: 'header' is the header node of a tree.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns the first node of the tree, the header if the tree is empty.</p> <p><span class="bold"><strong>Complexity</strong></span>: 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">node_ptr</span> <a name="idm45971716240992-bb"></a><span class="identifier">end_node</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span> header<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">node_ptr</span> <a name="idm28075-bb"></a><span class="identifier">end_node</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: 'header' is the header node of a tree.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns the header of the tree.</p> <p><span class="bold"><strong>Complexity</strong></span>: 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">node_ptr</span> <a name="idm45971716235344-bb"></a><span class="identifier">root_node</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span> header<span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="identifier">node_ptr</span> <a name="idm28088-bb"></a><span class="identifier">root_node</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: 'header' is the header node of a tree.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns the root of the tree if any, header otherwise</p> <p><span class="bold"><strong>Complexity</strong></span>: 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="keyword">bool</span> <a name="idm45971716229952-bb"></a><span class="identifier">unique</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span> node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: 'node' is a node of the tree or a node initialized by init(...) or init_node.</p> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">bool</span> <a name="idm28101-bb"></a><span class="identifier">unique</span><span class="special">(</span><span class="identifier">const_node_ptr</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 a node of the tree or a node initialized by init(...) or init_node.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns true if the node is initialized by init() or init_node().</p> <p><span class="bold"><strong>Complexity</strong></span>: 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">node_ptr</span> <a name="idm45971716224240-bb"></a><span class="identifier">get_header</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span> node<span class="special">)</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: 'node' is a node of the tree or a header node.</p> +<pre class="literallayout"><span class="keyword">static</span> <span class="identifier">node_ptr</span> <a name="idm28114-bb"></a><span class="identifier">get_header</span><span class="special">(</span><span class="identifier">const_node_ptr</span> n<span class="special">)</span><span class="special">;</span></pre> +<p><span class="bold"><strong>Requires</strong></span>: 'n' is a node of the tree or a header node.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns the header of the tree.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</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="keyword">void</span> <a name="idm45971716218864-bb"></a><span class="identifier">swap_nodes</span><span class="special">(</span><span class="identifier">node_ptr</span> node1<span class="special">,</span> <span class="identifier">node_ptr</span> node2<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm28127-bb"></a><span class="identifier">swap_nodes</span><span class="special">(</span><span class="identifier">node_ptr</span> node1<span class="special">,</span> <span class="identifier">node_ptr</span> node2<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: node1 and node2 can't be header nodes of two trees.</p> <p><span class="bold"><strong>Effects</strong></span>: Swaps two nodes. After the function node1 will be inserted in the position node2 before the function. node2 will be inserted in the position node1 had before the function.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> @@ -313,7 +311,7 @@ header------------------------------>| | <p>Experimental function </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971716211136-bb"></a><span class="identifier">swap_nodes</span><span class="special">(</span><span class="identifier">node_ptr</span> node1<span class="special">,</span> <span class="identifier">node_ptr</span> header1<span class="special">,</span> <span class="identifier">node_ptr</span> node2<span class="special">,</span> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm28145-bb"></a><span class="identifier">swap_nodes</span><span class="special">(</span><span class="identifier">node_ptr</span> node1<span class="special">,</span> <span class="identifier">node_ptr</span> header1<span class="special">,</span> <span class="identifier">node_ptr</span> node2<span class="special">,</span> <span class="identifier">node_ptr</span> header2<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: node1 and node2 can't be header nodes of two trees with header header1 and header2.</p> <p><span class="bold"><strong>Effects</strong></span>: Swaps two nodes. After the function node1 will be inserted in the position node2 before the function. node2 will be inserted in the position node1 had before the function.</p> @@ -323,7 +321,7 @@ header------------------------------>| | <p>Experimental function </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971716202000-bb"></a><span class="identifier">replace_node</span><span class="special">(</span><span class="identifier">node_ptr</span> node_to_be_replaced<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm28167-bb"></a><span class="identifier">replace_node</span><span class="special">(</span><span class="identifier">node_ptr</span> node_to_be_replaced<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: node_to_be_replaced must be inserted in a tree and new_node must not be inserted in a tree.</p> <p><span class="bold"><strong>Effects</strong></span>: Replaces node_to_be_replaced in its position in the tree with new_node. The tree does not need to be rebalanced</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> @@ -331,7 +329,7 @@ header------------------------------>| | <p><span class="bold"><strong>Note</strong></span>: This function will break container ordering invariants if new_node is not equivalent to node_to_be_replaced according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing and comparison is needed. Experimental function </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971716194432-bb"></a><span class="identifier">replace_node</span><span class="special">(</span><span class="identifier">node_ptr</span> node_to_be_replaced<span class="special">,</span> <span class="identifier">node_ptr</span> header<span class="special">,</span> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm28184-bb"></a><span class="identifier">replace_node</span><span class="special">(</span><span class="identifier">node_ptr</span> node_to_be_replaced<span class="special">,</span> <span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: node_to_be_replaced must be inserted in a tree with header "header" and new_node must not be inserted in a tree.</p> <p><span class="bold"><strong>Effects</strong></span>: Replaces node_to_be_replaced in its position in the tree with new_node. The tree does not need to be rebalanced</p> @@ -340,65 +338,65 @@ header------------------------------>| | <p><span class="bold"><strong>Note</strong></span>: This function will break container ordering invariants if new_node is not equivalent to node_to_be_replaced according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing or comparison is needed. Experimental function </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="identifier">node_ptr</span> <a name="idm45971716186160-bb"></a><span class="identifier">next_node</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span> node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: 'node' is a node from the tree except the header.</p> +<pre class="literallayout"><span class="keyword">static</span> <span class="identifier">node_ptr</span> <a name="idm28203-bb"></a><span class="identifier">next_node</span><span class="special">(</span><span class="identifier">node_ptr</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 a node from the tree except the header.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns the next node of the tree.</p> <p><span class="bold"><strong>Complexity</strong></span>: Average 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">node_ptr</span> <a name="idm45971716180496-bb"></a><span class="identifier">prev_node</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span> node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: 'node' is a node from the tree except the leftmost node.</p> +<pre class="literallayout"><span class="keyword">static</span> <span class="identifier">node_ptr</span> <a name="idm28216-bb"></a><span class="identifier">prev_node</span><span class="special">(</span><span class="identifier">node_ptr</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 a node from the tree except the leftmost node.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns the previous node of the tree.</p> <p><span class="bold"><strong>Complexity</strong></span>: Average 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">node_ptr</span> <a name="idm45971716174800-bb"></a><span class="identifier">minimum</span><span class="special">(</span><span class="identifier">node_ptr</span> node<span class="special">)</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: 'node' is a node of a tree but not the header.</p> +<pre class="literallayout"><span class="keyword">static</span> <span class="identifier">node_ptr</span> <a name="idm28229-bb"></a><span class="identifier">minimum</span><span class="special">(</span><span class="identifier">node_ptr</span> n<span class="special">)</span><span class="special">;</span></pre> +<p><span class="bold"><strong>Requires</strong></span>: 'n' is a node of a tree but not the header.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns the minimum node of the subtree starting at p.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic to the size of the subtree.</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">node_ptr</span> <a name="idm45971716169360-bb"></a><span class="identifier">maximum</span><span class="special">(</span><span class="identifier">node_ptr</span> node<span class="special">)</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: 'node' is a node of a tree but not the header.</p> +<pre class="literallayout"><span class="keyword">static</span> <span class="identifier">node_ptr</span> <a name="idm28242-bb"></a><span class="identifier">maximum</span><span class="special">(</span><span class="identifier">node_ptr</span> n<span class="special">)</span><span class="special">;</span></pre> +<p><span class="bold"><strong>Requires</strong></span>: 'n' is a node of a tree but not the header.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns the maximum node of the subtree starting at p.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic to the size of the subtree.</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="keyword">void</span> <a name="idm45971716163920-bb"></a><span class="identifier">init</span><span class="special">(</span><span class="identifier">node_ptr</span> node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: 'node' must not be part of any tree.</p> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm28255-bb"></a><span class="identifier">init</span><span class="special">(</span><span class="identifier">node_ptr</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' must not be part of any tree.</p> <p><span class="bold"><strong>Effects</strong></span>: After the function unique(node) == true.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Nodes</strong></span>: If node is inserted in a tree, this function corrupts the tree. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">bool</span> <a name="idm45971716157376-bb"></a><span class="identifier">inited</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span> node<span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">bool</span> <a name="idm28270-bb"></a><span class="identifier">inited</span><span class="special">(</span><span class="identifier">const_node_ptr</span> n<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Returns true if node is in the same state as if called init(node)</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="keyword">static</span> <span class="keyword">void</span> <a name="idm45971716152848-bb"></a><span class="identifier">init_header</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: node must not be part of any tree.</p> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm28281-bb"></a><span class="identifier">init_header</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<p><span class="bold"><strong>Requires</strong></span>: header must not be part of any tree.</p> <p><span class="bold"><strong>Effects</strong></span>: Initializes the header to represent an empty tree. unique(header) == true.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Nodes</strong></span>: If node is inserted in a tree, this function corrupts the tree. </p> +<p><span class="bold"><strong>Nodes</strong></span>: If header is inserted in a tree, this function corrupts the tree. </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">static</span> <span class="keyword">void</span> <a name="idm45971716146272-bb"></a><span class="identifier">clear_and_dispose</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span> header<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">static</span> <span class="keyword">void</span> <a name="idm28296-bb"></a><span class="identifier">clear_and_dispose</span><span class="special">(</span><span class="identifier">node_ptr</span> header<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" must be an object function taking a node_ptr parameter and shouldn't throw.</p> -<p><span class="bold"><strong>Effects</strong></span>: Empties the target tree calling <code class="computeroutput">void disposer::operator()(const node_ptr &)</code> for every node of the tree except the header.</p> +<p><span class="bold"><strong>Effects</strong></span>: Empties the target tree calling <code class="computeroutput">void disposer::operator()(node_ptr)</code> for every node of the tree except the header.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to the number of element of the source tree plus the. number of elements of tree target tree when calling this function.</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">node_ptr</span> <a name="idm45971716138416-bb"></a><span class="identifier">unlink_leftmost_without_rebalance</span><span class="special">(</span><span class="identifier">node_ptr</span> header<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">node_ptr</span> <a name="idm28314-bb"></a><span class="identifier">unlink_leftmost_without_rebalance</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: header is the header of a tree.</p> <p><span class="bold"><strong>Effects</strong></span>: Unlinks the leftmost node from the tree, and updates the header link to the new leftmost node.</p> <p><span class="bold"><strong>Complexity</strong></span>: Average complexity is constant time.</p> @@ -406,21 +404,21 @@ header------------------------------>| | <p><span class="bold"><strong>Notes</strong></span>: This function breaks the tree and the tree can only be used for more unlink_leftmost_without_rebalance calls. This function is normally used to achieve a step by step controlled destruction of the tree. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a name="idm45971716131648-bb"></a><span class="identifier">size</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span> header<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: node is a node of the tree but it's not the header.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns the number of nodes of the subtree.</p> +<pre class="literallayout"><span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a name="idm28329-bb"></a><span class="identifier">size</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<p><span class="bold"><strong>Requires</strong></span>: 'header' the header of the tree.</p> +<p><span class="bold"><strong>Effects</strong></span>: Returns the number of nodes of the tree.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear 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="keyword">void</span> <a name="idm45971716125984-bb"></a><span class="identifier">swap_tree</span><span class="special">(</span><span class="identifier">node_ptr</span> header1<span class="special">,</span> <span class="identifier">node_ptr</span> header2<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm28342-bb"></a><span class="identifier">swap_tree</span><span class="special">(</span><span class="identifier">node_ptr</span> header1<span class="special">,</span> <span class="identifier">node_ptr</span> header2<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: header1 and header2 must be the header nodes of two trees.</p> <p><span class="bold"><strong>Effects</strong></span>: Swaps two trees. After the function header1 will contain links to the second tree and header2 will have links to the first tree.</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="keyword">static</span> <span class="keyword">bool</span> <a name="idm45971716119536-bb"></a><span class="identifier">is_header</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span> p<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">bool</span> <a name="idm28357-bb"></a><span class="identifier">is_header</span><span class="special">(</span><span class="identifier">const_node_ptr</span> p<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: p is a node of a tree.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns true if p is the header of the tree.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> @@ -429,8 +427,7 @@ header------------------------------>| | <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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a name="idm45971716113888-bb"></a><span class="identifier">find</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span> header<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">KeyNodePtrCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <a name="idm28370-bb"></a><span class="identifier">find</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<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">KeyNodePtrCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns a node_ptr to the first element that is equivalent to "key" according to "comp" or "header" if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> @@ -439,7 +436,7 @@ header------------------------------>| | <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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span> <span class="special">></span> - <a name="idm45971716105424-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span> header<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> + <a name="idm28390-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> <span class="identifier">KeyNodePtrCompare</span> comp<span class="special">,</span> <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs. 'lower_key' must not be greater than 'upper_key' according to 'comp'. If 'lower_key' == 'upper_key', ('left_closed' || 'right_closed') must be true.</p> @@ -454,8 +451,7 @@ header------------------------------>| | <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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> - <a name="idm45971716092288-bb"></a><span class="identifier">count</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span> header<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">KeyNodePtrCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <a name="idm28422-bb"></a><span class="identifier">count</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<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">KeyNodePtrCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns the number of elements with a key equivalent to "key" according to "comp".</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> @@ -464,7 +460,7 @@ header------------------------------>| | <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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span> <span class="special">></span> - <a name="idm45971716083872-bb"></a><span class="identifier">equal_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span> header<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> key<span class="special">,</span> + <a name="idm28442-bb"></a><span class="identifier">equal_range</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<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">KeyNodePtrCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns an a pair of node_ptr delimiting a range containing all elements that are equivalent to "key" according to "comp" or an empty range that indicates the position where those elements would be if there are no equivalent elements.</p> @@ -474,7 +470,7 @@ header------------------------------>| | <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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span> <span class="special">></span> - <a name="idm45971716075280-bb"></a><span class="identifier">lower_bound_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span> header<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> key<span class="special">,</span> + <a name="idm28462-bb"></a><span class="identifier">lower_bound_range</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<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">KeyNodePtrCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns an a pair of node_ptr delimiting a range containing the first element that is equivalent to "key" according to "comp" or an empty range that indicates the position where that element would be if there are no equivalent elements.</p> @@ -484,7 +480,7 @@ header------------------------------>| | <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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a name="idm45971716066688-bb"></a><span class="identifier">lower_bound</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span> header<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> key<span class="special">,</span> + <a name="idm28482-bb"></a><span class="identifier">lower_bound</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<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">KeyNodePtrCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns a node_ptr to the first element that is not less than "key" according to "comp" or "header" if that element does not exist.</p> @@ -494,7 +490,7 @@ header------------------------------>| | <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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a name="idm45971716058224-bb"></a><span class="identifier">upper_bound</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span> header<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> key<span class="special">,</span> + <a name="idm28502-bb"></a><span class="identifier">upper_bound</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<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">KeyNodePtrCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns a node_ptr to the first element that is greater than "key" according to "comp" or "header" if that element does not exist.</p> @@ -502,7 +498,7 @@ header------------------------------>| | <p><span class="bold"><strong>Throws</strong></span>: If "comp" throws. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971716049760-bb"></a><span class="identifier">insert_unique_commit</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> new_value<span class="special">,</span> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm28522-bb"></a><span class="identifier">insert_unique_commit</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> new_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>: "header" must be the header node of a tree. "commit_data" must have been obtained from a previous call to "insert_unique_check". No objects should have been inserted or erased from the set between the "insert_unique_check" that filled "commit_data" and the call to "insert_commit".</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts new_node in the set using the information obtained from the "commit_data" that a previous "insert_check" filled.</p> @@ -513,7 +509,7 @@ header------------------------------>| | <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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="keyword">bool</span> <span class="special">></span> - <a name="idm45971716041344-bb"></a><span class="identifier">insert_unique_check</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span> header<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> key<span class="special">,</span> + <a name="idm28541-bb"></a><span class="identifier">insert_unique_check</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<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">KeyNodePtrCompare</span> comp<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>: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. NodePtrCompare compares KeyType with a node_ptr.</p> @@ -528,7 +524,7 @@ header------------------------------>| | <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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="keyword">bool</span> <span class="special">></span> - <a name="idm45971716028768-bb"></a><span class="identifier">insert_unique_check</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span> header<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span> hint<span class="special">,</span> + <a name="idm28569-bb"></a><span class="identifier">insert_unique_check</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> hint<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">KeyNodePtrCompare</span> comp<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>: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. NodePtrCompare compares KeyType with a node_ptr. "hint" is node from the "header"'s tree.</p> @@ -543,7 +539,7 @@ header------------------------------>| | <li class="listitem"> <pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a name="idm45971716015200-bb"></a><span class="identifier">insert_equal</span><span class="special">(</span><span class="identifier">node_ptr</span> h<span class="special">,</span> <span class="identifier">node_ptr</span> hint<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">,</span> + <a name="idm28599-bb"></a><span class="identifier">insert_equal</span><span class="special">(</span><span class="identifier">node_ptr</span> h<span class="special">,</span> <span class="identifier">node_ptr</span> hint<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">,</span> <span class="identifier">NodePtrCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "header" must be the header node of a tree. NodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. NodePtrCompare compares two node_ptrs. "hint" is node from the "header"'s tree.</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts new_node into the tree, using "hint" as a hint to where it will be inserted. If "hint" is the upper_bound the insertion takes constant time (two comparisons in the worst case).</p> @@ -553,7 +549,7 @@ header------------------------------>| | <li class="listitem"> <pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a name="idm45971716006432-bb"></a><span class="identifier">insert_equal_upper_bound</span><span class="special">(</span><span class="identifier">node_ptr</span> h<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">,</span> <span class="identifier">NodePtrCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <a name="idm28620-bb"></a><span class="identifier">insert_equal_upper_bound</span><span class="special">(</span><span class="identifier">node_ptr</span> h<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">,</span> <span class="identifier">NodePtrCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "h" must be the header node of a tree. NodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. NodePtrCompare compares two node_ptrs.</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts new_node into the tree before the upper bound according to "comp".</p> <p><span class="bold"><strong>Complexity</strong></span>: Average complexity for insert element is at most logarithmic.</p> @@ -562,7 +558,7 @@ header------------------------------>| | <li class="listitem"> <pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a name="idm45971715998544-bb"></a><span class="identifier">insert_equal_lower_bound</span><span class="special">(</span><span class="identifier">node_ptr</span> h<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">,</span> <span class="identifier">NodePtrCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <a name="idm28639-bb"></a><span class="identifier">insert_equal_lower_bound</span><span class="special">(</span><span class="identifier">node_ptr</span> h<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">,</span> <span class="identifier">NodePtrCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "h" must be the header node of a tree. NodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. NodePtrCompare compares two node_ptrs.</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts new_node into the tree before the lower bound according to "comp".</p> <p><span class="bold"><strong>Complexity</strong></span>: Average complexity for insert element is at most logarithmic.</p> @@ -570,7 +566,7 @@ header------------------------------>| | </li> <li class="listitem"> <pre class="literallayout"><span class="keyword">static</span> <span class="identifier">node_ptr</span> -<a name="idm45971715990656-bb"></a><span class="identifier">insert_before</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> pos<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<a name="idm28658-bb"></a><span class="identifier">insert_before</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> pos<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "header" must be the header node of a tree. "pos" must be a valid iterator or header (end) node. "pos" must be an iterator pointing to the successor to "new_node" once inserted according to the order of already inserted nodes. This function does not check "pos" and this precondition must be guaranteed by the caller.</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts new_node into the tree before "pos".</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant-time.</p> @@ -578,7 +574,7 @@ header------------------------------>| | <p><span class="bold"><strong>Note</strong></span>: If "pos" is not the successor of the newly inserted "new_node" tree invariants might be broken. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971715982416-bb"></a><span class="identifier">push_back</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm28677-bb"></a><span class="identifier">push_back</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "header" must be the header node of a tree. "new_node" must be, according to the used ordering no less than the greatest inserted key.</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts new_node into the tree before "pos".</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant-time.</p> @@ -586,7 +582,7 @@ header------------------------------>| | <p><span class="bold"><strong>Note</strong></span>: If "new_node" is less than the greatest inserted key tree invariants are broken. This function is slightly faster than using "insert_before". </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971715974992-bb"></a><span class="identifier">push_front</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm28694-bb"></a><span class="identifier">push_front</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "header" must be the header node of a tree. "new_node" must be, according to the used ordering, no greater than the lowest inserted key.</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts new_node into the tree before "pos".</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant-time.</p> @@ -594,24 +590,24 @@ header------------------------------>| | <p><span class="bold"><strong>Note</strong></span>: If "new_node" is greater than the lowest inserted key tree invariants are broken. This function is slightly faster than using "insert_before". </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a name="idm45971715967568-bb"></a><span class="identifier">depth</span><span class="special">(</span><span class="identifier">const_node_ptr</span> node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: 'node' can't be a header node.</p> +<pre class="literallayout"><span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a name="idm28711-bb"></a><span class="identifier">depth</span><span class="special">(</span><span class="identifier">const_node_ptr</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' can't be a header node.</p> <p><span class="bold"><strong>Effects</strong></span>: Calculates the depth of a node: the depth of a node is the length (number of edges) of the path from the root to that node. (The root node is at depth 0.)</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic to the number of nodes in the tree.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </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">static</span> <span class="keyword">void</span> <a name="idm45971715961776-bb"></a><span class="identifier">clone</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span> source_header<span class="special">,</span> - <span class="identifier">node_ptr</span> target_header<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">static</span> <span class="keyword">void</span> <a name="idm28724-bb"></a><span class="identifier">clone</span><span class="special">(</span><span class="identifier">const_node_ptr</span> source_header<span class="special">,</span> <span class="identifier">node_ptr</span> target_header<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>: "cloner" must be a function object taking a node_ptr and returning a new cloned node of it. "disposer" must take a node_ptr and shouldn't throw.</p> -<p><span class="bold"><strong>Effects</strong></span>: First empties target tree calling <code class="computeroutput">void disposer::operator()(const node_ptr &)</code> for every node of the tree except the header.</p> -<p>Then, duplicates the entire tree pointed by "source_header" cloning each source node with <code class="computeroutput">node_ptr Cloner::operator()(const node_ptr &)</code> to obtain the nodes of the target tree. If "cloner" throws, the cloned target nodes are disposed using <code class="computeroutput">void disposer(const node_ptr &)</code>.</p> +<p><span class="bold"><strong>Effects</strong></span>: First empties target tree calling <code class="computeroutput">void disposer::operator()(node_ptr)</code> for every node of the tree except the header.</p> +<p>Then, duplicates the entire tree pointed by "source_header" cloning each source node with <code class="computeroutput">node_ptr Cloner::operator()(node_ptr)</code> to obtain the nodes of the target tree. If "cloner" throws, the cloned target nodes are disposed using <code class="computeroutput">void disposer(node_ptr )</code>.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to the number of element of the source tree plus the number of elements of tree target tree when calling this function.</p> <p><span class="bold"><strong>Throws</strong></span>: If cloner functor throws. If this happens target nodes are disposed. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971715950752-bb"></a><span class="identifier">erase</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> z<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm28750-bb"></a><span class="identifier">erase</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> z<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: header must be the header of a tree, z a node of that tree and z != header.</p> <p><span class="bold"><strong>Effects</strong></span>: Erases node "z" from the tree with header "header".</p> <p><span class="bold"><strong>Complexity</strong></span>: Amortized constant time.</p> @@ -619,7 +615,7 @@ header------------------------------>| | </li> <li class="listitem"> <pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodePtrCompare<span class="special">></span> - <span class="keyword">static</span> <span class="keyword">bool</span> <a name="idm45971715944352-bb"></a><span class="identifier">transfer_unique</span><span class="special">(</span><span class="identifier">node_ptr</span> header1<span class="special">,</span> <span class="identifier">NodePtrCompare</span> comp<span class="special">,</span> + <span class="keyword">static</span> <span class="keyword">bool</span> <a name="idm28765-bb"></a><span class="identifier">transfer_unique</span><span class="special">(</span><span class="identifier">node_ptr</span> header1<span class="special">,</span> <span class="identifier">NodePtrCompare</span> comp<span class="special">,</span> <span class="identifier">node_ptr</span> header2<span class="special">,</span> <span class="identifier">node_ptr</span> z<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: header1 and header2 must be the headers of trees tree1 and tree2 respectively, z a non-header node of tree1. NodePtrCompare is the comparison function of tree1..</p> <p><span class="bold"><strong>Effects</strong></span>: Transfers node "z" from tree1 to tree2 if tree1 does not contain a node that is equivalent to z.</p> @@ -629,7 +625,7 @@ header------------------------------>| | </li> <li class="listitem"> <pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodePtrCompare<span class="special">></span> - <span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971715934992-bb"></a><span class="identifier">transfer_equal</span><span class="special">(</span><span class="identifier">node_ptr</span> header1<span class="special">,</span> <span class="identifier">NodePtrCompare</span> comp<span class="special">,</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a name="idm28788-bb"></a><span class="identifier">transfer_equal</span><span class="special">(</span><span class="identifier">node_ptr</span> header1<span class="special">,</span> <span class="identifier">NodePtrCompare</span> comp<span class="special">,</span> <span class="identifier">node_ptr</span> header2<span class="special">,</span> <span class="identifier">node_ptr</span> z<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: header1 and header2 must be the headers of trees tree1 and tree2 respectively, z a non-header node of tree1. NodePtrCompare is the comparison function of tree1..</p> <p><span class="bold"><strong>Effects</strong></span>: Transfers node "z" from tree1 to tree2.</p> @@ -637,21 +633,21 @@ header------------------------------>| | <p><span class="bold"><strong>Throws</strong></span>: If the comparison throws. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971715926560-bb"></a><span class="identifier">unlink</span><span class="special">(</span><span class="identifier">node_ptr</span> node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: node is a tree node but not the header.</p> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm28809-bb"></a><span class="identifier">unlink</span><span class="special">(</span><span class="identifier">node_ptr</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 a tree node but not the header.</p> <p><span class="bold"><strong>Effects</strong></span>: Unlinks the node and rebalances the tree.</p> <p><span class="bold"><strong>Complexity</strong></span>: Average complexity is 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="keyword">void</span> <a name="idm45971715920880-bb"></a><span class="identifier">rebalance</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm28822-bb"></a><span class="identifier">rebalance</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: header must be the header of a tree.</p> <p><span class="bold"><strong>Effects</strong></span>: Rebalances the tree.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="identifier">node_ptr</span> <a name="idm45971715915264-bb"></a><span class="identifier">rebalance_subtree</span><span class="special">(</span><span class="identifier">node_ptr</span> old_root<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">node_ptr</span> <a name="idm28835-bb"></a><span class="identifier">rebalance_subtree</span><span class="special">(</span><span class="identifier">node_ptr</span> old_root<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: old_root is a node of a tree. It shall not be null.</p> <p><span class="bold"><strong>Effects</strong></span>: Rebalances the subtree rooted at old_root.</p> <p><span class="bold"><strong>Returns</strong></span>: The new root of the subtree.</p> @@ -660,7 +656,7 @@ header------------------------------>| | </li> <li class="listitem"> <pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Checker<span class="special">></span> - <span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971715908736-bb"></a><span class="identifier">check</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span> header<span class="special">,</span> <span class="identifier">Checker</span> checker<span class="special">,</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a name="idm28850-bb"></a><span class="identifier">check</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<span class="special">,</span> <span class="identifier">Checker</span> checker<span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Checker</span><span class="special">::</span><span class="identifier">return_type</span> <span class="special">&</span> checker_return<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Asserts the integrity of the container with additional checks provided by the user.</p> <p><span class="bold"><strong>Requires</strong></span>: header must be the header of a tree.</p> @@ -670,79 +666,79 @@ header------------------------------>| | </ol></div> </div> <div class="refsect2"> -<a name="id-1.3.20.42.10.3.4.16"></a><h3> -<a name="idm45971715900800-bb"></a><code class="computeroutput">bstree_algorithms</code> protected static functions</h3> +<a name="id-1.3.18.42.10.3.4.16"></a><h3> +<a name="idm28869-bb"></a><code class="computeroutput">bstree_algorithms</code> protected static functions</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> <li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodePtrCompare<span class="special">></span> - <span class="keyword">static</span> <span class="keyword">bool</span> <a name="idm45971715900224-bb"></a><span class="identifier">transfer_unique</span><span class="special">(</span><span class="identifier">node_ptr</span> header1<span class="special">,</span> <span class="identifier">NodePtrCompare</span> comp<span class="special">,</span> + <span class="keyword">static</span> <span class="keyword">bool</span> <a name="idm28870-bb"></a><span class="identifier">transfer_unique</span><span class="special">(</span><span class="identifier">node_ptr</span> header1<span class="special">,</span> <span class="identifier">NodePtrCompare</span> comp<span class="special">,</span> <span class="identifier">node_ptr</span> header2<span class="special">,</span> <span class="identifier">node_ptr</span> z<span class="special">,</span> <span class="identifier">data_for_rebalance</span> <span class="special">&</span> info<span class="special">)</span><span class="special">;</span></pre></li> <li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodePtrCompare<span class="special">></span> - <span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971715894816-bb"></a><span class="identifier">transfer_equal</span><span class="special">(</span><span class="identifier">node_ptr</span> header1<span class="special">,</span> <span class="identifier">NodePtrCompare</span> comp<span class="special">,</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a name="idm28884-bb"></a><span class="identifier">transfer_equal</span><span class="special">(</span><span class="identifier">node_ptr</span> header1<span class="special">,</span> <span class="identifier">NodePtrCompare</span> comp<span class="special">,</span> <span class="identifier">node_ptr</span> header2<span class="special">,</span> <span class="identifier">node_ptr</span> z<span class="special">,</span> <span class="identifier">data_for_rebalance</span> <span class="special">&</span> info<span class="special">)</span><span class="special">;</span></pre></li> -<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971715889408-bb"></a><span class="identifier">erase</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> z<span class="special">,</span> <span class="identifier">data_for_rebalance</span> <span class="special">&</span> info<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm28898-bb"></a><span class="identifier">erase</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> z<span class="special">,</span> <span class="identifier">data_for_rebalance</span> <span class="special">&</span> info<span class="special">)</span><span class="special">;</span></pre></li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a name="idm45971715886224-bb"></a><span class="identifier">subtree_size</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span> subtree<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: node is a node of the tree but it's not the header.</p> +<pre class="literallayout"><span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a name="idm28906-bb"></a><span class="identifier">subtree_size</span><span class="special">(</span><span class="identifier">const_node_ptr</span> subtree<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<p><span class="bold"><strong>Requires</strong></span>: 'subtree' is a node of the tree but it's not the header.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns the number of nodes of the subtree.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear 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="keyword">bool</span> <a name="idm45971715880560-bb"></a><span class="identifier">is_left_child</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span> p<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">bool</span> <a name="idm28919-bb"></a><span class="identifier">is_left_child</span><span class="special">(</span><span class="identifier">node_ptr</span> p<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: p is a node of a tree.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns true if p is a left child.</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="keyword">static</span> <span class="keyword">bool</span> <a name="idm45971715874928-bb"></a><span class="identifier">is_right_child</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span> p<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">bool</span> <a name="idm28932-bb"></a><span class="identifier">is_right_child</span><span class="special">(</span><span class="identifier">node_ptr</span> p<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: p is a node of a tree.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns true if p is a right child.</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="keyword">static</span> <span class="keyword">void</span> <a name="idm45971715869296-bb"></a><span class="identifier">insert_before_check</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> pos<span class="special">,</span> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm28945-bb"></a><span class="identifier">insert_before_check</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> pos<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></li> -<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971715866112-bb"></a><span class="identifier">push_back_check</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</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></li> -<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971715863344-bb"></a><span class="identifier">push_front_check</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm28953-bb"></a><span class="identifier">push_back_check</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</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></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm28959-bb"></a><span class="identifier">push_front_check</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</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></li> <li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodePtrCompare<span class="special">></span> - <span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971715860576-bb"></a><span class="identifier">insert_equal_check</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> hint<span class="special">,</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a name="idm28965-bb"></a><span class="identifier">insert_equal_check</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> hint<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">,</span> <span class="identifier">NodePtrCompare</span> comp<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></li> <li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodePtrCompare<span class="special">></span> - <span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971715855168-bb"></a><span class="identifier">insert_equal_upper_bound_check</span><span class="special">(</span><span class="identifier">node_ptr</span> h<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">,</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a name="idm28979-bb"></a><span class="identifier">insert_equal_upper_bound_check</span><span class="special">(</span><span class="identifier">node_ptr</span> h<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">,</span> <span class="identifier">NodePtrCompare</span> comp<span class="special">,</span> <span class="identifier">insert_commit_data</span> <span class="special">&</span> commit_data<span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="special">*</span> pdepth <span class="special">=</span> <span class="number">0</span><span class="special">)</span><span class="special">;</span></pre></li> <li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodePtrCompare<span class="special">></span> - <span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971715849456-bb"></a><span class="identifier">insert_equal_lower_bound_check</span><span class="special">(</span><span class="identifier">node_ptr</span> h<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">,</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a name="idm28994-bb"></a><span class="identifier">insert_equal_lower_bound_check</span><span class="special">(</span><span class="identifier">node_ptr</span> h<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">,</span> <span class="identifier">NodePtrCompare</span> comp<span class="special">,</span> <span class="identifier">insert_commit_data</span> <span class="special">&</span> commit_data<span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="special">*</span> pdepth <span class="special">=</span> <span class="number">0</span><span class="special">)</span><span class="special">;</span></pre></li> -<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971715843744-bb"></a><span class="identifier">insert_commit</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">,</span> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm29009-bb"></a><span class="identifier">insert_commit</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<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></li> -<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971715840272-bb"></a><span class="identifier">set_child</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> new_child<span class="special">,</span> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm29017-bb"></a><span class="identifier">set_child</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> new_child<span class="special">,</span> <span class="identifier">node_ptr</span> new_parent<span class="special">,</span> <span class="keyword">const</span> <span class="keyword">bool</span> link_left<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> -<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971715836128-bb"></a><span class="identifier">rotate_left_no_parent_fix</span><span class="special">(</span><span class="identifier">node_ptr</span> p<span class="special">,</span> <span class="identifier">node_ptr</span> p_right<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> -<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971715833344-bb"></a><span class="identifier">rotate_left</span><span class="special">(</span><span class="identifier">node_ptr</span> p<span class="special">,</span> <span class="identifier">node_ptr</span> p_right<span class="special">,</span> <span class="identifier">node_ptr</span> p_parent<span class="special">,</span> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm29027-bb"></a><span class="identifier">rotate_left_no_parent_fix</span><span class="special">(</span><span class="identifier">node_ptr</span> p<span class="special">,</span> <span class="identifier">node_ptr</span> p_right<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm29033-bb"></a><span class="identifier">rotate_left</span><span class="special">(</span><span class="identifier">node_ptr</span> p<span class="special">,</span> <span class="identifier">node_ptr</span> p_right<span class="special">,</span> <span class="identifier">node_ptr</span> p_parent<span class="special">,</span> <span class="identifier">node_ptr</span> header<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> -<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971715829200-bb"></a><span class="identifier">rotate_right_no_parent_fix</span><span class="special">(</span><span class="identifier">node_ptr</span> p<span class="special">,</span> <span class="identifier">node_ptr</span> p_left<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> -<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971715826416-bb"></a><span class="identifier">rotate_right</span><span class="special">(</span><span class="identifier">node_ptr</span> p<span class="special">,</span> <span class="identifier">node_ptr</span> p_left<span class="special">,</span> <span class="identifier">node_ptr</span> p_parent<span class="special">,</span> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm29043-bb"></a><span class="identifier">rotate_right_no_parent_fix</span><span class="special">(</span><span class="identifier">node_ptr</span> p<span class="special">,</span> <span class="identifier">node_ptr</span> p_left<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm29049-bb"></a><span class="identifier">rotate_right</span><span class="special">(</span><span class="identifier">node_ptr</span> p<span class="special">,</span> <span class="identifier">node_ptr</span> p_left<span class="special">,</span> <span class="identifier">node_ptr</span> p_parent<span class="special">,</span> <span class="identifier">node_ptr</span> header<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.20.42.10.3.4.17"></a><h3> -<a name="idm45971715822112-bb"></a><code class="computeroutput">bstree_algorithms</code> private static functions</h3> +<a name="id-1.3.18.42.10.3.4.17"></a><h3> +<a name="idm29059-bb"></a><code class="computeroutput">bstree_algorithms</code> private static functions</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> -<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971715821536-bb"></a><span class="identifier">subtree_to_vine</span><span class="special">(</span><span class="identifier">node_ptr</span> vine_tail<span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="special">&</span> size<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> -<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971715818768-bb"></a><span class="identifier">compress_subtree</span><span class="special">(</span><span class="identifier">node_ptr</span> scanner<span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> count<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> -<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971715816000-bb"></a><span class="identifier">vine_to_subtree</span><span class="special">(</span><span class="identifier">node_ptr</span> super_root<span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> count<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm29060-bb"></a><span class="identifier">subtree_to_vine</span><span class="special">(</span><span class="identifier">node_ptr</span> vine_tail<span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="special">&</span> size<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm29066-bb"></a><span class="identifier">compress_subtree</span><span class="special">(</span><span class="identifier">node_ptr</span> scanner<span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> count<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm29072-bb"></a><span class="identifier">vine_to_subtree</span><span class="special">(</span><span class="identifier">node_ptr</span> super_root<span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> count<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="identifier">node_ptr</span> <a name="idm45971715813232-bb"></a><span class="identifier">get_root</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span> node<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">node_ptr</span> <a name="idm29078-bb"></a><span class="identifier">get_root</span><span class="special">(</span><span class="identifier">node_ptr</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" must be a node inserted in a tree.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns a pointer to the header node of the tree.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> @@ -750,34 +746,31 @@ header------------------------------>| | </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">static</span> <span class="identifier">node_ptr</span> - <a name="idm45971715807568-bb"></a><span class="identifier">clone_subtree</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span> source_parent<span class="special">,</span> <span class="identifier">node_ptr</span> target_parent<span class="special">,</span> + <a name="idm29091-bb"></a><span class="identifier">clone_subtree</span><span class="special">(</span><span class="identifier">const_node_ptr</span> source_parent<span class="special">,</span> <span class="identifier">node_ptr</span> target_parent<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="identifier">node_ptr</span> <span class="special">&</span> leftmost_out<span class="special">,</span> <span class="identifier">node_ptr</span> <span class="special">&</span> rightmost_out<span class="special">)</span><span class="special">;</span></pre></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">static</span> <span class="keyword">void</span> <a name="idm45971715800912-bb"></a><span class="identifier">dispose_subtree</span><span class="special">(</span><span class="identifier">node_ptr</span> x<span class="special">,</span> <span class="identifier">Disposer</span> disposer<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> + <span class="keyword">static</span> <span class="keyword">void</span> <a name="idm29108-bb"></a><span class="identifier">dispose_subtree</span><span class="special">(</span><span class="identifier">node_ptr</span> x<span class="special">,</span> <span class="identifier">Disposer</span> disposer<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a name="idm45971715797296-bb"></a><span class="identifier">lower_bound_loop</span><span class="special">(</span><span class="identifier">node_ptr</span> x<span class="special">,</span> <span class="identifier">node_ptr</span> y<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> key<span class="special">,</span> + <a name="idm29116-bb"></a><span class="identifier">lower_bound_loop</span><span class="special">(</span><span class="identifier">node_ptr</span> x<span class="special">,</span> <span class="identifier">node_ptr</span> y<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">KeyNodePtrCompare</span> comp<span class="special">)</span><span class="special">;</span></pre></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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a name="idm45971715792016-bb"></a><span class="identifier">upper_bound_loop</span><span class="special">(</span><span class="identifier">node_ptr</span> x<span class="special">,</span> <span class="identifier">node_ptr</span> y<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> key<span class="special">,</span> + <a name="idm29129-bb"></a><span class="identifier">upper_bound_loop</span><span class="special">(</span><span class="identifier">node_ptr</span> x<span class="special">,</span> <span class="identifier">node_ptr</span> y<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">KeyNodePtrCompare</span> comp<span class="special">)</span><span class="special">;</span></pre></li> <li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Checker<span class="special">></span> - <span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971715786736-bb"></a><span class="identifier">check_subtree</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span> node<span class="special">,</span> <span class="identifier">Checker</span> checker<span class="special">,</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a name="idm29142-bb"></a><span class="identifier">check_subtree</span><span class="special">(</span><span class="identifier">const_node_ptr</span> n<span class="special">,</span> <span class="identifier">Checker</span> checker<span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Checker</span><span class="special">::</span><span class="identifier">return_type</span> <span class="special">&</span> check_return<span class="special">)</span><span class="special">;</span></pre></li> </ol></div> </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="make_bstree.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.bstree_algorithms_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="circular_list_algorithms.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/bucket_hash_equal_idm29975.html b/doc/html/boost/intrusive/bucket_hash_equal_idm29975.html new file mode 100644 index 0000000000..edd054f476 --- /dev/null +++ b/doc/html/boost/intrusive/bucket_hash_equal_idm29975.html @@ -0,0 +1,123 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>Struct template bucket_hash_equal_t<ValueTraits, VoidOrKeyOfValue, VoidOrKeyHash, VoidOrKeyEqual, BucketTraits, LinearBuckets, true></title> +<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css"> +<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="bucket_hash_equal_t.html" title="Struct template bucket_hash_equal_t"> +<link rel="next" href="bucket_hash_t.html" title="Struct template bucket_hash_t"> +<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> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td> +<td align="center"><a href="../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="bucket_hash_equal_t.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="bucket_hash_t.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.intrusive.bucket_hash_equal_idm29975"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Struct template bucket_hash_equal_t<ValueTraits, VoidOrKeyOfValue, VoidOrKeyHash, VoidOrKeyEqual, BucketTraits, LinearBuckets, true></span></h2> +<p>boost::intrusive::bucket_hash_equal_t<ValueTraits, VoidOrKeyOfValue, VoidOrKeyHash, VoidOrKeyEqual, BucketTraits, LinearBuckets, true></p> +</div> +<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> ValueTraits<span class="special">,</span> <span class="keyword">typename</span> VoidOrKeyOfValue<span class="special">,</span> + <span class="keyword">typename</span> VoidOrKeyHash<span class="special">,</span> <span class="keyword">typename</span> VoidOrKeyEqual<span class="special">,</span> + <span class="keyword">typename</span> BucketTraits<span class="special">,</span> <span class="keyword">bool</span> LinearBuckets<span class="special">></span> +<span class="keyword">struct</span> <a class="link" href="bucket_hash_equal_idm29975.html" title="Struct template bucket_hash_equal_t<ValueTraits, VoidOrKeyOfValue, VoidOrKeyHash, VoidOrKeyEqual, BucketTraits, LinearBuckets, true>">bucket_hash_equal_t</a><span class="special"><</span><span class="identifier">ValueTraits</span><span class="special">,</span> <span class="identifier">VoidOrKeyOfValue</span><span class="special">,</span> <span class="identifier">VoidOrKeyHash</span><span class="special">,</span> <span class="identifier">VoidOrKeyEqual</span><span class="special">,</span> <span class="identifier">BucketTraits</span><span class="special">,</span> <span class="identifier">LinearBuckets</span><span class="special">,</span> <span class="keyword">true</span><span class="special">></span> <span class="special">:</span> <span class="keyword">public</span> boost::intrusive::bucket_hash_t< ValueTraits, VoidOrKeyOfValue, VoidOrKeyHash, BucketTraits, LinearBuckets >, + <span class="keyword">public</span> hashtable_equal_holder::type +<span class="special">{</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <span class="identifier">hashtable_equal_holder</span><span class="special"><</span> <span class="identifier">ValueTraits</span><span class="special">,</span> <span class="identifier">BucketTraits</span><span class="special">,</span> <span class="identifier">VoidOrKeyOfValue</span><span class="special">,</span> <span class="identifier">VoidOrKeyEqual</span><span class="special">,</span> <span class="identifier">LinearBuckets</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> <a name="boost.intrusive.bucket_hash_equal_idm29975.equal_holder_t"></a><span class="identifier">equal_holder_t</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">bucket_plus_vtraits</span><span class="special"><</span> <span class="identifier">ValueTraits</span><span class="special">,</span> <span class="identifier">BucketTraits</span><span class="special">,</span> <span class="identifier">LinearBuckets</span> <span class="special">></span> <a name="boost.intrusive.bucket_hash_equal_idm29975.bucket_plus_vtraits_t"></a><span class="identifier">bucket_plus_vtraits_t</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">ValueTraits</span> <a name="boost.intrusive.bucket_hash_equal_idm29975.value_traits"></a><span class="identifier">value_traits</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">equal_holder_t</span><span class="special">::</span><span class="identifier">functor_type</span> <a name="boost.intrusive.bucket_hash_equal_idm29975.key_equal"></a><span class="identifier">key_equal</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">bucket_hash_t</span><span class="special"><</span> <span class="identifier">ValueTraits</span><span class="special">,</span> <span class="identifier">VoidOrKeyOfValue</span><span class="special">,</span> <span class="identifier">VoidOrKeyHash</span><span class="special">,</span> <span class="identifier">BucketTraits</span><span class="special">,</span> <span class="identifier">LinearBuckets</span> <span class="special">></span> <a name="boost.intrusive.bucket_hash_equal_idm29975.bucket_hash_type"></a><span class="identifier">bucket_hash_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">bucket_hash_type</span><span class="special">::</span><span class="identifier">hasher</span> <a name="boost.intrusive.bucket_hash_equal_idm29975.hasher"></a><span class="identifier">hasher</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">BucketTraits</span> <a name="boost.intrusive.bucket_hash_equal_idm29975.bucket_traits"></a><span class="identifier">bucket_traits</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">bucket_plus_vtraits_t</span><span class="special">::</span><span class="identifier">siterator</span> <a name="boost.intrusive.bucket_hash_equal_idm29975.siterator"></a><span class="identifier">siterator</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">bucket_plus_vtraits_t</span><span class="special">::</span><span class="identifier">slist_node_algorithms</span> <a name="boost.intrusive.bucket_hash_equal_idm29975.slist_node_algorithms"></a><span class="identifier">slist_node_algorithms</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">unordered_bucket_ptr_impl</span><span class="special"><</span> <span class="identifier">typenamebucket_hash_type</span><span class="special">::</span><span class="identifier">value_traits</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> <a name="boost.intrusive.bucket_hash_equal_idm29975.bucket_ptr"></a><span class="identifier">bucket_ptr</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="bucket_hash_equal_idm29975.html#boost.intrusive.bucket_hash_equal_idm29975construct-copy-destruct">construct/copy/destruct</a></span> + <a class="link" href="bucket_hash_equal_idm29975.html#idm30059-bb"><span class="identifier">bucket_hash_equal_t</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ValueTraits</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">bucket_traits</span> <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="keyword">const</span> <span class="identifier">key_equal</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="bucket_hash_equal_idm29975.html#idm30068-bb"><span class="identifier">bucket_hash_equal_t</span></a><span class="special">(</span><span class="identifier">bucket_hash_equal_t</span> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="bucket_hash_equal_idm29975.html#idm30016-bb">public member functions</a></span> + <span class="identifier">bucket_ptr</span> <a class="link" href="bucket_hash_equal_idm29975.html#idm30017-bb"><span class="identifier">priv_get_cache</span></a><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="bucket_hash_equal_idm29975.html#idm30019-bb"><span class="identifier">priv_set_cache</span></a><span class="special">(</span><span class="identifier">bucket_ptr</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="bucket_hash_equal_idm29975.html#idm30023-bb"><span class="identifier">priv_set_cache_bucket_num</span></a><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a class="link" href="bucket_hash_equal_idm29975.html#idm30027-bb"><span class="identifier">priv_get_cache_bucket_num</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="bucket_hash_equal_idm29975.html#idm30029-bb"><span class="identifier">priv_init_cache</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="bucket_hash_equal_idm29975.html#idm30031-bb"><span class="identifier">priv_swap_cache</span></a><span class="special">(</span><span class="identifier">bucket_hash_equal_t</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">siterator</span> <a class="link" href="bucket_hash_equal_idm29975.html#idm30035-bb"><span class="identifier">priv_begin</span></a><span class="special">(</span><span class="identifier">bucket_ptr</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="bucket_hash_equal_idm29975.html#idm30039-bb"><span class="identifier">priv_insertion_update_cache</span></a><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">key_equal</span> <span class="special">&</span> <a class="link" href="bucket_hash_equal_idm29975.html#idm30043-bb"><span class="identifier">priv_equal</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> <span class="special">&</span> <a class="link" href="bucket_hash_equal_idm29975.html#idm30045-bb"><span class="identifier">priv_equal</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="bucket_hash_equal_idm29975.html#idm30047-bb"><span class="identifier">priv_erasure_update_cache_range</span></a><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="bucket_hash_equal_idm29975.html#idm30053-bb"><span class="identifier">priv_erasure_update_cache</span></a><span class="special">(</span><span class="identifier">bucket_ptr</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="bucket_hash_equal_idm29975.html#idm30057-bb"><span class="identifier">priv_erasure_update_cache</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + + <span class="comment">// public data members</span> + <span class="identifier">bucket_ptr</span> <span class="identifier">cached_begin_</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="id-1.3.18.42.14.4.4"></a><h2>Description</h2> +<div class="refsect2"> +<a name="id-1.3.18.42.14.4.4.2"></a><h3> +<a name="boost.intrusive.bucket_hash_equal_idm29975construct-copy-destruct"></a><code class="computeroutput">bucket_hash_equal_t</code> + public + construct/copy/destruct</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"><pre class="literallayout"><a name="idm30059-bb"></a><span class="identifier">bucket_hash_equal_t</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ValueTraits</span> <span class="special">&</span> val_traits<span class="special">,</span> + <span class="keyword">const</span> <span class="identifier">bucket_traits</span> <span class="special">&</span> b_traits<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">hasher</span> <span class="special">&</span> h<span class="special">,</span> + <span class="keyword">const</span> <span class="identifier">key_equal</span> <span class="special">&</span> e<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><a name="idm30068-bb"></a><span class="identifier">bucket_hash_equal_t</span><span class="special">(</span><span class="identifier">bucket_hash_equal_t</span> <span class="special">&&</span> other<span class="special">)</span><span class="special">;</span></pre></li> +</ol></div> +</div> +<div class="refsect2"> +<a name="id-1.3.18.42.14.4.4.3"></a><h3> +<a name="idm30016-bb"></a><code class="computeroutput">bucket_hash_equal_t</code> public member functions</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"><pre class="literallayout"><span class="identifier">bucket_ptr</span> <a name="idm30017-bb"></a><span class="identifier">priv_get_cache</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">void</span> <a name="idm30019-bb"></a><span class="identifier">priv_set_cache</span><span class="special">(</span><span class="identifier">bucket_ptr</span> p<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">void</span> <a name="idm30023-bb"></a><span class="identifier">priv_set_cache_bucket_num</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> insertion_bucket<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a name="idm30027-bb"></a><span class="identifier">priv_get_cache_bucket_num</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">void</span> <a name="idm30029-bb"></a><span class="identifier">priv_init_cache</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">void</span> <a name="idm30031-bb"></a><span class="identifier">priv_swap_cache</span><span class="special">(</span><span class="identifier">bucket_hash_equal_t</span> <span class="special">&</span> other<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">siterator</span> <a name="idm30035-bb"></a><span class="identifier">priv_begin</span><span class="special">(</span><span class="identifier">bucket_ptr</span> <span class="special">&</span> pbucketptr<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">void</span> <a name="idm30039-bb"></a><span class="identifier">priv_insertion_update_cache</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> insertion_bucket<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">const</span> <span class="identifier">key_equal</span> <span class="special">&</span> <a name="idm30043-bb"></a><span class="identifier">priv_equal</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">key_equal</span> <span class="special">&</span> <a name="idm30045-bb"></a><span class="identifier">priv_equal</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">void</span> <a name="idm30047-bb"></a><span class="identifier">priv_erasure_update_cache_range</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> first_bucket_num<span class="special">,</span> + <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> last_bucket_num<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">void</span> <a name="idm30053-bb"></a><span class="identifier">priv_erasure_update_cache</span><span class="special">(</span><span class="identifier">bucket_ptr</span> first_bucket<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">void</span> <a name="idm30057-bb"></a><span class="identifier">priv_erasure_update_cache</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre></li> +</ol></div> +</div> +</div> +</div> +<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> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="bucket_hash_equal_t.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="bucket_hash_t.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/doc/html/boost/intrusive/bucket_hash_equal_t.html b/doc/html/boost/intrusive/bucket_hash_equal_t.html new file mode 100644 index 0000000000..4a2c08ebfe --- /dev/null +++ b/doc/html/boost/intrusive/bucket_hash_equal_t.html @@ -0,0 +1,121 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>Struct template bucket_hash_equal_t</title> +<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css"> +<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="bucket_hash_equal_idm29975.html" title="Struct template bucket_hash_equal_t<ValueTraits, VoidOrKeyOfValue, VoidOrKeyHash, VoidOrKeyEqual, BucketTraits, LinearBuckets, true>"> +<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> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td> +<td align="center"><a href="../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../more/index.htm">More</a></td> +</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="bucket_hash_equal_idm29975.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.intrusive.bucket_hash_equal_t"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Struct template bucket_hash_equal_t</span></h2> +<p>boost::intrusive::bucket_hash_equal_t</p> +</div> +<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> ValueTraits<span class="special">,</span> <span class="keyword">typename</span> VoidOrKeyOfValue<span class="special">,</span> + <span class="keyword">typename</span> VoidOrKeyHash<span class="special">,</span> <span class="keyword">typename</span> VoidOrKeyEqual<span class="special">,</span> + <span class="keyword">typename</span> BucketTraits<span class="special">,</span> <span class="keyword">bool</span> LinearBuckets<span class="special">,</span> <span class="keyword">bool</span> <span class="special">></span> +<span class="keyword">struct</span> <a class="link" href="bucket_hash_equal_t.html" title="Struct template bucket_hash_equal_t">bucket_hash_equal_t</a> <span class="special">:</span> <span class="keyword">public</span> boost::intrusive::bucket_hash_t< ValueTraits, VoidOrKeyOfValue, VoidOrKeyHash, BucketTraits, LinearBuckets >, + <span class="keyword">public</span> hashtable_equal_holder::type +<span class="special">{</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <span class="identifier">hashtable_equal_holder</span><span class="special"><</span> <span class="identifier">ValueTraits</span><span class="special">,</span> <span class="identifier">BucketTraits</span><span class="special">,</span> <span class="identifier">VoidOrKeyOfValue</span><span class="special">,</span> <span class="identifier">VoidOrKeyEqual</span><span class="special">,</span> <span class="identifier">LinearBuckets</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> <a name="boost.intrusive.bucket_hash_equal_t.equal_holder_t"></a><span class="identifier">equal_holder_t</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">bucket_hash_t</span><span class="special"><</span> <span class="identifier">ValueTraits</span><span class="special">,</span> <span class="identifier">VoidOrKeyOfValue</span><span class="special">,</span> <span class="identifier">VoidOrKeyHash</span><span class="special">,</span> <span class="identifier">BucketTraits</span><span class="special">,</span> <span class="identifier">LinearBuckets</span> <span class="special">></span> <a name="boost.intrusive.bucket_hash_equal_t.bucket_hash_type"></a><span class="identifier">bucket_hash_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">bucket_plus_vtraits</span><span class="special"><</span> <span class="identifier">ValueTraits</span><span class="special">,</span> <span class="identifier">BucketTraits</span><span class="special">,</span> <span class="identifier">LinearBuckets</span> <span class="special">></span> <a name="boost.intrusive.bucket_hash_equal_t.bucket_plus_vtraits_t"></a><span class="identifier">bucket_plus_vtraits_t</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">ValueTraits</span> <a name="boost.intrusive.bucket_hash_equal_t.value_traits"></a><span class="identifier">value_traits</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">equal_holder_t</span><span class="special">::</span><span class="identifier">functor_type</span> <a name="boost.intrusive.bucket_hash_equal_t.key_equal"></a><span class="identifier">key_equal</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">bucket_hash_type</span><span class="special">::</span><span class="identifier">hasher</span> <a name="boost.intrusive.bucket_hash_equal_t.hasher"></a><span class="identifier">hasher</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">BucketTraits</span> <a name="boost.intrusive.bucket_hash_equal_t.bucket_traits"></a><span class="identifier">bucket_traits</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">bucket_plus_vtraits_t</span><span class="special">::</span><span class="identifier">siterator</span> <a name="boost.intrusive.bucket_hash_equal_t.siterator"></a><span class="identifier">siterator</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">bucket_plus_vtraits_t</span><span class="special">::</span><span class="identifier">const_siterator</span> <a name="boost.intrusive.bucket_hash_equal_t.const_siterator"></a><span class="identifier">const_siterator</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">bucket_plus_vtraits_t</span><span class="special">::</span><span class="identifier">bucket_type</span> <a name="boost.intrusive.bucket_hash_equal_t.bucket_type"></a><span class="identifier">bucket_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">bucket_plus_vtraits_t</span><span class="special">::</span><span class="identifier">slist_node_algorithms</span> <a name="boost.intrusive.bucket_hash_equal_t.slist_node_algorithms"></a><span class="identifier">slist_node_algorithms</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">unordered_bucket_ptr_impl</span><span class="special"><</span> <span class="identifier">value_traits</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> <a name="boost.intrusive.bucket_hash_equal_t.bucket_ptr"></a><span class="identifier">bucket_ptr</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="bucket_hash_equal_t.html#boost.intrusive.bucket_hash_equal_tconstruct-copy-destruct">construct/copy/destruct</a></span> + <a class="link" href="bucket_hash_equal_t.html#idm29963-bb"><span class="identifier">bucket_hash_equal_t</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ValueTraits</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">bucket_traits</span> <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="keyword">const</span> <span class="identifier">key_equal</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="bucket_hash_equal_t.html#idm29972-bb"><span class="identifier">bucket_hash_equal_t</span></a><span class="special">(</span><span class="identifier">bucket_hash_equal_t</span> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="bucket_hash_equal_t.html#idm29920-bb">public member functions</a></span> + <span class="identifier">bucket_ptr</span> <a class="link" href="bucket_hash_equal_t.html#idm29921-bb"><span class="identifier">priv_get_cache</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="bucket_hash_equal_t.html#idm29923-bb"><span class="identifier">priv_set_cache</span></a><span class="special">(</span><span class="identifier">bucket_ptr</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="bucket_hash_equal_t.html#idm29927-bb"><span class="identifier">priv_set_cache_bucket_num</span></a><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a class="link" href="bucket_hash_equal_t.html#idm29931-bb"><span class="identifier">priv_get_cache_bucket_num</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="bucket_hash_equal_t.html#idm29933-bb"><span class="identifier">priv_init_cache</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="bucket_hash_equal_t.html#idm29935-bb"><span class="identifier">priv_swap_cache</span></a><span class="special">(</span><span class="identifier">bucket_hash_equal_t</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">siterator</span> <a class="link" href="bucket_hash_equal_t.html#idm29939-bb"><span class="identifier">priv_begin</span></a><span class="special">(</span><span class="identifier">bucket_ptr</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="bucket_hash_equal_t.html#idm29943-bb"><span class="identifier">priv_insertion_update_cache</span></a><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="bucket_hash_equal_t.html#idm29947-bb"><span class="identifier">priv_erasure_update_cache_range</span></a><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="bucket_hash_equal_t.html#idm29953-bb"><span class="identifier">priv_erasure_update_cache</span></a><span class="special">(</span><span class="identifier">bucket_ptr</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="bucket_hash_equal_t.html#idm29957-bb"><span class="identifier">priv_erasure_update_cache</span></a><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> <a class="link" href="bucket_hash_equal_t.html#idm29959-bb"><span class="identifier">priv_equal</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> <span class="special">&</span> <a class="link" href="../interprocess/basic_bufferstream.html#idm29961-bb"><span class="identifier">priv_equal</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="id-1.3.18.42.14.3.4"></a><h2>Description</h2> +<div class="refsect2"> +<a name="id-1.3.18.42.14.3.4.2"></a><h3> +<a name="boost.intrusive.bucket_hash_equal_tconstruct-copy-destruct"></a><code class="computeroutput">bucket_hash_equal_t</code> + public + construct/copy/destruct</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"><pre class="literallayout"><a name="idm29963-bb"></a><span class="identifier">bucket_hash_equal_t</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ValueTraits</span> <span class="special">&</span> val_traits<span class="special">,</span> + <span class="keyword">const</span> <span class="identifier">bucket_traits</span> <span class="special">&</span> b_traits<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">hasher</span> <span class="special">&</span> h<span class="special">,</span> + <span class="keyword">const</span> <span class="identifier">key_equal</span> <span class="special">&</span> e<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><a name="idm29972-bb"></a><span class="identifier">bucket_hash_equal_t</span><span class="special">(</span><span class="identifier">bucket_hash_equal_t</span> <span class="special">&&</span> other<span class="special">)</span><span class="special">;</span></pre></li> +</ol></div> +</div> +<div class="refsect2"> +<a name="id-1.3.18.42.14.3.4.3"></a><h3> +<a name="idm29920-bb"></a><code class="computeroutput">bucket_hash_equal_t</code> public member functions</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"><pre class="literallayout"><span class="identifier">bucket_ptr</span> <a name="idm29921-bb"></a><span class="identifier">priv_get_cache</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">void</span> <a name="idm29923-bb"></a><span class="identifier">priv_set_cache</span><span class="special">(</span><span class="identifier">bucket_ptr</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">void</span> <a name="idm29927-bb"></a><span class="identifier">priv_set_cache_bucket_num</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a name="idm29931-bb"></a><span class="identifier">priv_get_cache_bucket_num</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">void</span> <a name="idm29933-bb"></a><span class="identifier">priv_init_cache</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">void</span> <a name="idm29935-bb"></a><span class="identifier">priv_swap_cache</span><span class="special">(</span><span class="identifier">bucket_hash_equal_t</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">siterator</span> <a name="idm29939-bb"></a><span class="identifier">priv_begin</span><span class="special">(</span><span class="identifier">bucket_ptr</span> <span class="special">&</span> pbucketptr<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">void</span> <a name="idm29943-bb"></a><span class="identifier">priv_insertion_update_cache</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">void</span> <a name="idm29947-bb"></a><span class="identifier">priv_erasure_update_cache_range</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">void</span> <a name="idm29953-bb"></a><span class="identifier">priv_erasure_update_cache</span><span class="special">(</span><span class="identifier">bucket_ptr</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">void</span> <a name="idm29957-bb"></a><span class="identifier">priv_erasure_update_cache</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">const</span> <span class="identifier">key_equal</span> <span class="special">&</span> <a name="idm29959-bb"></a><span class="identifier">priv_equal</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">key_equal</span> <span class="special">&</span> <a name="idm29961-bb"></a><span class="identifier">priv_equal</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre></li> +</ol></div> +</div> +</div> +</div> +<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> +<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="bucket_hash_equal_idm29975.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/doc/html/boost/intrusive/bucket_hash_t.html b/doc/html/boost/intrusive/bucket_hash_t.html new file mode 100644 index 0000000000..639d128a4f --- /dev/null +++ b/doc/html/boost/intrusive/bucket_hash_t.html @@ -0,0 +1,96 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>Struct template bucket_hash_t</title> +<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css"> +<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="bucket_hash_equal_idm29975.html" title="Struct template bucket_hash_equal_t<ValueTraits, VoidOrKeyOfValue, VoidOrKeyHash, VoidOrKeyEqual, BucketTraits, LinearBuckets, true>"> +<link rel="next" href="bucket_plus_vtraits.html" title="Struct template bucket_plus_vtraits"> +<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> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td> +<td align="center"><a href="../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="bucket_hash_equal_idm29975.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="bucket_plus_vtraits.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.intrusive.bucket_hash_t"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Struct template bucket_hash_t</span></h2> +<p>boost::intrusive::bucket_hash_t</p> +</div> +<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> ValueTraits<span class="special">,</span> <span class="keyword">typename</span> VoidOrKeyOfValue<span class="special">,</span> + <span class="keyword">typename</span> VoidOrKeyHash<span class="special">,</span> <span class="keyword">typename</span> BucketTraits<span class="special">,</span> <span class="keyword">bool</span> LinearBuckets<span class="special">></span> +<span class="keyword">struct</span> <a class="link" href="bucket_hash_t.html" title="Struct template bucket_hash_t">bucket_hash_t</a> <span class="special">:</span> <span class="keyword">public</span> boost::intrusive::bucket_plus_vtraits< ValueTraits, BucketTraits, LinearBuckets > +<span class="special">{</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <span class="identifier">bucket_plus_vtraits</span><span class="special"><</span> <span class="identifier">ValueTraits</span><span class="special">,</span> <span class="identifier">BucketTraits</span><span class="special">,</span> <span class="identifier">LinearBuckets</span> <span class="special">></span><span class="special">::</span><span class="identifier">value_traits</span> <a name="boost.intrusive.bucket_hash_t.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">value_type</span> <a name="boost.intrusive.bucket_hash_t.value_type"></a><span class="identifier">value_type</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.bucket_hash_t.node_traits"></a><span class="identifier">node_traits</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">hash_key_hash</span><span class="special"><</span> <span class="identifier">value_type</span><span class="special">,</span> <span class="identifier">VoidOrKeyOfValue</span><span class="special">,</span> <span class="identifier">VoidOrKeyHash</span> <span class="special">></span> <a name="boost.intrusive.bucket_hash_t.hash_key_hash_t"></a><span class="identifier">hash_key_hash_t</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">hash_key_hash_t</span><span class="special">::</span><span class="identifier">type</span> <a name="boost.intrusive.bucket_hash_t.hasher"></a><span class="identifier">hasher</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">hash_key_types_base</span><span class="special"><</span> <span class="identifier">value_type</span><span class="special">,</span> <span class="identifier">VoidOrKeyOfValue</span> <span class="special">></span><span class="special">::</span><span class="identifier">key_of_value</span> <a name="boost.intrusive.bucket_hash_t.key_of_value"></a><span class="identifier">key_of_value</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">BucketTraits</span> <a name="boost.intrusive.bucket_hash_t.bucket_traits"></a><span class="identifier">bucket_traits</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">bucket_plus_vtraits</span><span class="special"><</span> <span class="identifier">ValueTraits</span><span class="special">,</span> <span class="identifier">BucketTraits</span><span class="special">,</span> <span class="identifier">LinearBuckets</span> <span class="special">></span> <a name="boost.intrusive.bucket_hash_t.bucket_plus_vtraits_t"></a><span class="identifier">bucket_plus_vtraits_t</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.bucket_hash_t.base_t"></a><span class="identifier">base_t</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="bucket_hash_t.html#boost.intrusive.bucket_hash_tconstruct-copy-destruct">construct/copy/destruct</a></span> + <a class="link" href="bucket_hash_t.html#idm30117-bb"><span class="identifier">bucket_hash_t</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ValueTraits</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">bucket_traits</span> <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="special">;</span> + <a class="link" href="bucket_hash_t.html#idm30124-bb"><span class="identifier">bucket_hash_t</span></a><span class="special">(</span><span class="identifier">bucket_hash_t</span> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="bucket_hash_t.html#idm30099-bb">public member functions</a></span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> K<span class="special">></span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a class="link" href="bucket_hash_t.html#idm30100-bb"><span class="identifier">priv_hash</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">K</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">hasher</span> <span class="special">&</span> <a class="link" href="bucket_hash_t.html#idm30106-bb"><span class="identifier">priv_hasher</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">hasher</span> <span class="special">&</span> <a class="link" href="bucket_hash_t.html#idm30108-bb"><span class="identifier">priv_hasher</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a class="link" href="bucket_hash_t.html#idm30110-bb"><span class="identifier">priv_stored_or_compute_hash</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">value_type</span> <span class="special">&</span><span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="id-1.3.18.42.14.5.4"></a><h2>Description</h2> +<div class="refsect2"> +<a name="id-1.3.18.42.14.5.4.2"></a><h3> +<a name="boost.intrusive.bucket_hash_tconstruct-copy-destruct"></a><code class="computeroutput">bucket_hash_t</code> + public + construct/copy/destruct</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"><pre class="literallayout"><a name="idm30117-bb"></a><span class="identifier">bucket_hash_t</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ValueTraits</span> <span class="special">&</span> val_traits<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">bucket_traits</span> <span class="special">&</span> b_traits<span class="special">,</span> + <span class="keyword">const</span> <span class="identifier">hasher</span> <span class="special">&</span> h<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><a name="idm30124-bb"></a><span class="identifier">bucket_hash_t</span><span class="special">(</span><span class="identifier">bucket_hash_t</span> <span class="special">&&</span> other<span class="special">)</span><span class="special">;</span></pre></li> +</ol></div> +</div> +<div class="refsect2"> +<a name="id-1.3.18.42.14.5.4.3"></a><h3> +<a name="idm30099-bb"></a><code class="computeroutput">bucket_hash_t</code> public member functions</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> K<span class="special">></span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a name="idm30100-bb"></a><span class="identifier">priv_hash</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">K</span> <span class="special">&</span> k<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">const</span> <span class="identifier">hasher</span> <span class="special">&</span> <a name="idm30106-bb"></a><span class="identifier">priv_hasher</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">hasher</span> <span class="special">&</span> <a name="idm30108-bb"></a><span class="identifier">priv_hasher</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a name="idm30110-bb"></a><span class="identifier">priv_stored_or_compute_hash</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">value_type</span> <span class="special">&</span> v<span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +</ol></div> +</div> +</div> +</div> +<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> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="bucket_hash_equal_idm29975.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="bucket_plus_vtraits.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/doc/html/boost/intrusive/bucket_plus_vtraits.html b/doc/html/boost/intrusive/bucket_plus_vtraits.html new file mode 100644 index 0000000000..20f735855a --- /dev/null +++ b/doc/html/boost/intrusive/bucket_plus_vtraits.html @@ -0,0 +1,307 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>Struct template bucket_plus_vtraits</title> +<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css"> +<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="bucket_hash_t.html" title="Struct template bucket_hash_t"> +<link rel="next" href="bucket_plus_vtraits/data_type.html" title="Struct data_type"> +<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> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td> +<td align="center"><a href="../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="bucket_hash_t.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="bucket_plus_vtraits/data_type.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.intrusive.bucket_plus_vtraits"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Struct template bucket_plus_vtraits</span></h2> +<p>boost::intrusive::bucket_plus_vtraits</p> +</div> +<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> ValueTraits<span class="special">,</span> <span class="keyword">typename</span> BucketTraits<span class="special">,</span> <span class="keyword">bool</span> LinearBuckets<span class="special">></span> +<span class="keyword">struct</span> <a class="link" href="bucket_plus_vtraits.html" title="Struct template bucket_plus_vtraits">bucket_plus_vtraits</a> <span class="special">{</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <span class="identifier">BucketTraits</span> <a name="boost.intrusive.bucket_plus_vtraits.bucket_traits"></a><span class="identifier">bucket_traits</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">ValueTraits</span> <a name="boost.intrusive.bucket_plus_vtraits.value_traits"></a><span class="identifier">value_traits</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">unordered_bucket_impl</span><span class="special"><</span> <span class="identifier">value_traits</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> <a name="boost.intrusive.bucket_plus_vtraits.bucket_type"></a><span class="identifier">bucket_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">unordered_bucket_ptr_impl</span><span class="special"><</span> <span class="identifier">value_traits</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> <a name="boost.intrusive.bucket_plus_vtraits.bucket_ptr"></a><span class="identifier">bucket_ptr</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.bucket_plus_vtraits.node_traits"></a><span class="identifier">node_traits</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">bucket_type</span><span class="special">::</span><span class="identifier">node_traits</span> <a name="boost.intrusive.bucket_plus_vtraits.slist_node_traits"></a><span class="identifier">slist_node_traits</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">unordered_group_adapter</span><span class="special"><</span> <span class="identifier">node_traits</span> <span class="special">></span> <a name="boost.intrusive.bucket_plus_vtraits.group_traits"></a><span class="identifier">group_traits</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">group_functions</span><span class="special"><</span> <span class="identifier">node_traits</span> <span class="special">></span> <a name="boost.intrusive.bucket_plus_vtraits.group_functions_t"></a><span class="identifier">group_functions_t</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.bucket_plus_vtraits.slist_node_algorithms"></a><span class="identifier">slist_node_algorithms</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">slist_node_traits</span><span class="special">::</span><span class="identifier">node_ptr</span> <a name="boost.intrusive.bucket_plus_vtraits.slist_node_ptr"></a><span class="identifier">slist_node_ptr</span><span class="special">;</span> + <span class="keyword">typedef</span> <a class="link" href="trivial_value_traits.html" title="Struct template trivial_value_traits">trivial_value_traits</a><span class="special"><</span> <span class="identifier">slist_node_traits</span><span class="special">,</span> <span class="identifier">normal_link</span> <span class="special">></span> <a name="boost.intrusive.bucket_plus_vtraits.slist_value_traits"></a><span class="identifier">slist_value_traits</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">slist_iterator</span><span class="special"><</span> <a class="link" href="bucket_plus_vtraits.html#boost.intrusive.bucket_plus_vtraits.slist_value_traits">slist_value_traits</a><span class="special">,</span> <span class="keyword">false</span> <span class="special">></span> <a name="boost.intrusive.bucket_plus_vtraits.siterator"></a><span class="identifier">siterator</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">slist_iterator</span><span class="special"><</span> <a class="link" href="bucket_plus_vtraits.html#boost.intrusive.bucket_plus_vtraits.slist_value_traits">slist_value_traits</a><span class="special">,</span> <span class="keyword">true</span> <span class="special">></span> <a name="boost.intrusive.bucket_plus_vtraits.const_siterator"></a><span class="identifier">const_siterator</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">node_traits</span><span class="special">::</span><span class="identifier">node_ptr</span> <a name="boost.intrusive.bucket_plus_vtraits.node_ptr"></a><span class="identifier">node_ptr</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">node_traits</span><span class="special">::</span><span class="identifier">const_node_ptr</span> <a name="boost.intrusive.bucket_plus_vtraits.const_node_ptr"></a><span class="identifier">const_node_ptr</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.bucket_plus_vtraits.node"></a><span class="identifier">node</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.bucket_plus_vtraits.value_type"></a><span class="identifier">value_type</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.bucket_plus_vtraits.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.bucket_plus_vtraits.const_pointer"></a><span class="identifier">const_pointer</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.bucket_plus_vtraits.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.bucket_plus_vtraits.const_reference"></a><span class="identifier">const_reference</span><span class="special">;</span> + <span class="keyword">typedef</span> <a class="link" href="circular_slist_algorithms.html" title="Class template circular_slist_algorithms">circular_slist_algorithms</a><span class="special"><</span> <span class="identifier">group_traits</span> <span class="special">></span> <a name="boost.intrusive.bucket_plus_vtraits.group_algorithms"></a><span class="identifier">group_algorithms</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">typenamevalue_traits</span><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">constvalue_traits</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> <a name="boost.intrusive.bucket_plus_vtraits.const_value_traits_ptr"></a><span class="identifier">const_value_traits_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">typenamevalue_traits</span><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">constbucket_plus_vtraits</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> <a name="boost.intrusive.bucket_plus_vtraits.const_bucket_valu_idm30205"></a><span class="identifier">const_bucket_value_traits_ptr</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.bucket_plus_vtraits.linear_buckets_t"></a><span class="identifier">linear_buckets_t</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">bucket_plus_vtraits</span> <span class="special">&</span> <a name="boost.intrusive.bucket_plus_vtraits.this_ref"></a><span class="identifier">this_ref</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">hashtable_iterator</span><span class="special"><</span> <span class="identifier">bucket_plus_vtraits</span><span class="special">,</span> <span class="identifier">LinearBuckets</span><span class="special">,</span> <span class="keyword">false</span> <span class="special">></span> <a name="boost.intrusive.bucket_plus_vtraits.iterator"></a><span class="identifier">iterator</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">hashtable_iterator</span><span class="special"><</span> <span class="identifier">bucket_plus_vtraits</span><span class="special">,</span> <span class="identifier">LinearBuckets</span><span class="special">,</span> <span class="keyword">true</span> <span class="special">></span> <a name="boost.intrusive.bucket_plus_vtraits.const_iterator"></a><span class="identifier">const_iterator</span><span class="special">;</span> + + <span class="comment">// member classes/structs/unions</span> + + <span class="keyword">struct</span> <a class="link" href="bucket_plus_vtraits/data_type.html" title="Struct data_type">data_type</a> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">ValueTraits</span>, <span class="keyword">public</span> <span class="identifier">BucketTraits</span> <span class="special">{</span> + <span class="comment">// <a class="link" href="bucket_plus_vtraits/data_type.html#boost.intrusive.bucket_plus_vtraits.data_typeconstruct-copy-destruct">construct/copy/destruct</a></span> + <a class="link" href="bucket_plus_vtraits/data_type.html#idm30137-bb"><span class="identifier">data_type</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ValueTraits</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">BucketTraits</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="bucket_plus_vtraits/data_type.html#idm30142-bb"><span class="identifier">data_type</span></a><span class="special">(</span><span class="identifier">data_type</span> <span class="special">&&</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> Disposer<span class="special">></span> + <span class="keyword">struct</span> <a class="link" href="bucket_plus_vtraits/typeof_node_disposer.html" title="Struct template typeof_node_disposer">typeof_node_disposer</a> <span class="special">{</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span> <a class="link" href="bucket_plus_vtraits/typeof_node_disposer.html#boost.intrusive.bucket_plus_vtraits.typeof_node_disposer.type"><span class="identifier">type</span></a><span class="special">;</span> + <span class="special">}</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="bucket_plus_vtraits.html#boost.intrusive.bucket_plus_vtraitsconstruct-copy-destruct">construct/copy/destruct</a></span> + <a class="link" href="../interprocess/file_lock.html#idm30412-bb"><span class="identifier">bucket_plus_vtraits</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ValueTraits</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">bucket_traits</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="bucket_plus_vtraits.html#idm30417-bb"><span class="identifier">bucket_plus_vtraits</span></a><span class="special">(</span><span class="identifier">bucket_plus_vtraits</span> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="bucket_plus_vtraits.html#idm30221-bb">public member functions</a></span> + <span class="identifier">const_value_traits_ptr</span> <a class="link" href="bucket_plus_vtraits.html#idm30222-bb"><span class="identifier">priv_value_traits_ptr</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">bucket_plus_vtraits</span> <span class="special">&</span> <a class="link" href="bucket_plus_vtraits.html#idm30224-bb"><span class="identifier">get_bucket_value_traits</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">bucket_plus_vtraits</span> <span class="special">&</span> <a class="link" href="bucket_plus_vtraits.html#idm30226-bb"><span class="identifier">get_bucket_value_traits</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">const_bucket_value_traits_ptr</span> <a class="link" href="bucket_plus_vtraits.html#idm30228-bb"><span class="identifier">bucket_value_traits_ptr</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">value_traits</span> <span class="special">&</span> <a class="link" href="bucket_plus_vtraits.html#idm30230-bb"><span class="identifier">priv_value_traits</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">value_traits</span> <span class="special">&</span> <a class="link" href="bucket_plus_vtraits.html#idm30232-bb"><span class="identifier">priv_value_traits</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">bucket_traits</span> <span class="special">&</span> <a class="link" href="bucket_plus_vtraits.html#idm30234-bb"><span class="identifier">priv_bucket_traits</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">bucket_traits</span> <span class="special">&</span> <a class="link" href="bucket_plus_vtraits.html#idm30236-bb"><span class="identifier">priv_bucket_traits</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">bucket_ptr</span> <a class="link" href="bucket_plus_vtraits.html#idm30238-bb"><span class="identifier">priv_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">std</span><span class="special">::</span><span class="identifier">size_t</span> <a class="link" href="bucket_plus_vtraits.html#idm30240-bb"><span class="identifier">priv_usable_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">bucket_type</span> <span class="special">&</span> <a class="link" href="bucket_plus_vtraits.html#idm30242-bb"><span class="identifier">priv_bucket</span></a><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">bucket_ptr</span> <a class="link" href="bucket_plus_vtraits.html#idm30246-bb"><span class="identifier">priv_bucket_ptr</span></a><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">bucket_ptr</span> <a class="link" href="bucket_plus_vtraits.html#idm30250-bb"><span class="identifier">priv_past_usable_bucket_ptr</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">bucket_ptr</span> <a class="link" href="bucket_plus_vtraits.html#idm30252-bb"><span class="identifier">priv_invalid_bucket_ptr</span></a><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="bucket_plus_vtraits.html#idm30254-bb"><span class="identifier">priv_set_sentinel_bucket</span></a><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="bucket_plus_vtraits.html#idm30256-bb"><span class="identifier">priv_unset_sentinel_bucket</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">siterator</span> <a class="link" href="bucket_plus_vtraits.html#idm30258-bb"><span class="identifier">priv_end_sit</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">siterator</span> <a class="link" href="bucket_plus_vtraits.html#idm30260-bb"><span class="identifier">priv_end_sit</span></a><span class="special">(</span><span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">siterator</span> <a class="link" href="bucket_plus_vtraits.html#idm30265-bb"><span class="identifier">priv_end_sit</span></a><span class="special">(</span><span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">siterator</span> <a class="link" href="bucket_plus_vtraits.html#idm30270-bb"><span class="identifier">priv_bucket_lbegin</span></a><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">siterator</span> <a class="link" href="../interprocess/basic_vectorbuf.html#idm30274-bb"><span class="identifier">priv_bucket_lbbegin</span></a><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">siterator</span> <a class="link" href="../interprocess/basic_vectorbuf.html#idm30278-bb"><span class="identifier">priv_bucket_lend</span></a><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</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">size_t</span> <a class="link" href="bucket_plus_vtraits.html#idm30282-bb"><span class="identifier">priv_bucket_size</span></a><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="keyword">bool</span> <a class="link" href="bucket_plus_vtraits.html#idm30286-bb"><span class="identifier">priv_bucket_empty</span></a><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="keyword">bool</span> <a class="link" href="bucket_plus_vtraits.html#idm30290-bb"><span class="identifier">priv_bucket_empty</span></a><span class="special">(</span><span class="identifier">bucket_ptr</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> NodeDisposer<span class="special">,</span> <span class="keyword">bool</span> OptimizeMultikey<span class="special">></span> + <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a class="link" href="../interprocess/basic_vectorbuf.html#idm30294-bb"><span class="identifier">priv_erase_node_range</span></a><span class="special">(</span><span class="identifier">siterator</span> <span class="keyword">const</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="keyword">const</span><span class="special">,</span> + <span class="identifier">siterator</span> <span class="keyword">const</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="keyword">const</span><span class="special">,</span> + <span class="identifier">NodeDisposer</span><span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></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="identifier">typeof_node_disposer</span><span class="special"><</span> <span class="identifier">Disposer</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> + <a class="link" href="bucket_plus_vtraits.html#idm30313-bb"><span class="identifier">make_node_disposer</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">Disposer</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">node</span> <span class="special">&</span> <a class="link" href="bucket_plus_vtraits.html#idm30319-bb"><span class="identifier">priv_value_to_node</span></a><span class="special">(</span><span class="identifier">reference</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">node</span> <span class="special">&</span> <a class="link" href="../interprocess/basic_vectorstream.html#idm30323-bb"><span class="identifier">priv_value_to_node</span></a><span class="special">(</span><span class="identifier">const_reference</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">node_ptr</span> <a class="link" href="../interprocess/basic_vectorstream.html#idm30327-bb"><span class="identifier">priv_value_to_node_ptr</span></a><span class="special">(</span><span class="identifier">reference</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">const_node_ptr</span> <a class="link" href="bucket_plus_vtraits.html#idm30331-bb"><span class="identifier">priv_value_to_node_ptr</span></a><span class="special">(</span><span class="identifier">const_reference</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">reference</span> <a class="link" href="bucket_plus_vtraits.html#idm30335-bb"><span class="identifier">priv_value_from_siterator</span></a><span class="special">(</span><span class="identifier">siterator</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">const_reference</span> <a class="link" href="bucket_plus_vtraits.html#idm30339-bb"><span class="identifier">priv_value_from_siterator</span></a><span class="special">(</span><span class="identifier">siterator</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="../interprocess/basic_vectorstream.html#idm30343-bb"><span class="identifier">priv_clear_buckets</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">bucket_ptr</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a class="link" href="bucket_plus_vtraits.html#idm30349-bb"><span class="identifier">priv_stored_or_compute_hash</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">value_type</span> <span class="special">&</span><span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="bucket_plus_vtraits.html#idm30356-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="bucket_plus_vtraits.html#idm30358-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="bucket_plus_vtraits.html#idm30360-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">iterator</span> <a class="link" href="bucket_plus_vtraits.html#idm30362-bb"><span class="identifier">build_iterator</span></a><span class="special">(</span><span class="identifier">siterator</span><span class="special">,</span> <span class="identifier">bucket_ptr</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="bucket_plus_vtraits.html#idm30368-bb"><span class="identifier">build_iterator</span></a><span class="special">(</span><span class="identifier">siterator</span><span class="special">,</span> <span class="identifier">bucket_ptr</span><span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="bucket_plus_vtraits.html#idm30377-bb"><span class="identifier">build_iterator</span></a><span class="special">(</span><span class="identifier">siterator</span><span class="special">,</span> <span class="identifier">bucket_ptr</span><span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span> + <span class="identifier">const_iterator</span> <a class="link" href="../interprocess/file_lock.html#idm30387-bb"><span class="identifier">build_const_iterator</span></a><span class="special">(</span><span class="identifier">siterator</span><span class="special">,</span> <span class="identifier">bucket_ptr</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">const_iterator</span> + <a class="link" href="bucket_plus_vtraits.html#idm30393-bb"><span class="identifier">build_const_iterator</span></a><span class="special">(</span><span class="identifier">siterator</span><span class="special">,</span> <span class="identifier">bucket_ptr</span><span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">const_iterator</span> + <a class="link" href="bucket_plus_vtraits.html#idm30402-bb"><span class="identifier">build_const_iterator</span></a><span class="special">(</span><span class="identifier">siterator</span><span class="special">,</span> <span class="identifier">bucket_ptr</span><span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="bucket_plus_vtraits.html#idm30420-bb">public static functions</a></span> + <span class="keyword">static</span> <span class="identifier">siterator</span> <a class="link" href="../interprocess/file_lock.html#idm30421-bb"><span class="identifier">priv_bucket_lbegin</span></a><span class="special">(</span><span class="identifier">bucket_type</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">siterator</span> <a class="link" href="bucket_plus_vtraits.html#idm30425-bb"><span class="identifier">priv_bucket_lbbegin</span></a><span class="special">(</span><span class="identifier">bucket_type</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">siterator</span> <a class="link" href="bucket_plus_vtraits.html#idm30429-bb"><span class="identifier">priv_bucket_lend</span></a><span class="special">(</span><span class="identifier">bucket_type</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a class="link" href="bucket_plus_vtraits.html#idm30433-bb"><span class="identifier">priv_bucket_size</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">bucket_type</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">bool</span> <a class="link" href="bucket_plus_vtraits.html#idm30437-bb"><span class="identifier">priv_bucket_empty</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">bucket_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> NodeDisposer<span class="special">></span> + <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> + <a class="link" href="bucket_plus_vtraits.html#idm30441-bb"><span class="identifier">priv_erase_from_single_bucket</span></a><span class="special">(</span><span class="identifier">bucket_type</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">siterator</span><span class="special">,</span> <span class="identifier">siterator</span><span class="special">,</span> + <span class="identifier">NodeDisposer</span><span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodeDisposer<span class="special">></span> + <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> + <a class="link" href="bucket_plus_vtraits.html#idm30456-bb"><span class="identifier">priv_erase_from_single_bucket</span></a><span class="special">(</span><span class="identifier">bucket_type</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">siterator</span><span class="special">,</span> <span class="identifier">siterator</span><span class="special">,</span> + <span class="identifier">NodeDisposer</span><span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodeDisposer<span class="special">></span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="bucket_plus_vtraits.html#idm30471-bb"><span class="identifier">priv_erase_node</span></a><span class="special">(</span><span class="identifier">bucket_type</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">siterator</span><span class="special">,</span> <span class="identifier">NodeDisposer</span><span class="special">,</span> + <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodeDisposer<span class="special">></span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="../interprocess/file_lock.html#idm30484-bb"><span class="identifier">priv_erase_node</span></a><span class="special">(</span><span class="identifier">bucket_type</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">siterator</span><span class="special">,</span> <span class="identifier">NodeDisposer</span><span class="special">,</span> + <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">siterator</span> <a class="link" href="bucket_plus_vtraits.html#idm30498-bb"><span class="identifier">priv_get_last</span></a><span class="special">(</span><span class="identifier">bucket_type</span> <span class="special">&</span><span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">siterator</span> <a class="link" href="bucket_plus_vtraits.html#idm30505-bb"><span class="identifier">priv_get_last</span></a><span class="special">(</span><span class="identifier">bucket_type</span> <span class="special">&</span><span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodeDisposer<span class="special">></span> + <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a class="link" href="bucket_plus_vtraits.html#idm30512-bb"><span class="identifier">priv_erase_whole_bucket</span></a><span class="special">(</span><span class="identifier">bucket_type</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">NodeDisposer</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">siterator</span> <a class="link" href="bucket_plus_vtraits.html#idm30520-bb"><span class="identifier">priv_get_previous</span></a><span class="special">(</span><span class="identifier">bucket_type</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">siterator</span><span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">siterator</span> <a class="link" href="bucket_plus_vtraits.html#idm30529-bb"><span class="identifier">priv_get_previous</span></a><span class="special">(</span><span class="identifier">bucket_type</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">siterator</span><span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">bucket_ptr</span> <a class="link" href="bucket_plus_vtraits.html#idm30538-bb"><span class="identifier">to_ptr</span></a><span class="special">(</span><span class="identifier">bucket_type</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">siterator</span> <a class="link" href="bucket_plus_vtraits.html#idm30542-bb"><span class="identifier">sit_bbegin</span></a><span class="special">(</span><span class="identifier">bucket_type</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">siterator</span> <a class="link" href="bucket_plus_vtraits.html#idm30546-bb"><span class="identifier">sit_begin</span></a><span class="special">(</span><span class="identifier">bucket_type</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">siterator</span> <a class="link" href="bucket_plus_vtraits.html#idm30550-bb"><span class="identifier">sit_end</span></a><span class="special">(</span><span class="identifier">bucket_type</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a class="link" href="bucket_plus_vtraits.html#idm30554-bb"><span class="identifier">priv_stored_hash</span></a><span class="special">(</span><span class="identifier">siterator</span><span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a class="link" href="bucket_plus_vtraits.html#idm30561-bb"><span class="identifier">priv_stored_hash</span></a><span class="special">(</span><span class="identifier">siterator</span><span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="bucket_plus_vtraits.html#idm30568-bb"><span class="identifier">priv_init_buckets</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">bucket_ptr</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">)</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">safemode_or_autounlink</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.18.42.14.6.4"></a><h2>Description</h2> +<div class="refsect2"> +<a name="id-1.3.18.42.14.6.4.2"></a><h3> +<a name="boost.intrusive.bucket_plus_vtraitsconstruct-copy-destruct"></a><code class="computeroutput">bucket_plus_vtraits</code> + public + construct/copy/destruct</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"><pre class="literallayout"><a name="idm30412-bb"></a><span class="identifier">bucket_plus_vtraits</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ValueTraits</span> <span class="special">&</span> val_traits<span class="special">,</span> + <span class="keyword">const</span> <span class="identifier">bucket_traits</span> <span class="special">&</span> b_traits<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><a name="idm30417-bb"></a><span class="identifier">bucket_plus_vtraits</span><span class="special">(</span><span class="identifier">bucket_plus_vtraits</span> <span class="special">&&</span> other<span class="special">)</span><span class="special">;</span></pre></li> +</ol></div> +</div> +<div class="refsect2"> +<a name="id-1.3.18.42.14.6.4.3"></a><h3> +<a name="idm30221-bb"></a><code class="computeroutput">bucket_plus_vtraits</code> public member functions</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_value_traits_ptr</span> <a name="idm30222-bb"></a><span class="identifier">priv_value_traits_ptr</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">const</span> <span class="identifier">bucket_plus_vtraits</span> <span class="special">&</span> <a name="idm30224-bb"></a><span class="identifier">get_bucket_value_traits</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">bucket_plus_vtraits</span> <span class="special">&</span> <a name="idm30226-bb"></a><span class="identifier">get_bucket_value_traits</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_bucket_value_traits_ptr</span> <a name="idm30228-bb"></a><span class="identifier">bucket_value_traits_ptr</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">const</span> <span class="identifier">value_traits</span> <span class="special">&</span> <a name="idm30230-bb"></a><span class="identifier">priv_value_traits</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">value_traits</span> <span class="special">&</span> <a name="idm30232-bb"></a><span class="identifier">priv_value_traits</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">const</span> <span class="identifier">bucket_traits</span> <span class="special">&</span> <a name="idm30234-bb"></a><span class="identifier">priv_bucket_traits</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">bucket_traits</span> <span class="special">&</span> <a name="idm30236-bb"></a><span class="identifier">priv_bucket_traits</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">bucket_ptr</span> <a name="idm30238-bb"></a><span class="identifier">priv_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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a name="idm30240-bb"></a><span class="identifier">priv_usable_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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">bucket_type</span> <span class="special">&</span> <a name="idm30242-bb"></a><span class="identifier">priv_bucket</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> n<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="identifier">bucket_ptr</span> <a name="idm30246-bb"></a><span class="identifier">priv_bucket_ptr</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> n<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="identifier">bucket_ptr</span> <a name="idm30250-bb"></a><span class="identifier">priv_past_usable_bucket_ptr</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">bucket_ptr</span> <a name="idm30252-bb"></a><span class="identifier">priv_invalid_bucket_ptr</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">void</span> <a name="idm30254-bb"></a><span class="identifier">priv_set_sentinel_bucket</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">void</span> <a name="idm30256-bb"></a><span class="identifier">priv_unset_sentinel_bucket</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">siterator</span> <a name="idm30258-bb"></a><span class="identifier">priv_end_sit</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">siterator</span> <a name="idm30260-bb"></a><span class="identifier">priv_end_sit</span><span class="special">(</span><span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">siterator</span> <a name="idm30265-bb"></a><span class="identifier">priv_end_sit</span><span class="special">(</span><span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">siterator</span> <a name="idm30270-bb"></a><span class="identifier">priv_bucket_lbegin</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> n<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">siterator</span> <a name="idm30274-bb"></a><span class="identifier">priv_bucket_lbbegin</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> n<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">siterator</span> <a name="idm30278-bb"></a><span class="identifier">priv_bucket_lend</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> n<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a name="idm30282-bb"></a><span class="identifier">priv_bucket_size</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> n<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">bool</span> <a name="idm30286-bb"></a><span class="identifier">priv_bucket_empty</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> n<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">bool</span> <a name="idm30290-bb"></a><span class="identifier">priv_bucket_empty</span><span class="special">(</span><span class="identifier">bucket_ptr</span> p<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodeDisposer<span class="special">,</span> <span class="keyword">bool</span> OptimizeMultikey<span class="special">></span> + <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a name="idm30294-bb"></a><span class="identifier">priv_erase_node_range</span><span class="special">(</span><span class="identifier">siterator</span> <span class="keyword">const</span> <span class="special">&</span> before_first_it<span class="special">,</span> + <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="keyword">const</span> first_bucket<span class="special">,</span> + <span class="identifier">siterator</span> <span class="keyword">const</span> <span class="special">&</span> last_it<span class="special">,</span> + <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="keyword">const</span> last_bucket<span class="special">,</span> + <span class="identifier">NodeDisposer</span> node_disposer<span class="special">,</span> + <span class="emphasis"><em><span class="identifier">unspecified</span></em></span> optimize_multikey_tag<span class="special">)</span><span class="special">;</span></pre></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">typeof_node_disposer</span><span class="special"><</span> <span class="identifier">Disposer</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> + <a name="idm30313-bb"></a><span class="identifier">make_node_disposer</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">Disposer</span> <span class="special">&</span> disposer<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">node</span> <span class="special">&</span> <a name="idm30319-bb"></a><span class="identifier">priv_value_to_node</span><span class="special">(</span><span class="identifier">reference</span> v<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">const</span> <span class="identifier">node</span> <span class="special">&</span> <a name="idm30323-bb"></a><span class="identifier">priv_value_to_node</span><span class="special">(</span><span class="identifier">const_reference</span> v<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">node_ptr</span> <a name="idm30327-bb"></a><span class="identifier">priv_value_to_node_ptr</span><span class="special">(</span><span class="identifier">reference</span> v<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_node_ptr</span> <a name="idm30331-bb"></a><span class="identifier">priv_value_to_node_ptr</span><span class="special">(</span><span class="identifier">const_reference</span> v<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">reference</span> <a name="idm30335-bb"></a><span class="identifier">priv_value_from_siterator</span><span class="special">(</span><span class="identifier">siterator</span> s<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_reference</span> <a name="idm30339-bb"></a><span class="identifier">priv_value_from_siterator</span><span class="special">(</span><span class="identifier">siterator</span> s<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">void</span> <a name="idm30343-bb"></a><span class="identifier">priv_clear_buckets</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">bucket_ptr</span> buckets_ptr<span class="special">,</span> + <span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> bucket_cnt<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a name="idm30349-bb"></a><span class="identifier">priv_stored_or_compute_hash</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">value_type</span> <span class="special">&</span> v<span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm30356-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm30358-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm30360-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm30362-bb"></a><span class="identifier">build_iterator</span><span class="special">(</span><span class="identifier">siterator</span> s<span class="special">,</span> <span class="identifier">bucket_ptr</span> p<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm30368-bb"></a><span class="identifier">build_iterator</span><span class="special">(</span><span class="identifier">siterator</span> s<span class="special">,</span> <span class="identifier">bucket_ptr</span> p<span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm30377-bb"></a><span class="identifier">build_iterator</span><span class="special">(</span><span class="identifier">siterator</span> s<span class="special">,</span> <span class="identifier">bucket_ptr</span><span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span></pre>linear buckets </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm30387-bb"></a><span class="identifier">build_const_iterator</span><span class="special">(</span><span class="identifier">siterator</span> s<span class="special">,</span> <span class="identifier">bucket_ptr</span> p<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_iterator</span> +<a name="idm30393-bb"></a><span class="identifier">build_const_iterator</span><span class="special">(</span><span class="identifier">siterator</span> s<span class="special">,</span> <span class="identifier">bucket_ptr</span> p<span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">const_iterator</span> +<a name="idm30402-bb"></a><span class="identifier">build_const_iterator</span><span class="special">(</span><span class="identifier">siterator</span> s<span class="special">,</span> <span class="identifier">bucket_ptr</span><span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>linear buckets </li> +</ol></div> +</div> +<div class="refsect2"> +<a name="id-1.3.18.42.14.6.4.4"></a><h3> +<a name="idm30420-bb"></a><code class="computeroutput">bucket_plus_vtraits</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">siterator</span> <a name="idm30421-bb"></a><span class="identifier">priv_bucket_lbegin</span><span class="special">(</span><span class="identifier">bucket_type</span> <span class="special">&</span> b<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">siterator</span> <a name="idm30425-bb"></a><span class="identifier">priv_bucket_lbbegin</span><span class="special">(</span><span class="identifier">bucket_type</span> <span class="special">&</span> b<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">siterator</span> <a name="idm30429-bb"></a><span class="identifier">priv_bucket_lend</span><span class="special">(</span><span class="identifier">bucket_type</span> <span class="special">&</span> b<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a name="idm30433-bb"></a><span class="identifier">priv_bucket_size</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">bucket_type</span> <span class="special">&</span> b<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">bool</span> <a name="idm30437-bb"></a><span class="identifier">priv_bucket_empty</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">bucket_type</span> <span class="special">&</span> b<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodeDisposer<span class="special">></span> + <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> + <a name="idm30441-bb"></a><span class="identifier">priv_erase_from_single_bucket</span><span class="special">(</span><span class="identifier">bucket_type</span> <span class="special">&</span> b<span class="special">,</span> <span class="identifier">siterator</span> sbefore_first<span class="special">,</span> + <span class="identifier">siterator</span> slast<span class="special">,</span> <span class="identifier">NodeDisposer</span> node_disposer<span class="special">,</span> + <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodeDisposer<span class="special">></span> + <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> + <a name="idm30456-bb"></a><span class="identifier">priv_erase_from_single_bucket</span><span class="special">(</span><span class="identifier">bucket_type</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">siterator</span> sbefore_first<span class="special">,</span> + <span class="identifier">siterator</span> slast<span class="special">,</span> <span class="identifier">NodeDisposer</span> node_disposer<span class="special">,</span> + <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodeDisposer<span class="special">></span> + <span class="keyword">static</span> <span class="keyword">void</span> <a name="idm30471-bb"></a><span class="identifier">priv_erase_node</span><span class="special">(</span><span class="identifier">bucket_type</span> <span class="special">&</span> b<span class="special">,</span> <span class="identifier">siterator</span> i<span class="special">,</span> + <span class="identifier">NodeDisposer</span> node_disposer<span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodeDisposer<span class="special">></span> + <span class="keyword">static</span> <span class="keyword">void</span> <a name="idm30484-bb"></a><span class="identifier">priv_erase_node</span><span class="special">(</span><span class="identifier">bucket_type</span> <span class="special">&</span> b<span class="special">,</span> <span class="identifier">siterator</span> i<span class="special">,</span> + <span class="identifier">NodeDisposer</span> node_disposer<span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span></pre>optimize multikey </li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">siterator</span> <a name="idm30498-bb"></a><span class="identifier">priv_get_last</span><span class="special">(</span><span class="identifier">bucket_type</span> <span class="special">&</span> b<span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">siterator</span> <a name="idm30505-bb"></a><span class="identifier">priv_get_last</span><span class="special">(</span><span class="identifier">bucket_type</span> <span class="special">&</span> b<span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodeDisposer<span class="special">></span> + <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> + <a name="idm30512-bb"></a><span class="identifier">priv_erase_whole_bucket</span><span class="special">(</span><span class="identifier">bucket_type</span> <span class="special">&</span> b<span class="special">,</span> <span class="identifier">NodeDisposer</span> node_disposer<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">siterator</span> <a name="idm30520-bb"></a><span class="identifier">priv_get_previous</span><span class="special">(</span><span class="identifier">bucket_type</span> <span class="special">&</span> b<span class="special">,</span> <span class="identifier">siterator</span> i<span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">siterator</span> <a name="idm30529-bb"></a><span class="identifier">priv_get_previous</span><span class="special">(</span><span class="identifier">bucket_type</span> <span class="special">&</span> b<span class="special">,</span> <span class="identifier">siterator</span> i<span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">bucket_ptr</span> <a name="idm30538-bb"></a><span class="identifier">to_ptr</span><span class="special">(</span><span class="identifier">bucket_type</span> <span class="special">&</span> b<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">siterator</span> <a name="idm30542-bb"></a><span class="identifier">sit_bbegin</span><span class="special">(</span><span class="identifier">bucket_type</span> <span class="special">&</span> b<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">siterator</span> <a name="idm30546-bb"></a><span class="identifier">sit_begin</span><span class="special">(</span><span class="identifier">bucket_type</span> <span class="special">&</span> b<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">siterator</span> <a name="idm30550-bb"></a><span class="identifier">sit_end</span><span class="special">(</span><span class="identifier">bucket_type</span> <span class="special">&</span> b<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a name="idm30554-bb"></a><span class="identifier">priv_stored_hash</span><span class="special">(</span><span class="identifier">siterator</span> s<span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a name="idm30561-bb"></a><span class="identifier">priv_stored_hash</span><span class="special">(</span><span class="identifier">siterator</span><span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm30568-bb"></a><span class="identifier">priv_init_buckets</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">bucket_ptr</span> buckets_ptr<span class="special">,</span> + <span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> bucket_cnt<span class="special">)</span><span class="special">;</span></pre></li> +</ol></div> +</div> +</div> +</div> +<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> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="bucket_hash_t.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="bucket_plus_vtraits/data_type.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/doc/html/boost/intrusive/bucket_plus_vtraits/data_type.html b/doc/html/boost/intrusive/bucket_plus_vtraits/data_type.html new file mode 100644 index 0000000000..b0d01ea987 --- /dev/null +++ b/doc/html/boost/intrusive/bucket_plus_vtraits/data_type.html @@ -0,0 +1,67 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>Struct data_type</title> +<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css"> +<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="../bucket_plus_vtraits.html#id-1.3.18.42.14.6.4" title="Description"> +<link rel="prev" href="../bucket_plus_vtraits.html" title="Struct template bucket_plus_vtraits"> +<link rel="next" href="typeof_node_disposer.html" title="Struct template typeof_node_disposer"> +<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> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td> +<td align="center"><a href="../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../bucket_plus_vtraits.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../bucket_plus_vtraits.html#id-1.3.18.42.14.6.4"><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="typeof_node_disposer.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.intrusive.bucket_plus_vtraits.data_type"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Struct data_type</span></h2> +<p>boost::intrusive::bucket_plus_vtraits::data_type</p> +</div> +<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">struct</span> <a class="link" href="data_type.html" title="Struct data_type">data_type</a> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">ValueTraits</span>, <span class="keyword">public</span> <span class="identifier">BucketTraits</span> <span class="special">{</span> + <span class="comment">// <a class="link" href="data_type.html#boost.intrusive.bucket_plus_vtraits.data_typeconstruct-copy-destruct">construct/copy/destruct</a></span> + <a class="link" href="data_type.html#idm30137-bb"><span class="identifier">data_type</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ValueTraits</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">BucketTraits</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="data_type.html#idm30142-bb"><span class="identifier">data_type</span></a><span class="special">(</span><span class="identifier">data_type</span> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="id-1.3.18.42.14.6.4.5.4"></a><h2>Description</h2> +<div class="refsect2"> +<a name="id-1.3.18.42.14.6.4.5.4.2"></a><h3> +<a name="boost.intrusive.bucket_plus_vtraits.data_typeconstruct-copy-destruct"></a><code class="computeroutput">data_type</code> + public + construct/copy/destruct</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"><pre class="literallayout"><a name="idm30137-bb"></a><span class="identifier">data_type</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ValueTraits</span> <span class="special">&</span> val_traits<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">BucketTraits</span> <span class="special">&</span> b_traits<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><a name="idm30142-bb"></a><span class="identifier">data_type</span><span class="special">(</span><span class="identifier">data_type</span> <span class="special">&&</span> other<span class="special">)</span><span class="special">;</span></pre></li> +</ol></div> +</div> +</div> +</div> +<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> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../bucket_plus_vtraits.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../bucket_plus_vtraits.html#id-1.3.18.42.14.6.4"><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="typeof_node_disposer.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/doc/html/boost/intrusive/bucket_plus_vtraits/typeof_node_disposer.html b/doc/html/boost/intrusive/bucket_plus_vtraits/typeof_node_disposer.html new file mode 100644 index 0000000000..c737103853 --- /dev/null +++ b/doc/html/boost/intrusive/bucket_plus_vtraits/typeof_node_disposer.html @@ -0,0 +1,53 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>Struct template typeof_node_disposer</title> +<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css"> +<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="../bucket_plus_vtraits.html#id-1.3.18.42.14.6.4" title="Description"> +<link rel="prev" href="data_type.html" title="Struct data_type"> +<link rel="next" href="../bucket_traits_impl.html" title="Struct template bucket_traits_impl"> +<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> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td> +<td align="center"><a href="../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="data_type.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../bucket_plus_vtraits.html#id-1.3.18.42.14.6.4"><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="../bucket_traits_impl.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.intrusive.bucket_plus_vtraits.typeof_node_disposer"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Struct template typeof_node_disposer</span></h2> +<p>boost::intrusive::bucket_plus_vtraits::typeof_node_disposer</p> +</div> +<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> Disposer<span class="special">></span> +<span class="keyword">struct</span> <a class="link" href="typeof_node_disposer.html" title="Struct template typeof_node_disposer">typeof_node_disposer</a> <span class="special">{</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span> <a name="boost.intrusive.bucket_plus_vtraits.typeof_node_disposer.type"></a><span class="identifier">type</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +</div> +<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> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="data_type.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../bucket_plus_vtraits.html#id-1.3.18.42.14.6.4"><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="../bucket_traits_impl.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/doc/html/boost/intrusive/bucket_traits.html b/doc/html/boost/intrusive/bucket_traits.html index 8b3e15a1fd..705bfb638d 100644 --- a/doc/html/boost/intrusive/bucket_traits.html +++ b/doc/html/boost/intrusive/bucket_traits.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.options_hpp" title="Header <boost/intrusive/options.hpp>"> <link rel="prev" href="base_hook.html" title="Struct template base_hook"> <link rel="next" href="cache_begin.html" title="Struct template cache_begin"> +<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> @@ -29,25 +30,22 @@ <h2><span class="refentrytitle">Struct template bucket_traits</span></h2> <p>boost::intrusive::bucket_traits</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.options_hpp" title="Header <boost/intrusive/options.hpp>">boost/intrusive/options.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.options_hpp" title="Header <boost/intrusive/options.hpp>">boost/intrusive/options.hpp</a>> </span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> BucketTraits<span class="special">></span> <span class="keyword">struct</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></pre></div> <div class="refsect1"> -<a name="id-1.3.20.42.21.4.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.21.4.4"></a><h2>Description</h2> <p>This option setter specifies the bucket traits class for unordered associative containers. When this option is specified, instead of using the default bucket traits, a user defined holder will be defined </p> </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="base_hook.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.options_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="cache_begin.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/bucket_traits_impl.html b/doc/html/boost/intrusive/bucket_traits_impl.html new file mode 100644 index 0000000000..83fb538980 --- /dev/null +++ b/doc/html/boost/intrusive/bucket_traits_impl.html @@ -0,0 +1,84 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>Struct template bucket_traits_impl</title> +<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css"> +<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="bucket_plus_vtraits/typeof_node_disposer.html" title="Struct template typeof_node_disposer"> +<link rel="next" href="default_hashtable_idm30604.html" title="Struct default_hashtable_hook_applier"> +<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> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td> +<td align="center"><a href="../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="bucket_plus_vtraits/typeof_node_disposer.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="default_hashtable_idm30604.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.intrusive.bucket_traits_impl"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Struct template bucket_traits_impl</span></h2> +<p>boost::intrusive::bucket_traits_impl</p> +</div> +<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> BucketPtr<span class="special">,</span> <span class="keyword">typename</span> SizeType<span class="special">></span> +<span class="keyword">struct</span> <a class="link" href="bucket_traits_impl.html" title="Struct template bucket_traits_impl">bucket_traits_impl</a> <span class="special">{</span> + <span class="comment">// <a class="link" href="bucket_traits_impl.html#boost.intrusive.bucket_traits_implconstruct-copy-destruct">construct/copy/destruct</a></span> + <a class="link" href="bucket_traits_impl.html#idm30584-bb"><span class="identifier">bucket_traits_impl</span></a><span class="special">(</span><span class="identifier">bucket_ptr</span><span class="special">,</span> <a class="link" href="size_type.html" title="Struct template size_type">size_type</a><span class="special">)</span><span class="special">;</span> + <a class="link" href="bucket_traits_impl.html#idm30590-bb"><span class="identifier">bucket_traits_impl</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">bucket_traits_impl</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="bucket_traits_impl.html#idm30593-bb"><span class="identifier">bucket_traits_impl</span></a><span class="special">(</span><span class="identifier">bucket_traits_impl</span> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">bucket_traits_impl</span> <span class="special">&</span> <a class="link" href="bucket_traits_impl.html#idm30596-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><span class="identifier">bucket_traits_impl</span> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">bucket_traits_impl</span> <span class="special">&</span> <a class="link" href="bucket_traits_impl.html#idm30600-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><span class="identifier">BOOST_COPY_ASSIGN_REF</span><span class="special">(</span><span class="identifier">bucket_traits_impl</span><span class="special">)</span><span class="special">)</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="bucket_traits_impl.html#idm30578-bb">public member functions</a></span> + <span class="identifier">bucket_ptr</span> <a class="link" href="bucket_traits_impl.html#idm30579-bb"><span class="identifier">bucket_begin</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <a class="link" href="size_type.html" title="Struct template size_type">size_type</a> <a class="link" href="bucket_traits_impl.html#idm30581-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="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="id-1.3.18.42.14.7.4"></a><h2>Description</h2> +<div class="refsect2"> +<a name="id-1.3.18.42.14.7.4.2"></a><h3> +<a name="boost.intrusive.bucket_traits_implconstruct-copy-destruct"></a><code class="computeroutput">bucket_traits_impl</code> + public + construct/copy/destruct</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"><pre class="literallayout"><a name="idm30584-bb"></a><span class="identifier">bucket_traits_impl</span><span class="special">(</span><span class="identifier">bucket_ptr</span> buckets<span class="special">,</span> <a class="link" href="size_type.html" title="Struct template size_type">size_type</a> len<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><a name="idm30590-bb"></a><span class="identifier">bucket_traits_impl</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">bucket_traits_impl</span> <span class="special">&</span> x<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><a name="idm30593-bb"></a><span class="identifier">bucket_traits_impl</span><span class="special">(</span><span class="identifier">bucket_traits_impl</span> <span class="special">&&</span> x<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">bucket_traits_impl</span> <span class="special">&</span> <a name="idm30596-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><span class="identifier">bucket_traits_impl</span> <span class="special">&&</span> x<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">bucket_traits_impl</span> <span class="special">&</span> <a name="idm30600-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><span class="identifier">BOOST_COPY_ASSIGN_REF</span><span class="special">(</span><span class="identifier">bucket_traits_impl</span><span class="special">)</span> x<span class="special">)</span><span class="special">;</span></pre></li> +</ol></div> +</div> +<div class="refsect2"> +<a name="id-1.3.18.42.14.7.4.3"></a><h3> +<a name="idm30578-bb"></a><code class="computeroutput">bucket_traits_impl</code> public member functions</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"><pre class="literallayout"><span class="identifier">bucket_ptr</span> <a name="idm30579-bb"></a><span class="identifier">bucket_begin</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><a class="link" href="size_type.html" title="Struct template size_type">size_type</a> <a name="idm30581-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></li> +</ol></div> +</div> +</div> +</div> +<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> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="bucket_plus_vtraits/typeof_node_disposer.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="default_hashtable_idm30604.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/doc/html/boost/intrusive/cache_begin.html b/doc/html/boost/intrusive/cache_begin.html index 7b2969dd2a..bf953b2f8a 100644 --- a/doc/html/boost/intrusive/cache_begin.html +++ b/doc/html/boost/intrusive/cache_begin.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.options_hpp" title="Header <boost/intrusive/options.hpp>"> <link rel="prev" href="bucket_traits.html" title="Struct template bucket_traits"> <link rel="next" href="cache_last.html" title="Struct template cache_last"> +<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> @@ -29,25 +30,22 @@ <h2><span class="refentrytitle">Struct template cache_begin</span></h2> <p>boost::intrusive::cache_begin</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.options_hpp" title="Header <boost/intrusive/options.hpp>">boost/intrusive/options.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.options_hpp" title="Header <boost/intrusive/options.hpp>">boost/intrusive/options.hpp</a>> </span><span class="keyword">template</span><span class="special"><</span><span class="keyword">bool</span> Enabled<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="cache_begin.html" title="Struct template cache_begin">cache_begin</a> <span class="special">{</span> <span class="special">}</span><span class="special">;</span></pre></div> <div class="refsect1"> -<a name="id-1.3.20.42.21.5.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.21.5.4"></a><h2>Description</h2> <p>This option setter specifies if the container will cache a pointer to the first non-empty bucket so that begin() is always constant-time. This is specially helpful when we can have containers with a few elements but with big bucket arrays (that is, hashtables with low load factors). </p> </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="bucket_traits.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.options_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="cache_last.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/cache_last.html b/doc/html/boost/intrusive/cache_last.html index 0df1faaf6f..9dee8f7a13 100644 --- a/doc/html/boost/intrusive/cache_last.html +++ b/doc/html/boost/intrusive/cache_last.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.options_hpp" title="Header <boost/intrusive/options.hpp>"> <link rel="prev" href="cache_begin.html" title="Struct template cache_begin"> <link rel="next" href="compare.html" title="Struct template compare"> +<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> @@ -29,25 +30,22 @@ <h2><span class="refentrytitle">Struct template cache_last</span></h2> <p>boost::intrusive::cache_last</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.options_hpp" title="Header <boost/intrusive/options.hpp>">boost/intrusive/options.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.options_hpp" title="Header <boost/intrusive/options.hpp>">boost/intrusive/options.hpp</a>> </span><span class="keyword">template</span><span class="special"><</span><span class="keyword">bool</span> Enabled<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="cache_last.html" title="Struct template cache_last">cache_last</a> <span class="special">{</span> <span class="special">}</span><span class="special">;</span></pre></div> <div class="refsect1"> -<a name="id-1.3.20.42.21.6.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.21.6.4"></a><h2>Description</h2> <p>If true, slist also stores a pointer to the last element of the singly linked list. This allows O(1) swap and splice_after(iterator, slist &) for circular slists and makes possible new functions like push_back(reference) and back(). </p> </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="cache_begin.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.options_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="compare.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/circular_list_algorithms.html b/doc/html/boost/intrusive/circular_list_algorithms.html index de2b36a0f8..78b32de4c4 100644 --- a/doc/html/boost/intrusive/circular_list_algorithms.html +++ b/doc/html/boost/intrusive/circular_list_algorithms.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.circular_list_algorithms_hpp" title="Header <boost/intrusive/circular_list_algorithms.hpp>"> <link rel="prev" href="bstree_algorithms.html" title="Class template bstree_algorithms"> <link rel="next" href="circular_list_algorithms/stable_partition_info.html" title="Struct stable_partition_info"> +<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> @@ -29,8 +30,8 @@ <h2><span class="refentrytitle">Class template circular_list_algorithms</span></h2> <p>boost::intrusive::circular_list_algorithms</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.circular_list_algorithms_hpp" title="Header <boost/intrusive/circular_list_algorithms.hpp>">boost/intrusive/circular_list_algorithms.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.circular_list_algorithms_hpp" title="Header <boost/intrusive/circular_list_algorithms.hpp>">boost/intrusive/circular_list_algorithms.hpp</a>> </span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodeTraits<span class="special">></span> <span class="keyword">class</span> <a class="link" href="circular_list_algorithms.html" title="Class template circular_list_algorithms">circular_list_algorithms</a> <span class="special">{</span> @@ -51,34 +52,34 @@ <span class="identifier">node_ptr</span> <span class="identifier">beg_2st_partition</span><span class="special">;</span> <span class="special">}</span><span class="special">;</span> - <span class="comment">// <a class="link" href="circular_list_algorithms.html#idm45971715764896-bb">public static functions</a></span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="circular_list_algorithms.html#idm45971715764336-bb"><span class="identifier">init</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">bool</span> <a class="link" href="circular_list_algorithms.html#idm45971715759520-bb"><span class="identifier">inited</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="circular_list_algorithms.html#idm45971715754688-bb"><span class="identifier">init_header</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">bool</span> <a class="link" href="circular_list_algorithms.html#idm45971715749360-bb"><span class="identifier">unique</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a class="link" href="circular_list_algorithms.html#idm45971715743344-bb"><span class="identifier">count</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="circular_list_algorithms.html#idm45971715737616-bb"><span class="identifier">unlink</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="circular_list_algorithms.html#idm45971715731936-bb"><span class="identifier">unlink</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="circular_list_algorithms.html#idm45971715725568-bb"><span class="identifier">link_before</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="circular_list_algorithms.html#idm45971715719216-bb"><span class="identifier">link_after</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="circular_list_algorithms.html#idm45971715712864-bb"><span class="identifier">swap_nodes</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="circular_list_algorithms.html#idm45971715706320-bb"><span class="identifier">transfer</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="circular_list_algorithms.html#idm45971715699248-bb"><span class="identifier">transfer</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="circular_list_algorithms.html#idm45971715692752-bb"><span class="identifier">reverse</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="circular_list_algorithms.html#idm45971715687952-bb"><span class="identifier">move_backwards</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="circular_list_algorithms.html#idm45971715682432-bb"><span class="identifier">move_forward</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> - <a class="link" href="circular_list_algorithms.html#idm45971715676912-bb"><span class="identifier">distance</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="comment">// <a class="link" href="circular_list_algorithms.html#idm29196-bb">public static functions</a></span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="circular_list_algorithms.html#idm29197-bb"><span class="identifier">init</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">bool</span> <a class="link" href="../container/basic_string.html#idm29208-bb"><span class="identifier">inited</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="circular_list_algorithms.html#idm29219-bb"><span class="identifier">init_header</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">bool</span> <a class="link" href="circular_list_algorithms.html#idm29231-bb"><span class="identifier">is_empty</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">bool</span> <a class="link" href="circular_list_algorithms.html#idm29242-bb"><span class="identifier">unique</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a class="link" href="circular_list_algorithms.html#idm29256-bb"><span class="identifier">count</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="circular_list_algorithms.html#idm29269-bb"><span class="identifier">unlink</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="circular_list_algorithms.html#idm29282-bb"><span class="identifier">unlink</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="../interprocess/scoped_ptr.html#idm29297-bb"><span class="identifier">link_before</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="circular_list_algorithms.html#idm29312-bb"><span class="identifier">link_after</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="circular_list_algorithms.html#idm29327-bb"><span class="identifier">swap_nodes</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="circular_list_algorithms.html#idm29342-bb"><span class="identifier">transfer</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="circular_list_algorithms.html#idm29358-bb"><span class="identifier">transfer</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="circular_list_algorithms.html#idm29373-bb"><span class="identifier">reverse</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="circular_list_algorithms.html#idm29384-bb"><span class="identifier">move_backwards</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="../container/basic_string.html#idm29397-bb"><span class="identifier">move_forward</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a class="link" href="circular_list_algorithms.html#idm29410-bb"><span class="identifier">distance</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">,</span> <span class="identifier">const_node_ptr</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> Pred<span class="special">></span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="circular_list_algorithms.html#idm45971715670576-bb"><span class="identifier">stable_partition</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">Pred</span><span class="special">,</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="circular_list_algorithms.html#idm29425-bb"><span class="identifier">stable_partition</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">Pred</span><span class="special">,</span> <span class="identifier">stable_partition_info</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> - <span class="comment">// <a class="link" href="circular_list_algorithms.html#idm45971715665696-bb">private static functions</a></span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="circular_list_algorithms.html#idm45971715665120-bb"><span class="identifier">swap_prev</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="circular_list_algorithms.html#idm45971715662352-bb"><span class="identifier">swap_next</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="comment">// <a class="link" href="circular_list_algorithms.html#idm29437-bb">private static functions</a></span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="circular_list_algorithms.html#idm29438-bb"><span class="identifier">swap_prev</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="../container/basic_string.html#idm29444-bb"><span class="identifier">swap_next</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</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.11.3.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.11.3.4"></a><h2>Description</h2> <p><a class="link" href="circular_list_algorithms.html" title="Class template circular_list_algorithms">circular_list_algorithms</a> provides basic algorithms to manipulate nodes forming a circular doubly linked list. An empty circular list is formed by a node whose pointers point to itself.</p> <p><a class="link" href="circular_list_algorithms.html" title="Class template circular_list_algorithms">circular_list_algorithms</a> is configured with a NodeTraits class, which encapsulates the information about the node to be manipulated. NodeTraits must support the following interface:</p> <p><span class="bold"><strong>Typedefs</strong></span>:</p> @@ -91,138 +92,140 @@ <p><code class="computeroutput">static node_ptr get_next(const_node_ptr n);</code></p> <p><code class="computeroutput">static void set_next(node_ptr n, node_ptr next);</code> </p> <div class="refsect2"> -<a name="id-1.3.20.42.11.3.4.13"></a><h3> -<a name="idm45971715764896-bb"></a><code class="computeroutput">circular_list_algorithms</code> public static functions</h3> +<a name="id-1.3.18.42.11.3.4.13"></a><h3> +<a name="idm29196-bb"></a><code class="computeroutput">circular_list_algorithms</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="keyword">void</span> <a name="idm45971715764336-bb"></a><span class="identifier">init</span><span class="special">(</span><span class="identifier">node_ptr</span> this_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm29197-bb"></a><span class="identifier">init</span><span class="special">(</span><span class="identifier">node_ptr</span> this_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Constructs an non-used list element, so that inited(this_node) == true</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="keyword">static</span> <span class="keyword">bool</span> <a name="idm45971715759520-bb"></a><span class="identifier">inited</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span> this_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">bool</span> <a name="idm29208-bb"></a><span class="identifier">inited</span><span class="special">(</span><span class="identifier">const_node_ptr</span> this_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Returns true is "this_node" is in a non-used state as if it was initialized by the "init" 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="keyword">static</span> <span class="keyword">void</span> <a name="idm45971715754688-bb"></a><span class="identifier">init_header</span><span class="special">(</span><span class="identifier">node_ptr</span> this_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm29219-bb"></a><span class="identifier">init_header</span><span class="special">(</span><span class="identifier">node_ptr</span> this_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Constructs an empty list, making this_node the only node of the circular list: <code class="computeroutput">NodeTraits::get_next(this_node) == NodeTraits::get_previous(this_node) == this_node</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="keyword">static</span> <span class="keyword">bool</span> <a name="idm45971715749360-bb"></a><span class="identifier">unique</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span> this_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">bool</span> <a name="idm29231-bb"></a><span class="identifier">is_empty</span><span class="special">(</span><span class="identifier">const_node_ptr</span> this_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<p><span class="bold"><strong>Effects</strong></span>: Returns true if this_node_points to an empty list.</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="keyword">static</span> <span class="keyword">bool</span> <a name="idm29242-bb"></a><span class="identifier">unique</span><span class="special">(</span><span class="identifier">const_node_ptr</span> this_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: this_node must be in a circular list or be an empty circular list.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns true is "this_node" is the only node of a circular list: <code class="computeroutput">return NodeTraits::get_next(this_node) == this_node</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="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a name="idm45971715743344-bb"></a><span class="identifier">count</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span> this_node<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">std</span><span class="special">::</span><span class="identifier">size_t</span> <a name="idm29256-bb"></a><span class="identifier">count</span><span class="special">(</span><span class="identifier">const_node_ptr</span> this_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: this_node must be in a circular list or be an empty circular list.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns the number of nodes in a circular list. If the circular list is empty, returns 1.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear</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">node_ptr</span> <a name="idm45971715737616-bb"></a><span class="identifier">unlink</span><span class="special">(</span><span class="identifier">node_ptr</span> this_node<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">node_ptr</span> <a name="idm29269-bb"></a><span class="identifier">unlink</span><span class="special">(</span><span class="identifier">node_ptr</span> this_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: this_node must be in a circular list or be an empty circular list.</p> <p><span class="bold"><strong>Effects</strong></span>: Unlinks the node from the circular list.</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="keyword">static</span> <span class="keyword">void</span> <a name="idm45971715731936-bb"></a><span class="identifier">unlink</span><span class="special">(</span><span class="identifier">node_ptr</span> b<span class="special">,</span> <span class="identifier">node_ptr</span> e<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm29282-bb"></a><span class="identifier">unlink</span><span class="special">(</span><span class="identifier">node_ptr</span> b<span class="special">,</span> <span class="identifier">node_ptr</span> e<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: b and e must be nodes of the same circular list or an empty range.</p> <p><span class="bold"><strong>Effects</strong></span>: Unlinks the node [b, e) from the circular list.</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="keyword">static</span> <span class="keyword">void</span> <a name="idm45971715725568-bb"></a><span class="identifier">link_before</span><span class="special">(</span><span class="identifier">node_ptr</span> nxt_node<span class="special">,</span> <span class="identifier">node_ptr</span> this_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm29297-bb"></a><span class="identifier">link_before</span><span class="special">(</span><span class="identifier">node_ptr</span> nxt_node<span class="special">,</span> <span class="identifier">node_ptr</span> this_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: nxt_node must be a node of a circular list.</p> <p><span class="bold"><strong>Effects</strong></span>: Links this_node before nxt_node in the circular list.</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="keyword">static</span> <span class="keyword">void</span> <a name="idm45971715719216-bb"></a><span class="identifier">link_after</span><span class="special">(</span><span class="identifier">node_ptr</span> prev_node<span class="special">,</span> <span class="identifier">node_ptr</span> this_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm29312-bb"></a><span class="identifier">link_after</span><span class="special">(</span><span class="identifier">node_ptr</span> prev_node<span class="special">,</span> <span class="identifier">node_ptr</span> this_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: prev_node must be a node of a circular list.</p> <p><span class="bold"><strong>Effects</strong></span>: Links this_node after prev_node in the circular list.</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="keyword">static</span> <span class="keyword">void</span> <a name="idm45971715712864-bb"></a><span class="identifier">swap_nodes</span><span class="special">(</span><span class="identifier">node_ptr</span> this_node<span class="special">,</span> <span class="identifier">node_ptr</span> other_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm29327-bb"></a><span class="identifier">swap_nodes</span><span class="special">(</span><span class="identifier">node_ptr</span> this_node<span class="special">,</span> <span class="identifier">node_ptr</span> other_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: this_node and other_node must be nodes inserted in circular lists or be empty circular lists.</p> <p><span class="bold"><strong>Effects</strong></span>: Swaps the position of the nodes: this_node is inserted in other_nodes position in the second circular list and the other_node is inserted in this_node's position in the first circular list.</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="keyword">static</span> <span class="keyword">void</span> <a name="idm45971715706320-bb"></a><span class="identifier">transfer</span><span class="special">(</span><span class="identifier">node_ptr</span> p<span class="special">,</span> <span class="identifier">node_ptr</span> b<span class="special">,</span> <span class="identifier">node_ptr</span> e<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm29342-bb"></a><span class="identifier">transfer</span><span class="special">(</span><span class="identifier">node_ptr</span> p<span class="special">,</span> <span class="identifier">node_ptr</span> b<span class="special">,</span> <span class="identifier">node_ptr</span> e<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: b and e must be nodes of the same circular list or an empty range. and p must be a node of a different circular list or may not be an iterator in <span class="bold"><strong>Effects</strong></span>: Removes the nodes from [b, e) range from their circular list and inserts them before p in p's circular list.</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="keyword">static</span> <span class="keyword">void</span> <a name="idm45971715699248-bb"></a><span class="identifier">transfer</span><span class="special">(</span><span class="identifier">node_ptr</span> p<span class="special">,</span> <span class="identifier">node_ptr</span> i<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm29358-bb"></a><span class="identifier">transfer</span><span class="special">(</span><span class="identifier">node_ptr</span> p<span class="special">,</span> <span class="identifier">node_ptr</span> i<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: i must a node of a circular list and p must be a node of a different circular list.</p> <p><span class="bold"><strong>Effects</strong></span>: Removes the node i from its circular list and inserts it before p in p's circular list. If p == i or p == NodeTraits::get_next(i), this function is a null operation.</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="keyword">static</span> <span class="keyword">void</span> <a name="idm45971715692752-bb"></a><span class="identifier">reverse</span><span class="special">(</span><span class="identifier">node_ptr</span> p<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm29373-bb"></a><span class="identifier">reverse</span><span class="special">(</span><span class="identifier">node_ptr</span> p<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Reverses the order of elements in the list.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: This function is linear time. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971715687952-bb"></a><span class="identifier">move_backwards</span><span class="special">(</span><span class="identifier">node_ptr</span> p<span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</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="keyword">void</span> <a name="idm29384-bb"></a><span class="identifier">move_backwards</span><span class="special">(</span><span class="identifier">node_ptr</span> p<span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> n<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Moves the node p n positions towards the end of the list.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to the number of moved positions. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971715682432-bb"></a><span class="identifier">move_forward</span><span class="special">(</span><span class="identifier">node_ptr</span> p<span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</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="keyword">void</span> <a name="idm29397-bb"></a><span class="identifier">move_forward</span><span class="special">(</span><span class="identifier">node_ptr</span> p<span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> n<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Moves the node p n positions towards the beginning of the list.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to the number of moved positions. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> -<a name="idm45971715676912-bb"></a><span class="identifier">distance</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span> f<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span> l<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">std</span><span class="special">::</span><span class="identifier">size_t</span> <a name="idm29410-bb"></a><span class="identifier">distance</span><span class="special">(</span><span class="identifier">const_node_ptr</span> f<span class="special">,</span> <span class="identifier">const_node_ptr</span> l<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: f and l must be in a circular list.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns the number of nodes in the range [f, l).</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Pred<span class="special">></span> - <span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971715670576-bb"></a><span class="identifier">stable_partition</span><span class="special">(</span><span class="identifier">node_ptr</span> beg<span class="special">,</span> <span class="identifier">node_ptr</span> end<span class="special">,</span> <span class="identifier">Pred</span> pred<span class="special">,</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a name="idm29425-bb"></a><span class="identifier">stable_partition</span><span class="special">(</span><span class="identifier">node_ptr</span> beg<span class="special">,</span> <span class="identifier">node_ptr</span> end<span class="special">,</span> <span class="identifier">Pred</span> pred<span class="special">,</span> <span class="identifier">stable_partition_info</span> <span class="special">&</span> info<span class="special">)</span><span class="special">;</span></pre></li> </ol></div> </div> <div class="refsect2"> -<a name="id-1.3.20.42.11.3.4.14"></a><h3> -<a name="idm45971715665696-bb"></a><code class="computeroutput">circular_list_algorithms</code> private static functions</h3> +<a name="id-1.3.18.42.11.3.4.14"></a><h3> +<a name="idm29437-bb"></a><code class="computeroutput">circular_list_algorithms</code> private static functions</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> -<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971715665120-bb"></a><span class="identifier">swap_prev</span><span class="special">(</span><span class="identifier">node_ptr</span> this_node<span class="special">,</span> <span class="identifier">node_ptr</span> other_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> -<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971715662352-bb"></a><span class="identifier">swap_next</span><span class="special">(</span><span class="identifier">node_ptr</span> this_node<span class="special">,</span> <span class="identifier">node_ptr</span> other_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm29438-bb"></a><span class="identifier">swap_prev</span><span class="special">(</span><span class="identifier">node_ptr</span> this_node<span class="special">,</span> <span class="identifier">node_ptr</span> other_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm29444-bb"></a><span class="identifier">swap_next</span><span class="special">(</span><span class="identifier">node_ptr</span> this_node<span class="special">,</span> <span class="identifier">node_ptr</span> other_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> </ol></div> </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="bstree_algorithms.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.circular_list_algorithms_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="circular_list_algorithms/stable_partition_info.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/circular_list_algorithms/stable_partition_info.html b/doc/html/boost/intrusive/circular_list_algorithms/stable_partition_info.html index 5c518215db..507d31d608 100644 --- a/doc/html/boost/intrusive/circular_list_algorithms/stable_partition_info.html +++ b/doc/html/boost/intrusive/circular_list_algorithms/stable_partition_info.html @@ -6,9 +6,10 @@ <link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css"> <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="../circular_list_algorithms.html#id-1.3.20.42.11.3.4" title="Description"> +<link rel="up" href="../circular_list_algorithms.html#id-1.3.18.42.11.3.4" title="Description"> <link rel="prev" href="../circular_list_algorithms.html" title="Class template circular_list_algorithms"> <link rel="next" href="../circular_slist_algorithms.html" title="Class template circular_slist_algorithms"> +<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="../circular_list_algorithms.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../circular_list_algorithms.html#id-1.3.20.42.11.3.4"><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="../circular_slist_algorithms.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a> +<a accesskey="p" href="../circular_list_algorithms.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../circular_list_algorithms.html#id-1.3.18.42.11.3.4"><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="../circular_slist_algorithms.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a> </div> <div class="refentry"> <a name="boost.intrusive.circular_list_algorithms.stable_partition_info"></a><div class="titlepage"></div> @@ -29,8 +30,8 @@ <h2><span class="refentrytitle">Struct stable_partition_info</span></h2> <p>boost::intrusive::circular_list_algorithms::stable_partition_info</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.circular_list_algorithms_hpp" title="Header <boost/intrusive/circular_list_algorithms.hpp>">boost/intrusive/circular_list_algorithms.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.circular_list_algorithms_hpp" title="Header <boost/intrusive/circular_list_algorithms.hpp>">boost/intrusive/circular_list_algorithms.hpp</a>> </span> @@ -42,17 +43,14 @@ <span class="identifier">node_ptr</span> <span class="identifier">beg_2st_partition</span><span class="special">;</span> <span class="special">}</span><span class="special">;</span></pre></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="../circular_list_algorithms.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../circular_list_algorithms.html#id-1.3.20.42.11.3.4"><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="../circular_slist_algorithms.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a> +<a accesskey="p" href="../circular_list_algorithms.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../circular_list_algorithms.html#id-1.3.18.42.11.3.4"><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="../circular_slist_algorithms.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a> </div> </body> </html> diff --git a/doc/html/boost/intrusive/circular_slist_algorithms.html b/doc/html/boost/intrusive/circular_slist_algorithms.html index 1bd0ea48fe..0f7b2cde1a 100644 --- a/doc/html/boost/intrusive/circular_slist_algorithms.html +++ b/doc/html/boost/intrusive/circular_slist_algorithms.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.circular_slist_algorithms_hpp" title="Header <boost/intrusive/circular_slist_algorithms.hpp>"> <link rel="prev" href="circular_list_algorithms/stable_partition_info.html" title="Struct stable_partition_info"> <link rel="next" href="derivation_value_traits.html" title="Struct template derivation_value_traits"> +<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> @@ -29,8 +30,8 @@ <h2><span class="refentrytitle">Class template circular_slist_algorithms</span></h2> <p>boost::intrusive::circular_slist_algorithms</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.circular_slist_algorithms_hpp" title="Header <boost/intrusive/circular_slist_algorithms.hpp>">boost/intrusive/circular_slist_algorithms.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.circular_slist_algorithms_hpp" title="Header <boost/intrusive/circular_slist_algorithms.hpp>">boost/intrusive/circular_slist_algorithms.hpp</a>> </span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodeTraits<span class="special">></span> <span class="keyword">class</span> <a class="link" href="circular_slist_algorithms.html" title="Class template circular_slist_algorithms">circular_slist_algorithms</a> <span class="special">{</span> @@ -41,31 +42,36 @@ <span class="keyword">typedef</span> <span class="identifier">NodeTraits</span><span class="special">::</span><span class="identifier">const_node_ptr</span> <a name="boost.intrusive.circular_slist_algorithms.const_node_ptr"></a><span class="identifier">const_node_ptr</span><span class="special">;</span> <span class="keyword">typedef</span> <span class="identifier">NodeTraits</span> <a name="boost.intrusive.circular_slist_algorithms.node_traits"></a><span class="identifier">node_traits</span><span class="special">;</span> - <span class="comment">// <a class="link" href="circular_slist_algorithms.html#idm45971715645616-bb">public static functions</a></span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="circular_slist_algorithms.html#idm45971715645056-bb"><span class="identifier">init</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">bool</span> <a class="link" href="circular_slist_algorithms.html#idm45971715639920-bb"><span class="identifier">unique</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">bool</span> <a class="link" href="circular_slist_algorithms.html#idm45971715633824-bb"><span class="identifier">inited</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="circular_slist_algorithms.html#idm45971715628992-bb"><span class="identifier">unlink_after</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="circular_slist_algorithms.html#idm45971715623296-bb"><span class="identifier">unlink_after</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="circular_slist_algorithms.html#idm45971715616896-bb"><span class="identifier">link_after</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="circular_slist_algorithms.html#idm45971715610544-bb"><span class="identifier">transfer_after</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="circular_slist_algorithms.html#idm45971715603376-bb"><span class="identifier">init_header</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a class="link" href="circular_slist_algorithms.html#idm45971715598080-bb"><span class="identifier">get_previous_node</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="circular_slist_algorithms.html#idm45971715591520-bb"><span class="identifier">get_previous_node</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="circular_slist_algorithms.html#idm45971715585776-bb"><span class="identifier">get_previous_previous_node</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a class="link" href="circular_slist_algorithms.html#idm45971715580000-bb"><span class="identifier">get_previous_previous_node</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a class="link" href="circular_slist_algorithms.html#idm45971715573440-bb"><span class="identifier">count</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="circular_slist_algorithms.html#idm45971715567712-bb"><span class="identifier">unlink</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="circular_slist_algorithms.html#idm45971715561984-bb"><span class="identifier">link_before</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="circular_slist_algorithms.html#idm45971715555584-bb"><span class="identifier">swap_nodes</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="circular_slist_algorithms.html#idm45971715549008-bb"><span class="identifier">reverse</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="circular_slist_algorithms.html#idm45971715544192-bb"><span class="identifier">move_backwards</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="circular_slist_algorithms.html#idm45971715537712-bb"><span class="identifier">move_forward</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="comment">// <a class="link" href="circular_slist_algorithms.html#idm29483-bb">public static functions</a></span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="circular_slist_algorithms.html#idm29484-bb"><span class="identifier">init</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">bool</span> <a class="link" href="circular_slist_algorithms.html#idm29496-bb"><span class="identifier">unique</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">bool</span> <a class="link" href="circular_slist_algorithms.html#idm29510-bb"><span class="identifier">inited</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="circular_slist_algorithms.html#idm29521-bb"><span class="identifier">unlink_after</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="circular_slist_algorithms.html#idm29534-bb"><span class="identifier">unlink_after</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="circular_slist_algorithms.html#idm29549-bb"><span class="identifier">link_after</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="circular_slist_algorithms.html#idm29564-bb"><span class="identifier">transfer_after</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="circular_slist_algorithms.html#idm29581-bb"><span class="identifier">init_header</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="circular_slist_algorithms.html#idm29593-bb"><span class="identifier">end_node</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">bool</span> <a class="link" href="circular_slist_algorithms.html#idm29606-bb"><span class="identifier">is_empty</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">bool</span> <a class="link" href="circular_slist_algorithms.html#idm29617-bb"><span class="identifier">is_sentinel</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="circular_slist_algorithms.html#idm29628-bb"><span class="identifier">set_sentinel</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="circular_slist_algorithms.html#idm29639-bb"><span class="identifier">get_previous_node</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="circular_slist_algorithms.html#idm29654-bb"><span class="identifier">get_previous_node</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="circular_slist_algorithms.html#idm29667-bb"><span class="identifier">get_previous_previous_node</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="circular_slist_algorithms.html#idm29680-bb"><span class="identifier">get_previous_previous_node</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a class="link" href="circular_slist_algorithms.html#idm29695-bb"><span class="identifier">count</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="circular_slist_algorithms.html#idm29708-bb"><span class="identifier">unlink</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="circular_slist_algorithms.html#idm29721-bb"><span class="identifier">link_before</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="circular_slist_algorithms.html#idm29736-bb"><span class="identifier">swap_nodes</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="circular_slist_algorithms.html#idm29751-bb"><span class="identifier">reverse</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="circular_slist_algorithms.html#idm29762-bb"><span class="identifier">move_backwards</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="circular_slist_algorithms.html#idm29777-bb"><span class="identifier">move_forward</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="../interprocess/weak_ptr.html#idm29792-bb"><span class="identifier">transfer_after</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</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">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a class="link" href="circular_slist_algorithms.html#idm29807-bb"><span class="identifier">detach_and_dispose</span></a><span class="special">(</span><span class="identifier">node_ptr</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="special">}</span><span class="special">;</span></pre></div> <div class="refsect1"> -<a name="id-1.3.20.42.12.3.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.12.3.4"></a><h2>Description</h2> <p><a class="link" href="circular_slist_algorithms.html" title="Class template circular_slist_algorithms">circular_slist_algorithms</a> provides basic algorithms to manipulate nodes forming a circular singly linked list. An empty circular list is formed by a node whose pointer to the next node points to itself.</p> <p><a class="link" href="circular_slist_algorithms.html" title="Class template circular_slist_algorithms">circular_slist_algorithms</a> is configured with a NodeTraits class, which encapsulates the information about the node to be manipulated. NodeTraits must support the following interface:</p> <p><span class="bold"><strong>Typedefs</strong></span>:</p> @@ -76,80 +82,104 @@ <p><code class="computeroutput">static node_ptr get_next(const_node_ptr n);</code></p> <p><code class="computeroutput">static void set_next(node_ptr n, node_ptr next);</code> </p> <div class="refsect2"> -<a name="id-1.3.20.42.12.3.4.11"></a><h3> -<a name="idm45971715645616-bb"></a><code class="computeroutput">circular_slist_algorithms</code> public static functions</h3> +<a name="id-1.3.18.42.12.3.4.11"></a><h3> +<a name="idm29483-bb"></a><code class="computeroutput">circular_slist_algorithms</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="keyword">void</span> <a name="idm45971715645056-bb"></a><span class="identifier">init</span><span class="special">(</span><span class="identifier">node_ptr</span> this_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm29484-bb"></a><span class="identifier">init</span><span class="special">(</span><span class="identifier">node_ptr</span> this_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Constructs an non-used list element, putting the next pointer to null: <code class="computeroutput">NodeTraits::get_next(this_node) == node_ptr()</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="keyword">static</span> <span class="keyword">bool</span> <a name="idm45971715639920-bb"></a><span class="identifier">unique</span><span class="special">(</span><span class="identifier">const_node_ptr</span> this_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">bool</span> <a name="idm29496-bb"></a><span class="identifier">unique</span><span class="special">(</span><span class="identifier">const_node_ptr</span> this_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: this_node must be in a circular list or be an empty circular list.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns true is "this_node" is the only node of a circular list: or it's a not inserted node: <code class="computeroutput">return node_ptr() == NodeTraits::get_next(this_node) || NodeTraits::get_next(this_node) == this_node</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="keyword">static</span> <span class="keyword">bool</span> <a name="idm45971715633824-bb"></a><span class="identifier">inited</span><span class="special">(</span><span class="identifier">const_node_ptr</span> this_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">bool</span> <a name="idm29510-bb"></a><span class="identifier">inited</span><span class="special">(</span><span class="identifier">const_node_ptr</span> this_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Returns true is "this_node" has the same state as if it was inited using "init(node_ptr)"</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="keyword">static</span> <span class="keyword">void</span> <a name="idm45971715628992-bb"></a><span class="identifier">unlink_after</span><span class="special">(</span><span class="identifier">node_ptr</span> prev_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm29521-bb"></a><span class="identifier">unlink_after</span><span class="special">(</span><span class="identifier">node_ptr</span> prev_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: prev_node must be in a circular list or be an empty circular list.</p> <p><span class="bold"><strong>Effects</strong></span>: Unlinks the next node of prev_node from the circular list.</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="keyword">static</span> <span class="keyword">void</span> <a name="idm45971715623296-bb"></a><span class="identifier">unlink_after</span><span class="special">(</span><span class="identifier">node_ptr</span> prev_node<span class="special">,</span> <span class="identifier">node_ptr</span> last_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm29534-bb"></a><span class="identifier">unlink_after</span><span class="special">(</span><span class="identifier">node_ptr</span> prev_node<span class="special">,</span> <span class="identifier">node_ptr</span> last_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: prev_node and last_node must be in a circular list or be an empty circular list.</p> <p><span class="bold"><strong>Effects</strong></span>: Unlinks the range (prev_node, last_node) from the circular list.</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="keyword">static</span> <span class="keyword">void</span> <a name="idm45971715616896-bb"></a><span class="identifier">link_after</span><span class="special">(</span><span class="identifier">node_ptr</span> prev_node<span class="special">,</span> <span class="identifier">node_ptr</span> this_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm29549-bb"></a><span class="identifier">link_after</span><span class="special">(</span><span class="identifier">node_ptr</span> prev_node<span class="special">,</span> <span class="identifier">node_ptr</span> this_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: prev_node must be a node of a circular list.</p> <p><span class="bold"><strong>Effects</strong></span>: Links this_node after prev_node in the circular list.</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="keyword">static</span> <span class="keyword">void</span> <a name="idm45971715610544-bb"></a><span class="identifier">transfer_after</span><span class="special">(</span><span class="identifier">node_ptr</span> p<span class="special">,</span> <span class="identifier">node_ptr</span> b<span class="special">,</span> <span class="identifier">node_ptr</span> e<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm29564-bb"></a><span class="identifier">transfer_after</span><span class="special">(</span><span class="identifier">node_ptr</span> p<span class="special">,</span> <span class="identifier">node_ptr</span> b<span class="special">,</span> <span class="identifier">node_ptr</span> e<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: b and e must be nodes of the same circular list or an empty range. and p must be a node of a different circular list.</p> <p><span class="bold"><strong>Effects</strong></span>: Removes the nodes from (b, e] range from their circular list and inserts them after p in p's circular list.</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="keyword">static</span> <span class="keyword">void</span> <a name="idm45971715603376-bb"></a><span class="identifier">init_header</span><span class="special">(</span><span class="identifier">node_ptr</span> this_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm29581-bb"></a><span class="identifier">init_header</span><span class="special">(</span><span class="identifier">node_ptr</span> this_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Constructs an empty list, making this_node the only node of the circular list: <code class="computeroutput">NodeTraits::get_next(this_node) == this_node</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="keyword">static</span> <span class="identifier">node_ptr</span> <a name="idm29593-bb"></a><span class="identifier">end_node</span><span class="special">(</span><span class="identifier">const_node_ptr</span> p<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<p><span class="bold"><strong>Requires</strong></span>: 'p' is the first node of a list.</p> +<p><span class="bold"><strong>Effects</strong></span>: Returns a pointer to a node that represents the "end" (one past end) node</p> +<p><span class="bold"><strong>Complexity</strong></span>: 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="keyword">bool</span> <a name="idm29606-bb"></a><span class="identifier">is_empty</span><span class="special">(</span><span class="identifier">const_node_ptr</span> this_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<p><span class="bold"><strong>Effects</strong></span>: Returns true if this_node_points to an empty list.</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="keyword">static</span> <span class="keyword">bool</span> <a name="idm29617-bb"></a><span class="identifier">is_sentinel</span><span class="special">(</span><span class="identifier">const_node_ptr</span> this_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<p><span class="bold"><strong>Effects</strong></span>: Returns true if this_node points to a sentinel node.</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="keyword">static</span> <span class="keyword">void</span> <a name="idm29628-bb"></a><span class="identifier">set_sentinel</span><span class="special">(</span><span class="identifier">node_ptr</span> this_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<p><span class="bold"><strong>Effects</strong></span>: Marks this node as a "sentinel" node, a special state that is different from "empty", that can be used to mark a special state of the list</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="keyword">static</span> <span class="identifier">node_ptr</span> -<a name="idm45971715598080-bb"></a><span class="identifier">get_previous_node</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span> prev_init_node<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span> this_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<a name="idm29639-bb"></a><span class="identifier">get_previous_node</span><span class="special">(</span><span class="identifier">node_ptr</span> prev_init_node<span class="special">,</span> <span class="identifier">node_ptr</span> this_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: this_node and prev_init_node must be in the same circular list.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns the previous node of this_node in the circular list starting. the search from prev_init_node. The first node checked for equality is NodeTraits::get_next(prev_init_node).</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to the number of elements between prev_init_node and this_node.</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">node_ptr</span> <a name="idm45971715591520-bb"></a><span class="identifier">get_previous_node</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span> this_node<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">node_ptr</span> <a name="idm29654-bb"></a><span class="identifier">get_previous_node</span><span class="special">(</span><span class="identifier">node_ptr</span> this_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: this_node must be in a circular list or be an empty circular list.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns the previous node of this_node in the circular list.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to the number of elements in the circular list.</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">node_ptr</span> -<a name="idm45971715585776-bb"></a><span class="identifier">get_previous_previous_node</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span> this_node<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">node_ptr</span> <a name="idm29667-bb"></a><span class="identifier">get_previous_previous_node</span><span class="special">(</span><span class="identifier">node_ptr</span> this_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: this_node must be in a circular list or be an empty circular list.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns the previous node of the previous node of this_node in the circular list.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to the number of elements in the circular list.</p> @@ -157,72 +187,86 @@ </li> <li class="listitem"> <pre class="literallayout"><span class="keyword">static</span> <span class="identifier">node_ptr</span> -<a name="idm45971715580000-bb"></a><span class="identifier">get_previous_previous_node</span><span class="special">(</span><span class="identifier">node_ptr</span> p<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span> this_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<a name="idm29680-bb"></a><span class="identifier">get_previous_previous_node</span><span class="special">(</span><span class="identifier">node_ptr</span> p<span class="special">,</span> <span class="identifier">node_ptr</span> this_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: this_node and p must be in the same circular list.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns the previous node of the previous node of this_node in the circular list starting. the search from p. The first node checked for equality is NodeTraits::get_next((NodeTraits::get_next(p)).</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to the number of elements in the circular list.</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">std</span><span class="special">::</span><span class="identifier">size_t</span> <a name="idm45971715573440-bb"></a><span class="identifier">count</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span> this_node<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">std</span><span class="special">::</span><span class="identifier">size_t</span> <a name="idm29695-bb"></a><span class="identifier">count</span><span class="special">(</span><span class="identifier">const_node_ptr</span> this_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: this_node must be in a circular list or be an empty circular list.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns the number of nodes in a circular list. If the circular list is empty, returns 1.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear</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="keyword">void</span> <a name="idm45971715567712-bb"></a><span class="identifier">unlink</span><span class="special">(</span><span class="identifier">node_ptr</span> this_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm29708-bb"></a><span class="identifier">unlink</span><span class="special">(</span><span class="identifier">node_ptr</span> this_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: this_node must be in a circular list, be an empty circular list or be inited.</p> <p><span class="bold"><strong>Effects</strong></span>: Unlinks the node from the circular list.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to the number of elements in the circular list</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="keyword">void</span> <a name="idm45971715561984-bb"></a><span class="identifier">link_before</span><span class="special">(</span><span class="identifier">node_ptr</span> nxt_node<span class="special">,</span> <span class="identifier">node_ptr</span> this_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm29721-bb"></a><span class="identifier">link_before</span><span class="special">(</span><span class="identifier">node_ptr</span> nxt_node<span class="special">,</span> <span class="identifier">node_ptr</span> this_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: nxt_node must be a node of a circular list.</p> <p><span class="bold"><strong>Effects</strong></span>: Links this_node before nxt_node in the circular list.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to the number of elements in the circular list.</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="keyword">void</span> <a name="idm45971715555584-bb"></a><span class="identifier">swap_nodes</span><span class="special">(</span><span class="identifier">node_ptr</span> this_node<span class="special">,</span> <span class="identifier">node_ptr</span> other_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm29736-bb"></a><span class="identifier">swap_nodes</span><span class="special">(</span><span class="identifier">node_ptr</span> this_node<span class="special">,</span> <span class="identifier">node_ptr</span> other_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: this_node and other_node must be nodes inserted in circular lists or be empty circular lists.</p> <p><span class="bold"><strong>Effects</strong></span>: Swaps the position of the nodes: this_node is inserted in other_nodes position in the second circular list and the other_node is inserted in this_node's position in the first circular list.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to number of elements of both lists</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="keyword">void</span> <a name="idm45971715549008-bb"></a><span class="identifier">reverse</span><span class="special">(</span><span class="identifier">node_ptr</span> p<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm29751-bb"></a><span class="identifier">reverse</span><span class="special">(</span><span class="identifier">node_ptr</span> p<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Reverses the order of elements in the list.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: This function is linear to the contained elements. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="identifier">node_ptr</span> <a name="idm45971715544192-bb"></a><span class="identifier">move_backwards</span><span class="special">(</span><span class="identifier">node_ptr</span> p<span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</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">node_ptr</span> <a name="idm29762-bb"></a><span class="identifier">move_backwards</span><span class="special">(</span><span class="identifier">node_ptr</span> p<span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> n<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Moves the node p n positions towards the end of the list.</p> <p><span class="bold"><strong>Returns</strong></span>: The previous node of p after the function if there has been any movement, Null if n leads to no movement.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to the number of elements plus the number moved positions. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="identifier">node_ptr</span> <a name="idm45971715537712-bb"></a><span class="identifier">move_forward</span><span class="special">(</span><span class="identifier">node_ptr</span> p<span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</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">node_ptr</span> <a name="idm29777-bb"></a><span class="identifier">move_forward</span><span class="special">(</span><span class="identifier">node_ptr</span> p<span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> n<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Moves the node p n positions towards the beginning of the list.</p> <p><span class="bold"><strong>Returns</strong></span>: The previous node of p after the function if there has been any movement, Null if n leads equals to no movement.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to the number of elements plus the number moved positions. </p> </li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm29792-bb"></a><span class="identifier">transfer_after</span><span class="special">(</span><span class="identifier">node_ptr</span> p<span class="special">,</span> <span class="identifier">node_ptr</span> other<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<p><span class="bold"><strong>Requires</strong></span>: other must be a list and p must be a node of a different list.</p> +<p><span class="bold"><strong>Effects</strong></span>: Transfers all nodes from other after p in p's list.</p> +<p><span class="bold"><strong>Complexity</strong></span>: Linear</p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> + <a name="idm29807-bb"></a><span class="identifier">detach_and_dispose</span><span class="special">(</span><span class="identifier">node_ptr</span> p<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" must be an object function taking a node_ptr parameter and shouldn't throw.</p> +<p><span class="bold"><strong>Effects</strong></span>: Unlinks all nodes reachable from p (but not p) and calls <code class="computeroutput">void disposer::operator()(node_ptr)</code> for every node of the list where p is linked.</p> +<p><span class="bold"><strong>Returns</strong></span>: The number of disposed nodes</p> +<p><span class="bold"><strong>Complexity</strong></span>: Linear to the number of element of the list.</p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +</li> </ol></div> </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="circular_list_algorithms/stable_partition_info.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.circular_slist_algorithms_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="derivation_value_traits.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/compare.html b/doc/html/boost/intrusive/compare.html index e000d2258a..c0c4c989de 100644 --- a/doc/html/boost/intrusive/compare.html +++ b/doc/html/boost/intrusive/compare.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.options_hpp" title="Header <boost/intrusive/options.hpp>"> <link rel="prev" href="cache_last.html" title="Struct template cache_last"> <link rel="next" href="compare_hash.html" title="Struct template compare_hash"> +<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> @@ -29,25 +30,22 @@ <h2><span class="refentrytitle">Struct template compare</span></h2> <p>boost::intrusive::compare</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.options_hpp" title="Header <boost/intrusive/options.hpp>">boost/intrusive/options.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.options_hpp" title="Header <boost/intrusive/options.hpp>">boost/intrusive/options.hpp</a>> </span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Compare<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="compare.html" title="Struct template compare">compare</a> <span class="special">{</span> <span class="special">}</span><span class="special">;</span></pre></div> <div class="refsect1"> -<a name="id-1.3.20.42.21.7.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.21.7.4"></a><h2>Description</h2> <p>This option setter specifies the strict weak ordering comparison functor for the value type </p> </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="cache_last.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.options_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="compare_hash.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/compare_hash.html b/doc/html/boost/intrusive/compare_hash.html index 5aa5b3251a..9657999b70 100644 --- a/doc/html/boost/intrusive/compare_hash.html +++ b/doc/html/boost/intrusive/compare_hash.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.options_hpp" title="Header <boost/intrusive/options.hpp>"> <link rel="prev" href="compare.html" title="Struct template compare"> <link rel="next" href="constant_time_size.html" title="Struct template constant_time_size"> +<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> @@ -29,25 +30,22 @@ <h2><span class="refentrytitle">Struct template compare_hash</span></h2> <p>boost::intrusive::compare_hash</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.options_hpp" title="Header <boost/intrusive/options.hpp>">boost/intrusive/options.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.options_hpp" title="Header <boost/intrusive/options.hpp>">boost/intrusive/options.hpp</a>> </span><span class="keyword">template</span><span class="special"><</span><span class="keyword">bool</span> Enabled<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="compare_hash.html" title="Struct template compare_hash">compare_hash</a> <span class="special">{</span> <span class="special">}</span><span class="special">;</span></pre></div> <div class="refsect1"> -<a name="id-1.3.20.42.21.8.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.21.8.4"></a><h2>Description</h2> <p>This option setter specifies if the container will compare the hash value before comparing objects. This option can't be specified if store_hash<> is not true. This is specially helpful when we have containers with a high load factor. and the comparison function is much more expensive that comparing already stored hash values. </p> </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="compare.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.options_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="constant_time_size.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/constant_time_size.html b/doc/html/boost/intrusive/constant_time_size.html index aebe9396c2..d3a72b46cb 100644 --- a/doc/html/boost/intrusive/constant_time_size.html +++ b/doc/html/boost/intrusive/constant_time_size.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.options_hpp" title="Header <boost/intrusive/options.hpp>"> <link rel="prev" href="compare_hash.html" title="Struct template compare_hash"> <link rel="next" href="equal.html" title="Struct template equal"> +<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> @@ -29,25 +30,22 @@ <h2><span class="refentrytitle">Struct template constant_time_size</span></h2> <p>boost::intrusive::constant_time_size</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.options_hpp" title="Header <boost/intrusive/options.hpp>">boost/intrusive/options.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.options_hpp" title="Header <boost/intrusive/options.hpp>">boost/intrusive/options.hpp</a>> </span><span class="keyword">template</span><span class="special"><</span><span class="keyword">bool</span> Enabled<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="constant_time_size.html" title="Struct template constant_time_size">constant_time_size</a> <span class="special">{</span> <span class="special">}</span><span class="special">;</span></pre></div> <div class="refsect1"> -<a name="id-1.3.20.42.21.9.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.21.9.4"></a><h2>Description</h2> <p>This option setter specifies if the intrusive container stores its size as a member to obtain constant-time size() member. </p> </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="compare_hash.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.options_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="equal.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/default_hashtable_idm30604.html b/doc/html/boost/intrusive/default_hashtable_idm30604.html new file mode 100644 index 0000000000..e6818b9c8a --- /dev/null +++ b/doc/html/boost/intrusive/default_hashtable_idm30604.html @@ -0,0 +1,59 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>Struct default_hashtable_hook_applier</title> +<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css"> +<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="bucket_traits_impl.html" title="Struct template bucket_traits_impl"> +<link rel="next" href="default_hashtable_idm30604/apply.html" title="Struct template apply"> +<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> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td> +<td align="center"><a href="../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="bucket_traits_impl.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="default_hashtable_idm30604/apply.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.intrusive.default_hashtable_idm30604"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Struct default_hashtable_hook_applier</span></h2> +<p>boost::intrusive::default_hashtable_hook_applier</p> +</div> +<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">struct</span> <a class="link" href="default_hashtable_idm30604.html" title="Struct default_hashtable_hook_applier">default_hashtable_hook_applier</a> <span class="special">{</span> + <span class="comment">// member classes/structs/unions</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T<span class="special">></span> + <span class="keyword">struct</span> <a class="link" href="default_hashtable_idm30604/apply.html" title="Struct template apply">apply</a> <span class="special">{</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <span class="identifier">T</span><span class="special">::</span><span class="identifier">default_hashtable_hook</span> <a class="link" href="default_hashtable_idm30604/apply.html#boost.intrusive.default_hashtable_idm30604.apply.type"><span class="identifier">type</span></a><span class="special">;</span> + <span class="special">}</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="id-1.3.18.42.14.8.4"></a><h2>Description</h2> +</div> +</div> +<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> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="bucket_traits_impl.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="default_hashtable_idm30604/apply.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/doc/html/boost/intrusive/default_hashtable_idm30604/apply.html b/doc/html/boost/intrusive/default_hashtable_idm30604/apply.html new file mode 100644 index 0000000000..1c52ef3291 --- /dev/null +++ b/doc/html/boost/intrusive/default_hashtable_idm30604/apply.html @@ -0,0 +1,53 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>Struct template apply</title> +<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css"> +<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="../default_hashtable_idm30604.html#id-1.3.18.42.14.8.4" title="Description"> +<link rel="prev" href="../default_hashtable_idm30604.html" title="Struct default_hashtable_hook_applier"> +<link rel="next" href="../downcast_node_to_value_t.html" title="Struct template downcast_node_to_value_t"> +<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> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td> +<td align="center"><a href="../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../default_hashtable_idm30604.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../default_hashtable_idm30604.html#id-1.3.18.42.14.8.4"><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="../downcast_node_to_value_t.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.intrusive.default_hashtable_idm30604.apply"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Struct template apply</span></h2> +<p>boost::intrusive::default_hashtable_hook_applier::apply</p> +</div> +<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">struct</span> <a class="link" href="apply.html" title="Struct template apply">apply</a> <span class="special">{</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <span class="identifier">T</span><span class="special">::</span><span class="identifier">default_hashtable_hook</span> <a name="boost.intrusive.default_hashtable_idm30604.apply.type"></a><span class="identifier">type</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +</div> +<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> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../default_hashtable_idm30604.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../default_hashtable_idm30604.html#id-1.3.18.42.14.8.4"><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="../downcast_node_to_value_t.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/doc/html/boost/intrusive/derivation_value_traits.html b/doc/html/boost/intrusive/derivation_value_traits.html index cb0c56b24a..2ef0a1cbdc 100644 --- a/doc/html/boost/intrusive/derivation_value_traits.html +++ b/doc/html/boost/intrusive/derivation_value_traits.html @@ -8,7 +8,8 @@ <link rel="home" href="../../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset"> <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.derivation_value_traits_hpp" title="Header <boost/intrusive/derivation_value_traits.hpp>"> <link rel="prev" href="circular_slist_algorithms.html" title="Class template circular_slist_algorithms"> -<link rel="next" href="hashtable.html" title="Class template hashtable"> +<link rel="next" href="bucket_hash_equal_t.html" title="Struct template bucket_hash_equal_t"> +<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="circular_slist_algorithms.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.derivation_value_traits_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.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +<a accesskey="p" href="circular_slist_algorithms.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.derivation_value_traits_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="bucket_hash_equal_t.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> </div> <div class="refentry"> <a name="boost.intrusive.derivation_value_traits"></a><div class="titlepage"></div> @@ -29,57 +30,54 @@ <h2><span class="refentrytitle">Struct template derivation_value_traits</span></h2> <p>boost::intrusive::derivation_value_traits</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.derivation_value_traits_hpp" title="Header <boost/intrusive/derivation_value_traits.hpp>">boost/intrusive/derivation_value_traits.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.derivation_value_traits_hpp" title="Header <boost/intrusive/derivation_value_traits.hpp>">boost/intrusive/derivation_value_traits.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">typename</span> NodeTraits<span class="special">,</span> <span class="identifier">link_mode_type</span> LinkMode <span class="special">=</span> <span class="identifier">safe_link</span><span class="special">></span> <span class="keyword">struct</span> <a class="link" href="derivation_value_traits.html" title="Struct template derivation_value_traits">derivation_value_traits</a> <span class="special">{</span> <span class="comment">// types</span> - <span class="keyword">typedef</span> <span class="identifier">NodeTraits</span> <a name="boost.intrusive.derivation_value_traits.node_traits"></a><span class="identifier">node_traits</span><span class="special">;</span> - <span class="keyword">typedef</span> <span class="identifier">T</span> <a name="boost.intrusive.derivation_value_traits.value_type"></a><span class="identifier">value_type</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.derivation_value_traits.node"></a><span class="identifier">node</span><span class="special">;</span> - <span class="keyword">typedef</span> <span class="identifier">node_traits</span><span class="special">::</span><span class="identifier">node_ptr</span> <a name="boost.intrusive.derivation_value_traits.node_ptr"></a><span class="identifier">node_ptr</span><span class="special">;</span> - <span class="keyword">typedef</span> <span class="identifier">node_traits</span><span class="special">::</span><span class="identifier">const_node_ptr</span> <a name="boost.intrusive.derivation_value_traits.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="keyword">template</span> <span class="identifier">rebind_pointer</span><span class="special"><</span> <span class="identifier">value_type</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> <a name="boost.intrusive.derivation_value_traits.pointer"></a><span class="identifier">pointer</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="keyword">template</span> <span class="identifier">rebind_pointer</span><span class="special"><</span> <span class="keyword">const</span> <span class="identifier">value_type</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> <a name="boost.intrusive.derivation_value_traits.const_pointer"></a><span class="identifier">const_pointer</span><span class="special">;</span> - <span class="keyword">typedef</span> <a class="link" href="pointer_traits.html" title="Struct template pointer_traits">boost::intrusive::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.derivation_value_traits.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">boost::intrusive::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.derivation_value_traits.const_reference"></a><span class="identifier">const_reference</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">NodeTraits</span> <a name="boost.intrusive.derivation_value_traits.node_traits"></a><span class="identifier">node_traits</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">T</span> <a name="boost.intrusive.derivation_value_traits.value_type"></a><span class="identifier">value_type</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.derivation_value_traits.node"></a><span class="identifier">node</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">node_traits</span><span class="special">::</span><span class="identifier">node_ptr</span> <a name="boost.intrusive.derivation_value_traits.node_ptr"></a><span class="identifier">node_ptr</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">node_traits</span><span class="special">::</span><span class="identifier">const_node_ptr</span> <a name="boost.intrusive.derivation_value_traits.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="keyword">template</span> <span class="identifier">rebind_pointer</span><span class="special"><</span> <span class="identifier">value_type</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> <a name="boost.intrusive.derivation_value_traits.pointer"></a><span class="identifier">pointer</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="keyword">template</span> <span class="identifier">rebind_pointer</span><span class="special"><</span> <span class="identifier">constvalue_type</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> <a name="boost.intrusive.derivation_value_traits.const_pointer"></a><span class="identifier">const_pointer</span><span class="special">;</span> + <span class="keyword">typedef</span> <a class="link" href="pointer_traits.html" title="Struct template pointer_traits">boost::intrusive::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.derivation_value_traits.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">boost::intrusive::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.derivation_value_traits.const_reference"></a><span class="identifier">const_reference</span><span class="special">;</span> - <span class="comment">// <a class="link" href="derivation_value_traits.html#idm45971715515120-bb">public static functions</a></span> - <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="derivation_value_traits.html#idm45971715514560-bb"><span class="identifier">to_node_ptr</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_node_ptr</span> <a class="link" href="derivation_value_traits.html#idm45971715512480-bb"><span class="identifier">to_node_ptr</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">pointer</span> <a class="link" href="derivation_value_traits.html#idm45971715510400-bb"><span class="identifier">to_value_ptr</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="identifier">const_pointer</span> <a class="link" href="derivation_value_traits.html#idm45971715508320-bb"><span class="identifier">to_value_ptr</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="comment">// <a class="link" href="derivation_value_traits.html#idm29863-bb">public static functions</a></span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="derivation_value_traits.html#idm29864-bb"><span class="identifier">to_node_ptr</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_node_ptr</span> <a class="link" href="derivation_value_traits.html#idm29868-bb"><span class="identifier">to_node_ptr</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">pointer</span> <a class="link" href="derivation_value_traits.html#idm29872-bb"><span class="identifier">to_value_ptr</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">const_pointer</span> <a class="link" href="derivation_value_traits.html#idm29876-bb"><span class="identifier">to_value_ptr</span></a><span class="special">(</span><span class="identifier">const_node_ptr</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="identifier">link_mode_type</span> <span class="identifier">link_mode</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.13.3.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.13.3.4"></a><h2>Description</h2> <p>This value traits template is used to create value traits from user defined node traits where value_traits::value_type will derive from node_traits::node </p> <div class="refsect2"> -<a name="id-1.3.20.42.13.3.4.3"></a><h3> -<a name="idm45971715515120-bb"></a><code class="computeroutput">derivation_value_traits</code> public static functions</h3> +<a name="id-1.3.18.42.13.3.4.3"></a><h3> +<a name="idm29863-bb"></a><code class="computeroutput">derivation_value_traits</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">node_ptr</span> <a name="idm45971715514560-bb"></a><span class="identifier">to_node_ptr</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></li> -<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">const_node_ptr</span> <a name="idm45971715512480-bb"></a><span class="identifier">to_node_ptr</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></li> -<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">pointer</span> <a name="idm45971715510400-bb"></a><span class="identifier">to_value_ptr</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span> n<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> -<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">const_pointer</span> <a name="idm45971715508320-bb"></a><span class="identifier">to_value_ptr</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span> n<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">node_ptr</span> <a name="idm29864-bb"></a><span class="identifier">to_node_ptr</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></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">const_node_ptr</span> <a name="idm29868-bb"></a><span class="identifier">to_node_ptr</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></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">pointer</span> <a name="idm29872-bb"></a><span class="identifier">to_value_ptr</span><span class="special">(</span><span class="identifier">node_ptr</span> n<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">const_pointer</span> <a name="idm29876-bb"></a><span class="identifier">to_value_ptr</span><span class="special">(</span><span class="identifier">const_node_ptr</span> n<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> </ol></div> </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="circular_slist_algorithms.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.derivation_value_traits_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.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +<a accesskey="p" href="circular_slist_algorithms.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.derivation_value_traits_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="bucket_hash_equal_t.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> </div> </body> </html> diff --git a/doc/html/boost/intrusive/downcast_node_to_value_t.html b/doc/html/boost/intrusive/downcast_node_to_value_t.html new file mode 100644 index 0000000000..ee6f3c1844 --- /dev/null +++ b/doc/html/boost/intrusive/downcast_node_to_value_t.html @@ -0,0 +1,79 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>Struct template downcast_node_to_value_t</title> +<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css"> +<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="default_hashtable_idm30604/apply.html" title="Struct template apply"> +<link rel="next" href="exception_bucket_disposer.html" title="Class template exception_bucket_disposer"> +<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> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td> +<td align="center"><a href="../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="default_hashtable_idm30604/apply.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="exception_bucket_disposer.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.intrusive.downcast_node_to_value_t"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Struct template downcast_node_to_value_t</span></h2> +<p>boost::intrusive::downcast_node_to_value_t</p> +</div> +<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> ValueTraits<span class="special">,</span> <span class="keyword">bool</span> IsConst<span class="special">></span> +<span class="keyword">struct</span> <a class="link" href="downcast_node_to_value_t.html" title="Struct template downcast_node_to_value_t">downcast_node_to_value_t</a> <span class="special">{</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span> <a name="boost.intrusive.downcast_node_to_value_t.base_t"></a><span class="identifier">base_t</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">base_t</span><span class="special">::</span><span class="identifier">result_type</span> <a name="boost.intrusive.downcast_node_to_value_t.result_type"></a><span class="identifier">result_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">ValueTraits</span> <a name="boost.intrusive.downcast_node_to_value_t.value_traits"></a><span class="identifier">value_traits</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">unordered_bucket_impl</span><span class="special"><</span> <span class="identifier">value_traits</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span><span class="special">::</span><span class="identifier">node_traits</span><span class="special">::</span><span class="identifier">node</span> <a name="boost.intrusive.downcast_node_to_value_t.node"></a><span class="identifier">node</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.downcast_node_to_value_t.first_argument_type"></a><span class="identifier">first_argument_type</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.downcast_node_to_value_t.intermediate_argument_type"></a><span class="identifier">intermediate_argument_type</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">typenameValueTraits</span><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">constValueTraits</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> <a name="boost.intrusive.downcast_node_to_value_t.const_value_traits_ptr"></a><span class="identifier">const_value_traits_ptr</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="downcast_node_to_value_t.html#boost.intrusive.downcast_node_to_value_tconstruct-copy-destruct">construct/copy/destruct</a></span> + <a class="link" href="downcast_node_to_value_t.html#idm30638-bb"><span class="identifier">downcast_node_to_value_t</span></a><span class="special">(</span><span class="identifier">const_value_traits_ptr</span><span class="special">)</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="downcast_node_to_value_t.html#idm30633-bb">public member functions</a></span> + <span class="identifier">result_type</span> <a class="link" href="downcast_node_to_value_t.html#idm30634-bb"><span class="keyword">operator</span><span class="special">(</span><span class="special">)</span></a><span class="special">(</span><span class="identifier">first_argument_type</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="id-1.3.18.42.14.9.4"></a><h2>Description</h2> +<div class="refsect2"> +<a name="id-1.3.18.42.14.9.4.2"></a><h3> +<a name="boost.intrusive.downcast_node_to_value_tconstruct-copy-destruct"></a><code class="computeroutput">downcast_node_to_value_t</code> + public + construct/copy/destruct</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><pre class="literallayout"><a name="idm30638-bb"></a><span class="identifier">downcast_node_to_value_t</span><span class="special">(</span><span class="identifier">const_value_traits_ptr</span> ptr<span class="special">)</span><span class="special">;</span></pre></li></ol></div> +</div> +<div class="refsect2"> +<a name="id-1.3.18.42.14.9.4.3"></a><h3> +<a name="idm30633-bb"></a><code class="computeroutput">downcast_node_to_value_t</code> public member functions</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><pre class="literallayout"><span class="identifier">result_type</span> <a name="idm30634-bb"></a><span class="keyword">operator</span><span class="special">(</span><span class="special">)</span><span class="special">(</span><span class="identifier">first_argument_type</span> arg<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li></ol></div> +</div> +</div> +</div> +<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> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="default_hashtable_idm30604/apply.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="exception_bucket_disposer.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/doc/html/boost/intrusive/equal.html b/doc/html/boost/intrusive/equal.html index 3e348ac398..3232d9147a 100644 --- a/doc/html/boost/intrusive/equal.html +++ b/doc/html/boost/intrusive/equal.html @@ -8,7 +8,8 @@ <link rel="home" href="../../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset"> <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.options_hpp" title="Header <boost/intrusive/options.hpp>"> <link rel="prev" href="constant_time_size.html" title="Struct template constant_time_size"> -<link rel="next" href="floating_point.html" title="Struct template floating_point"> +<link rel="next" href="fastmod_buckets.html" title="Struct template fastmod_buckets"> +<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="constant_time_size.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.options_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="floating_point.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +<a accesskey="p" href="constant_time_size.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.options_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="fastmod_buckets.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> </div> <div class="refentry"> <a name="boost.intrusive.equal"></a><div class="titlepage"></div> @@ -29,28 +30,25 @@ <h2><span class="refentrytitle">Struct template equal</span></h2> <p>boost::intrusive::equal</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.options_hpp" title="Header <boost/intrusive/options.hpp>">boost/intrusive/options.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.options_hpp" title="Header <boost/intrusive/options.hpp>">boost/intrusive/options.hpp</a>> </span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Equal<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="equal.html" title="Struct template equal">equal</a> <span class="special">{</span> <span class="special">}</span><span class="special">;</span></pre></div> <div class="refsect1"> -<a name="id-1.3.20.42.21.10.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.21.10.4"></a><h2>Description</h2> <p>This option setter specifies the equality functor for the value type </p> </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="constant_time_size.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.options_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="floating_point.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +<a accesskey="p" href="constant_time_size.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.options_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="fastmod_buckets.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> </div> </body> </html> diff --git a/doc/html/boost/intrusive/exception_bucket_disposer.html b/doc/html/boost/intrusive/exception_bucket_disposer.html new file mode 100644 index 0000000000..def9367131 --- /dev/null +++ b/doc/html/boost/intrusive/exception_bucket_disposer.html @@ -0,0 +1,80 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>Class template exception_bucket_disposer</title> +<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css"> +<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="downcast_node_to_value_t.html" title="Struct template downcast_node_to_value_t"> +<link rel="next" href="get_equal_to.html" title="Struct template get_equal_to"> +<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> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td> +<td align="center"><a href="../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="downcast_node_to_value_t.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="get_equal_to.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.intrusive.exception_bucket_disposer"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Class template exception_bucket_disposer</span></h2> +<p>boost::intrusive::exception_bucket_disposer</p> +</div> +<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> Bucket<span class="special">,</span> <span class="keyword">typename</span> Algo<span class="special">,</span> <span class="keyword">typename</span> Disposer<span class="special">,</span> <span class="keyword">typename</span> SizeType<span class="special">></span> +<span class="keyword">class</span> <a class="link" href="exception_bucket_disposer.html" title="Class template exception_bucket_disposer">exception_bucket_disposer</a> <span class="special">{</span> +<span class="keyword">public</span><span class="special">:</span> + <span class="comment">// <a class="link" href="exception_bucket_disposer.html#boost.intrusive.exception_bucket_disposerconstruct-copy-destruct">construct/copy/destruct</a></span> + <a class="link" href="exception_bucket_disposer.html#idm30648-bb"><span class="identifier">exception_bucket_disposer</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">exception_bucket_disposer</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="exception_bucket_disposer.html#idm30658-bb"><span class="identifier">exception_bucket_disposer</span></a><span class="special">(</span><span class="identifier">Bucket</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">const</span> <span class="identifier">SizeType</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">exception_bucket_disposer</span> <span class="special">&</span> <a class="link" href="exception_bucket_disposer.html#idm30651-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">exception_bucket_disposer</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="../interprocess/interprocess_condition_any.html#idm30665-bb"><span class="special">~</span><span class="identifier">exception_bucket_disposer</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="exception_bucket_disposer.html#idm30655-bb">public member functions</a></span> + <span class="keyword">void</span> <a class="link" href="exception_bucket_disposer.html#idm30656-bb"><span class="identifier">release</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="id-1.3.18.42.14.10.4"></a><h2>Description</h2> +<div class="refsect2"> +<a name="id-1.3.18.42.14.10.4.2"></a><h3> +<a name="boost.intrusive.exception_bucket_disposerconstruct-copy-destruct"></a><code class="computeroutput">exception_bucket_disposer</code> + public + construct/copy/destruct</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"><pre class="literallayout"><a name="idm30648-bb"></a><span class="identifier">exception_bucket_disposer</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">exception_bucket_disposer</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><a name="idm30658-bb"></a><span class="identifier">exception_bucket_disposer</span><span class="special">(</span><span class="identifier">Bucket</span> <span class="special">&</span> cont<span class="special">,</span> <span class="identifier">Disposer</span> <span class="special">&</span> disp<span class="special">,</span> + <span class="keyword">const</span> <span class="identifier">SizeType</span> <span class="special">&</span> constructed<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">exception_bucket_disposer</span> <span class="special">&</span> <a name="idm30651-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">exception_bucket_disposer</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><a name="idm30665-bb"></a><span class="special">~</span><span class="identifier">exception_bucket_disposer</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre></li> +</ol></div> +</div> +<div class="refsect2"> +<a name="id-1.3.18.42.14.10.4.3"></a><h3> +<a name="idm30655-bb"></a><code class="computeroutput">exception_bucket_disposer</code> public member functions</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><pre class="literallayout"><span class="keyword">void</span> <a name="idm30656-bb"></a><span class="identifier">release</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre></li></ol></div> +</div> +</div> +</div> +<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> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="downcast_node_to_value_t.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="get_equal_to.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/doc/html/boost/intrusive/fastmod_buckets.html b/doc/html/boost/intrusive/fastmod_buckets.html new file mode 100644 index 0000000000..52a9776bf1 --- /dev/null +++ b/doc/html/boost/intrusive/fastmod_buckets.html @@ -0,0 +1,54 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>Struct template fastmod_buckets</title> +<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css"> +<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.options_hpp" title="Header <boost/intrusive/options.hpp>"> +<link rel="prev" href="equal.html" title="Struct template equal"> +<link rel="next" href="floating_point.html" title="Struct template floating_point"> +<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> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td> +<td align="center"><a href="../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="equal.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.options_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="floating_point.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.intrusive.fastmod_buckets"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Struct template fastmod_buckets</span></h2> +<p>boost::intrusive::fastmod_buckets</p> +</div> +<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.options_hpp" title="Header <boost/intrusive/options.hpp>">boost/intrusive/options.hpp</a>> + +</span><span class="keyword">template</span><span class="special"><</span><span class="keyword">bool</span> Enabled<span class="special">></span> +<span class="keyword">struct</span> <a class="link" href="fastmod_buckets.html" title="Struct template fastmod_buckets">fastmod_buckets</a> <span class="special">{</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="id-1.3.18.42.21.11.4"></a><h2>Description</h2> +<p>WARNING: this option is EXPERIMENTAL, don't use it in production code This option setter specifies if the length of the bucket array provided by the user will always be a value specified by the suggested_upper|lower_bucket_count call. This allows the use of some precomputed values and speeds hash to bucket index operations, leading to better performance. In debug mode, the provided bucket array length will be checked with assertions. </p> +</div> +</div> +<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> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="equal.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.options_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="floating_point.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/doc/html/boost/intrusive/floating_point.html b/doc/html/boost/intrusive/floating_point.html index c81cbcd5fa..6578631f33 100644 --- a/doc/html/boost/intrusive/floating_point.html +++ b/doc/html/boost/intrusive/floating_point.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.options_hpp" title="Header <boost/intrusive/options.hpp>"> -<link rel="prev" href="equal.html" title="Struct template equal"> +<link rel="prev" href="fastmod_buckets.html" title="Struct template fastmod_buckets"> <link rel="next" href="function_hook.html" title="Struct template function_hook"> +<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="equal.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.options_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="function_hook.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +<a accesskey="p" href="fastmod_buckets.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.options_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="function_hook.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> </div> <div class="refentry"> <a name="boost.intrusive.floating_point"></a><div class="titlepage"></div> @@ -29,30 +30,27 @@ <h2><span class="refentrytitle">Struct template floating_point</span></h2> <p>boost::intrusive::floating_point</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.options_hpp" title="Header <boost/intrusive/options.hpp>">boost/intrusive/options.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.options_hpp" title="Header <boost/intrusive/options.hpp>">boost/intrusive/options.hpp</a>> </span><span class="keyword">template</span><span class="special"><</span><span class="keyword">bool</span> Enabled<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="floating_point.html" title="Struct template floating_point">floating_point</a> <span class="special">{</span> <span class="special">}</span><span class="special">;</span></pre></div> <div class="refsect1"> -<a name="id-1.3.20.42.21.11.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.21.12.4"></a><h2>Description</h2> <p>This option setter for scapegoat containers specifies if the intrusive scapegoat container should use a non-variable alpha value that does not need floating-point operations.</p> <p>If activated, the fixed alpha value is 1/sqrt(2). This option also saves some space in the container since the alpha value and some additional data does not need to be stored in the container.</p> <p>If the user only needs an alpha value near 1/sqrt(2), this option also improves performance since avoids logarithm and division operations when rebalancing the tree. </p> </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="equal.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.options_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="function_hook.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +<a accesskey="p" href="fastmod_buckets.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.options_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="function_hook.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> </div> </body> </html> diff --git a/doc/html/boost/intrusive/function_hook.html b/doc/html/boost/intrusive/function_hook.html index 9c5f067984..8b0329bf21 100644 --- a/doc/html/boost/intrusive/function_hook.html +++ b/doc/html/boost/intrusive/function_hook.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.options_hpp" title="Header <boost/intrusive/options.hpp>"> <link rel="prev" href="floating_point.html" title="Struct template floating_point"> <link rel="next" href="hash.html" title="Struct template hash"> +<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> @@ -29,25 +30,22 @@ <h2><span class="refentrytitle">Struct template function_hook</span></h2> <p>boost::intrusive::function_hook</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.options_hpp" title="Header <boost/intrusive/options.hpp>">boost/intrusive/options.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.options_hpp" title="Header <boost/intrusive/options.hpp>">boost/intrusive/options.hpp</a>> </span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Functor<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="function_hook.html" title="Struct template function_hook">function_hook</a> <span class="special">{</span> <span class="special">}</span><span class="special">;</span></pre></div> <div class="refsect1"> -<a name="id-1.3.20.42.21.12.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.21.13.4"></a><h2>Description</h2> <p>This option setter specifies the function object that will be used to convert between values to be inserted in a container and the hook to be used for that purpose. </p> </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="floating_point.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.options_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="hash.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/get_equal_to.html b/doc/html/boost/intrusive/get_equal_to.html new file mode 100644 index 0000000000..209c4b1cdc --- /dev/null +++ b/doc/html/boost/intrusive/get_equal_to.html @@ -0,0 +1,52 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>Struct template get_equal_to</title> +<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css"> +<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="exception_bucket_disposer.html" title="Class template exception_bucket_disposer"> +<link rel="next" href="get_equal_to_void_idm30672.html" title="Struct template get_equal_to<void, T>"> +<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> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td> +<td align="center"><a href="../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="exception_bucket_disposer.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="get_equal_to_void_idm30672.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.intrusive.get_equal_to"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Struct template get_equal_to</span></h2> +<p>boost::intrusive::get_equal_to</p> +</div> +<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> EqualTo<span class="special">,</span> <span class="keyword">typename</span> <span class="special">></span> +<span class="keyword">struct</span> <a class="link" href="get_equal_to.html" title="Struct template get_equal_to">get_equal_to</a> <span class="special">{</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <span class="identifier">EqualTo</span> <a name="boost.intrusive.get_equal_to.type"></a><span class="identifier">type</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +</div> +<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> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="exception_bucket_disposer.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="get_equal_to_void_idm30672.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/doc/html/boost/intrusive/get_equal_to_void_idm30672.html b/doc/html/boost/intrusive/get_equal_to_void_idm30672.html new file mode 100644 index 0000000000..51ad1d7ddc --- /dev/null +++ b/doc/html/boost/intrusive/get_equal_to_void_idm30672.html @@ -0,0 +1,52 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>Struct template get_equal_to<void, T></title> +<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css"> +<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="get_equal_to.html" title="Struct template get_equal_to"> +<link rel="next" href="get_hash.html" title="Struct template get_hash"> +<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> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td> +<td align="center"><a href="../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="get_equal_to.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="get_hash.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.intrusive.get_equal_to_void_idm30672"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Struct template get_equal_to<void, T></span></h2> +<p>boost::intrusive::get_equal_to<void, T></p> +</div> +<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">struct</span> <a class="link" href="get_equal_to_void_idm30672.html" title="Struct template get_equal_to<void, T>">get_equal_to</a><span class="special"><</span><span class="keyword">void</span><span class="special">,</span> <span class="identifier">T</span><span class="special">></span> <span class="special">{</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <span class="identifier">value_equal</span><span class="special"><</span> <span class="identifier">T</span> <span class="special">></span> <a name="boost.intrusive.get_equal_to_void_idm30672.type"></a><span class="identifier">type</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +</div> +<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> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="get_equal_to.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="get_hash.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/doc/html/boost/intrusive/get_hash.html b/doc/html/boost/intrusive/get_hash.html new file mode 100644 index 0000000000..3cf3c749ec --- /dev/null +++ b/doc/html/boost/intrusive/get_hash.html @@ -0,0 +1,52 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>Struct template get_hash</title> +<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css"> +<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="get_equal_to_void_idm30672.html" title="Struct template get_equal_to<void, T>"> +<link rel="next" href="get_hash_void__T_idm30686.html" title="Struct template get_hash<void, T>"> +<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> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td> +<td align="center"><a href="../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="get_equal_to_void_idm30672.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="get_hash_void__T_idm30686.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.intrusive.get_hash"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Struct template get_hash</span></h2> +<p>boost::intrusive::get_hash</p> +</div> +<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> Hash<span class="special">,</span> <span class="keyword">typename</span> <span class="special">></span> +<span class="keyword">struct</span> <a class="link" href="get_hash.html" title="Struct template get_hash">get_hash</a> <span class="special">{</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <span class="identifier">Hash</span> <a name="boost.intrusive.get_hash.type"></a><span class="identifier">type</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +</div> +<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> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="get_equal_to_void_idm30672.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="get_hash_void__T_idm30686.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/doc/html/boost/intrusive/get_hash_key_of_v_idm30700.html b/doc/html/boost/intrusive/get_hash_key_of_v_idm30700.html new file mode 100644 index 0000000000..cecc45b7ae --- /dev/null +++ b/doc/html/boost/intrusive/get_hash_key_of_v_idm30700.html @@ -0,0 +1,52 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>Struct template get_hash_key_of_value<void, T></title> +<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css"> +<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="get_hash_key_of_value.html" title="Struct template get_hash_key_of_value"> +<link rel="next" href="get_hashtable_siz_idm30709.html" title="Struct template get_hashtable_size_wrapper_bucket"> +<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> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td> +<td align="center"><a href="../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="get_hash_key_of_value.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="get_hashtable_siz_idm30709.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.intrusive.get_hash_key_of_v_idm30700"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Struct template get_hash_key_of_value<void, T></span></h2> +<p>boost::intrusive::get_hash_key_of_value<void, T></p> +</div> +<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">struct</span> <a class="link" href="get_hash_key_of_v_idm30700.html" title="Struct template get_hash_key_of_value<void, T>">get_hash_key_of_value</a><span class="special"><</span><span class="keyword">void</span><span class="special">,</span> <span class="identifier">T</span><span class="special">></span> <span class="special">{</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span> <a name="boost.intrusive.get_hash_key_of_v_idm30700.type"></a><span class="identifier">type</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +</div> +<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> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="get_hash_key_of_value.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="get_hashtable_siz_idm30709.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/doc/html/boost/intrusive/get_hash_key_of_value.html b/doc/html/boost/intrusive/get_hash_key_of_value.html new file mode 100644 index 0000000000..8629d4701e --- /dev/null +++ b/doc/html/boost/intrusive/get_hash_key_of_value.html @@ -0,0 +1,52 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>Struct template get_hash_key_of_value</title> +<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css"> +<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="get_hash_void__T_idm30686.html" title="Struct template get_hash<void, T>"> +<link rel="next" href="get_hash_key_of_v_idm30700.html" title="Struct template get_hash_key_of_value<void, T>"> +<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> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td> +<td align="center"><a href="../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="get_hash_void__T_idm30686.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="get_hash_key_of_v_idm30700.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.intrusive.get_hash_key_of_value"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Struct template get_hash_key_of_value</span></h2> +<p>boost::intrusive::get_hash_key_of_value</p> +</div> +<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> KeyOfValue<span class="special">,</span> <span class="keyword">typename</span> T<span class="special">></span> +<span class="keyword">struct</span> <a class="link" href="get_hash_key_of_value.html" title="Struct template get_hash_key_of_value">get_hash_key_of_value</a> <span class="special">{</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <span class="identifier">KeyOfValue</span> <a name="boost.intrusive.get_hash_key_of_value.type"></a><span class="identifier">type</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +</div> +<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> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="get_hash_void__T_idm30686.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="get_hash_key_of_v_idm30700.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/doc/html/boost/intrusive/get_hash_void__T_idm30686.html b/doc/html/boost/intrusive/get_hash_void__T_idm30686.html new file mode 100644 index 0000000000..7d024ac4fa --- /dev/null +++ b/doc/html/boost/intrusive/get_hash_void__T_idm30686.html @@ -0,0 +1,52 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>Struct template get_hash<void, T></title> +<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css"> +<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="get_hash.html" title="Struct template get_hash"> +<link rel="next" href="get_hash_key_of_value.html" title="Struct template get_hash_key_of_value"> +<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> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td> +<td align="center"><a href="../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="get_hash.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="get_hash_key_of_value.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.intrusive.get_hash_void,_T_idm30686"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Struct template get_hash<void, T></span></h2> +<p>boost::intrusive::get_hash<void, T></p> +</div> +<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">struct</span> <a class="link" href="get_hash_void__T_idm30686.html" title="Struct template get_hash<void, T>">get_hash</a><span class="special"><</span><span class="keyword">void</span><span class="special">,</span> <span class="identifier">T</span><span class="special">></span> <span class="special">{</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash</span><span class="special"><</span> <span class="identifier">T</span> <span class="special">></span> <a name="boost.intrusive.get_hash_void,_T_idm30686.type"></a><span class="identifier">type</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +</div> +<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> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="get_hash.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="get_hash_key_of_value.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/doc/html/boost/intrusive/get_hashtable_siz_idm30709.html b/doc/html/boost/intrusive/get_hashtable_siz_idm30709.html new file mode 100644 index 0000000000..540f0836c9 --- /dev/null +++ b/doc/html/boost/intrusive/get_hashtable_siz_idm30709.html @@ -0,0 +1,54 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>Struct template get_hashtable_size_wrapper_bucket</title> +<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css"> +<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="get_hash_key_of_v_idm30700.html" title="Struct template get_hash_key_of_value<void, T>"> +<link rel="next" href="get_hashtable_siz_idm30721.html" title="Struct template get_hashtable_size_wrapper_internal"> +<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> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td> +<td align="center"><a href="../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="get_hash_key_of_v_idm30700.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="get_hashtable_siz_idm30721.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.intrusive.get_hashtable_siz_idm30709"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Struct template get_hashtable_size_wrapper_bucket</span></h2> +<p>boost::intrusive::get_hashtable_size_wrapper_bucket</p> +</div> +<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> ValueTraits<span class="special">,</span> <span class="keyword">typename</span> VoidOrKeyOfValue<span class="special">,</span> + <span class="keyword">typename</span> VoidOrKeyHash<span class="special">,</span> <span class="keyword">typename</span> VoidOrKeyEqual<span class="special">,</span> + <span class="keyword">typename</span> BucketTraits<span class="special">,</span> <span class="keyword">typename</span> SizeType<span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> BoolFlags<span class="special">></span> +<span class="keyword">struct</span> <a class="link" href="get_hashtable_siz_idm30709.html" title="Struct template get_hashtable_size_wrapper_bucket">get_hashtable_size_wrapper_bucket</a> <span class="special">{</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <span class="identifier">hashtable_size_wrapper</span><span class="special"><</span> <span class="identifier">bucket_hash_equal_t</span><span class="special"><</span> <span class="identifier">ValueTraits</span><span class="special">,</span> <span class="identifier">VoidOrKeyOfValue</span><span class="special">,</span> <span class="identifier">VoidOrKeyHash</span><span class="special">,</span> <span class="identifier">VoidOrKeyEqual</span><span class="special">,</span> <span class="identifier">BucketTraits</span><span class="special">,</span> <span class="number">0</span> <span class="special">!=</span><span class="special">(</span><span class="identifier">BoolFlags</span> <span class="special">&</span><span class="identifier">hash_bool_flags</span><span class="special">::</span><span class="identifier">linear_buckets_pos</span><span class="special">)</span><span class="special">,</span> <span class="number">0</span> <span class="special">!=</span><span class="special">(</span><span class="identifier">BoolFlags</span> <span class="special">&</span><span class="identifier">hash_bool_flags</span><span class="special">::</span><span class="identifier">cache_begin_pos</span><span class="special">)</span> <span class="special">></span><span class="special">,</span> <span class="identifier">SizeType</span><span class="special">,</span><span class="special">(</span><span class="identifier">BoolFlags</span> <span class="special">&</span><span class="identifier">hash_bool_flags</span><span class="special">::</span><span class="identifier">incremental_pos</span><span class="special">)</span> <span class="special">!=</span><span class="number">0</span><span class="special">||</span><span class="special">(</span><span class="identifier">BoolFlags</span> <span class="special">&</span><span class="identifier">hash_bool_flags</span><span class="special">::</span><span class="identifier">fastmod_buckets_pos</span><span class="special">)</span> <span class="special">!=</span><span class="number">0</span> <span class="special">></span> <a name="boost.intrusive.get_hashtable_siz_idm30709.type"></a><span class="identifier">type</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +</div> +<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> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="get_hash_key_of_v_idm30700.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="get_hashtable_siz_idm30721.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/doc/html/boost/intrusive/get_hashtable_siz_idm30721.html b/doc/html/boost/intrusive/get_hashtable_siz_idm30721.html new file mode 100644 index 0000000000..243850cb58 --- /dev/null +++ b/doc/html/boost/intrusive/get_hashtable_siz_idm30721.html @@ -0,0 +1,54 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>Struct template get_hashtable_size_wrapper_internal</title> +<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css"> +<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="get_hashtable_siz_idm30709.html" title="Struct template get_hashtable_size_wrapper_bucket"> +<link rel="next" href="group_functions.html" title="Struct template group_functions"> +<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> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td> +<td align="center"><a href="../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="get_hashtable_siz_idm30709.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="group_functions.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.intrusive.get_hashtable_siz_idm30721"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Struct template get_hashtable_size_wrapper_internal</span></h2> +<p>boost::intrusive::get_hashtable_size_wrapper_internal</p> +</div> +<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> ValueTraits<span class="special">,</span> <span class="keyword">typename</span> VoidOrKeyOfValue<span class="special">,</span> + <span class="keyword">typename</span> VoidOrKeyHash<span class="special">,</span> <span class="keyword">typename</span> VoidOrKeyEqual<span class="special">,</span> + <span class="keyword">typename</span> BucketTraits<span class="special">,</span> <span class="keyword">typename</span> SizeType<span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> BoolFlags<span class="special">></span> +<span class="keyword">struct</span> <a class="link" href="get_hashtable_siz_idm30721.html" title="Struct template get_hashtable_size_wrapper_internal">get_hashtable_size_wrapper_internal</a> <span class="special">{</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <span class="identifier">hashtable_size_wrapper</span><span class="special"><</span> <span class="identifier">hashdata_internal</span><span class="special"><</span> <span class="identifier">ValueTraits</span><span class="special">,</span> <span class="identifier">VoidOrKeyOfValue</span><span class="special">,</span> <span class="identifier">VoidOrKeyHash</span><span class="special">,</span> <span class="identifier">VoidOrKeyEqual</span><span class="special">,</span> <span class="identifier">BucketTraits</span><span class="special">,</span> <span class="identifier">SizeType</span><span class="special">,</span> <span class="identifier">BoolFlags</span> <span class="special">&</span><span class="special">~</span><span class="special">(</span><span class="identifier">hash_bool_flags</span><span class="special">::</span><span class="identifier">constant_time_size_pos</span><span class="special">)</span> <span class="special">></span><span class="special">,</span> <span class="identifier">SizeType</span><span class="special">,</span><span class="special">(</span><span class="identifier">BoolFlags</span> <span class="special">&</span><span class="identifier">hash_bool_flags</span><span class="special">::</span><span class="identifier">constant_time_size_pos</span><span class="special">)</span> <span class="special">!=</span><span class="number">0</span> <span class="special">></span> <a name="boost.intrusive.get_hashtable_siz_idm30721.type"></a><span class="identifier">type</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +</div> +<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> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="get_hashtable_siz_idm30709.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="group_functions.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/doc/html/boost/intrusive/get_pare_idm45971714128384.html b/doc/html/boost/intrusive/get_parent_from_m_idm34892.html index a97f5f1edd..d13899abc2 100644 --- a/doc/html/boost/intrusive/get_pare_idm45971714128384.html +++ b/doc/html/boost/intrusive/get_parent_from_m_idm34892.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.parent_from_member_hpp" title="Header <boost/intrusive/parent_from_member.hpp>"> -<link rel="prev" href="../../BOOST_IN_idm45971714136448.html" title="Macro BOOST_INTRUSIVE_OPTION_CONSTANT"> -<link rel="next" href="get_pare_idm45971714124112.html" title="Function template get_parent_from_member"> +<link rel="prev" href="../../BOOST_INTRUSIVE_O_idm34875.html" title="Macro BOOST_INTRUSIVE_OPTION_CONSTANT"> +<link rel="next" href="get_parent_from_m_idm34903.html" title="Function template get_parent_from_member"> +<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,37 +22,34 @@ </tr></table> <hr> <div class="spirit-nav"> -<a accesskey="p" href="../../BOOST_IN_idm45971714136448.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.parent_from_member_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="get_pare_idm45971714124112.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +<a accesskey="p" href="../../BOOST_INTRUSIVE_O_idm34875.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.parent_from_member_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="get_parent_from_m_idm34903.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> </div> <div class="refentry"> -<a name="boost.intrusive.get_pare_idm45971714128384"></a><div class="titlepage"></div> +<a name="boost.intrusive.get_parent_from_m_idm34892"></a><div class="titlepage"></div> <div class="refnamediv"> <h2><span class="refentrytitle">Function template get_parent_from_member</span></h2> <p>boost::intrusive::get_parent_from_member</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.parent_from_member_hpp" title="Header <boost/intrusive/parent_from_member.hpp>">boost/intrusive/parent_from_member.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.parent_from_member_hpp" title="Header <boost/intrusive/parent_from_member.hpp>">boost/intrusive/parent_from_member.hpp</a>> </span> <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Parent<span class="special">,</span> <span class="keyword">typename</span> Member<span class="special">></span> <span class="identifier">Parent</span> <span class="special">*</span> <span class="identifier">get_parent_from_member</span><span class="special">(</span><span class="identifier">Member</span> <span class="special">*</span> member<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Member</span> <span class="identifier">Parent</span><span class="special">::</span><span class="special">*</span> ptr_to_member<span class="special">)</span><span class="special">;</span></pre></div> <div class="refsect1"> -<a name="id-1.3.20.42.23.3.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.23.3.4"></a><h2>Description</h2> <p>Given a pointer to a member and its corresponding pointer to data member, this function returns the pointer of the parent containing that member. Note: this function does not work with pointer to members that rely on virtual inheritance. </p> </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="../../BOOST_IN_idm45971714136448.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.parent_from_member_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="get_pare_idm45971714124112.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +<a accesskey="p" href="../../BOOST_INTRUSIVE_O_idm34875.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.parent_from_member_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="get_parent_from_m_idm34903.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> </div> </body> </html> diff --git a/doc/html/boost/intrusive/get_pare_idm45971714124112.html b/doc/html/boost/intrusive/get_parent_from_m_idm34903.html index 87f4f14c76..18677c5c71 100644 --- a/doc/html/boost/intrusive/get_pare_idm45971714124112.html +++ b/doc/html/boost/intrusive/get_parent_from_m_idm34903.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.parent_from_member_hpp" title="Header <boost/intrusive/parent_from_member.hpp>"> -<link rel="prev" href="get_pare_idm45971714128384.html" title="Function template get_parent_from_member"> +<link rel="prev" href="get_parent_from_m_idm34892.html" title="Function template get_parent_from_member"> <link rel="next" href="max_pointer_plus_bits.html" title="Struct template max_pointer_plus_bits"> +<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,16 +22,16 @@ </tr></table> <hr> <div class="spirit-nav"> -<a accesskey="p" href="get_pare_idm45971714128384.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.parent_from_member_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="max_pointer_plus_bits.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +<a accesskey="p" href="get_parent_from_m_idm34892.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.parent_from_member_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="max_pointer_plus_bits.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> </div> <div class="refentry"> -<a name="boost.intrusive.get_pare_idm45971714124112"></a><div class="titlepage"></div> +<a name="boost.intrusive.get_parent_from_m_idm34903"></a><div class="titlepage"></div> <div class="refnamediv"> <h2><span class="refentrytitle">Function template get_parent_from_member</span></h2> <p>boost::intrusive::get_parent_from_member</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.parent_from_member_hpp" title="Header <boost/intrusive/parent_from_member.hpp>">boost/intrusive/parent_from_member.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.parent_from_member_hpp" title="Header <boost/intrusive/parent_from_member.hpp>">boost/intrusive/parent_from_member.hpp</a>> </span> <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Parent<span class="special">,</span> <span class="keyword">typename</span> Member<span class="special">></span> @@ -38,21 +39,18 @@ <span class="identifier">get_parent_from_member</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">Member</span> <span class="special">*</span> member<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Member</span> <span class="identifier">Parent</span><span class="special">::</span><span class="special">*</span> ptr_to_member<span class="special">)</span><span class="special">;</span></pre></div> <div class="refsect1"> -<a name="id-1.3.20.42.23.4.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.23.4.4"></a><h2>Description</h2> <p>Given a const pointer to a member and its corresponding const pointer to data member, this function returns the const pointer of the parent containing that member. Note: this function does not work with pointer to members that rely on virtual inheritance. </p> </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="get_pare_idm45971714128384.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.parent_from_member_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="max_pointer_plus_bits.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +<a accesskey="p" href="get_parent_from_m_idm34892.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.parent_from_member_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="max_pointer_plus_bits.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> </div> </body> </html> diff --git a/doc/html/boost/intrusive/group_functions.html b/doc/html/boost/intrusive/group_functions.html new file mode 100644 index 0000000000..2e4b0bb213 --- /dev/null +++ b/doc/html/boost/intrusive/group_functions.html @@ -0,0 +1,108 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>Struct template group_functions</title> +<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css"> +<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="get_hashtable_siz_idm30721.html" title="Struct template get_hashtable_size_wrapper_internal"> +<link rel="next" href="hash_bool_flags.html" title="Struct hash_bool_flags"> +<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> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td> +<td align="center"><a href="../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="get_hashtable_siz_idm30721.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="hash_bool_flags.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.intrusive.group_functions"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Struct template group_functions</span></h2> +<p>boost::intrusive::group_functions</p> +</div> +<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> NodeTraits<span class="special">></span> +<span class="keyword">struct</span> <a class="link" href="group_functions.html" title="Struct template group_functions">group_functions</a> <span class="special">{</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <span class="identifier">NodeTraits</span> <a name="boost.intrusive.group_functions.node_traits"></a><span class="identifier">node_traits</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">unordered_group_adapter</span><span class="special"><</span> <span class="identifier">node_traits</span> <span class="special">></span> <a name="boost.intrusive.group_functions.group_traits"></a><span class="identifier">group_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_ptr</span> <a name="boost.intrusive.group_functions.node_ptr"></a><span class="identifier">node_ptr</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.group_functions.node"></a><span class="identifier">node</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">reduced_slist_node_traits</span><span class="special"><</span> <span class="identifier">node_traits</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> <a name="boost.intrusive.group_functions.reduced_node_traits"></a><span class="identifier">reduced_node_traits</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">reduced_node_traits</span><span class="special">::</span><span class="identifier">node_ptr</span> <a name="boost.intrusive.group_functions.slist_node_ptr"></a><span class="identifier">slist_node_ptr</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">reduced_node_traits</span><span class="special">::</span><span class="identifier">node</span> <a name="boost.intrusive.group_functions.slist_node"></a><span class="identifier">slist_node</span><span class="special">;</span> + <span class="keyword">typedef</span> <a class="link" href="circular_slist_algorithms.html" title="Class template circular_slist_algorithms">circular_slist_algorithms</a><span class="special"><</span> <span class="identifier">group_traits</span> <span class="special">></span> <a name="boost.intrusive.group_functions.group_algorithms"></a><span class="identifier">group_algorithms</span><span class="special">;</span> + <span class="keyword">typedef</span> <a class="link" href="circular_slist_algorithms.html" title="Class template circular_slist_algorithms">circular_slist_algorithms</a><span class="special"><</span> <span class="identifier">node_traits</span> <span class="special">></span> <a name="boost.intrusive.group_functions.node_algorithms"></a><span class="identifier">node_algorithms</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="group_functions.html#idm30756-bb">public static functions</a></span> + <span class="keyword">static</span> <span class="identifier">slist_node_ptr</span> + <a class="link" href="group_functions.html#idm30757-bb"><span class="identifier">get_bucket_before_begin</span></a><span class="special">(</span><span class="identifier">slist_node_ptr</span><span class="special">,</span> <span class="identifier">slist_node_ptr</span><span class="special">,</span> <span class="identifier">slist_node_ptr</span><span class="special">,</span> + <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">slist_node_ptr</span> + <a class="link" href="group_functions.html#idm30768-bb"><span class="identifier">get_bucket_before_begin</span></a><span class="special">(</span><span class="identifier">slist_node_ptr</span><span class="special">,</span> <span class="identifier">slist_node_ptr</span><span class="special">,</span> <span class="identifier">slist_node_ptr</span><span class="special">,</span> + <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="group_functions.html#idm30779-bb"><span class="identifier">get_prev_to_first_in_group</span></a><span class="special">(</span><span class="identifier">slist_node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="group_functions.html#idm30785-bb"><span class="identifier">erase_from_group</span></a><span class="special">(</span><span class="identifier">slist_node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="group_functions.html#idm30794-bb"><span class="identifier">erase_from_group</span></a><span class="special">(</span><span class="identifier">slist_node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="../interprocess/interprocess_mutex.html#idm30803-bb"><span class="identifier">get_last_in_group</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="group_functions.html#idm30810-bb"><span class="identifier">get_last_in_group</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="group_functions.html#idm30817-bb"><span class="identifier">get_first_in_group</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="group_functions.html#idm30824-bb"><span class="identifier">get_first_in_group</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">bool</span> <a class="link" href="group_functions.html#idm30831-bb"><span class="identifier">is_first_in_group</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="group_functions.html#idm30835-bb"><span class="identifier">insert_in_group</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="group_functions.html#idm30844-bb"><span class="identifier">insert_in_group</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="../interprocess/interprocess_recu_idm30848.html#idm30853-bb"><span class="identifier">split_group</span></a><span class="special">(</span><span class="identifier">node_ptr</span> <span class="keyword">const</span><span class="special">)</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="id-1.3.18.42.14.19.4"></a><h2>Description</h2> +<div class="refsect2"> +<a name="id-1.3.18.42.14.19.4.2"></a><h3> +<a name="idm30756-bb"></a><code class="computeroutput">group_functions</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">slist_node_ptr</span> +<a name="idm30757-bb"></a><span class="identifier">get_bucket_before_begin</span><span class="special">(</span><span class="identifier">slist_node_ptr</span> bucket_beg<span class="special">,</span> <span class="identifier">slist_node_ptr</span> bucket_last<span class="special">,</span> + <span class="identifier">slist_node_ptr</span> sp<span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">slist_node_ptr</span> +<a name="idm30768-bb"></a><span class="identifier">get_bucket_before_begin</span><span class="special">(</span><span class="identifier">slist_node_ptr</span> bucket_beg<span class="special">,</span> <span class="identifier">slist_node_ptr</span> bucket_last<span class="special">,</span> + <span class="identifier">slist_node_ptr</span> sp<span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">node_ptr</span> +<a name="idm30779-bb"></a><span class="identifier">get_prev_to_first_in_group</span><span class="special">(</span><span class="identifier">slist_node_ptr</span> bucket_node<span class="special">,</span> + <span class="identifier">node_ptr</span> first_in_group<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm30785-bb"></a><span class="identifier">erase_from_group</span><span class="special">(</span><span class="identifier">slist_node_ptr</span> end_ptr<span class="special">,</span> <span class="identifier">node_ptr</span> to_erase_ptr<span class="special">,</span> + <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm30794-bb"></a><span class="identifier">erase_from_group</span><span class="special">(</span><span class="identifier">slist_node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">node_ptr</span> <a name="idm30803-bb"></a><span class="identifier">get_last_in_group</span><span class="special">(</span><span class="identifier">node_ptr</span> first_in_group<span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">node_ptr</span> <a name="idm30810-bb"></a><span class="identifier">get_last_in_group</span><span class="special">(</span><span class="identifier">node_ptr</span> n<span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">node_ptr</span> <a name="idm30817-bb"></a><span class="identifier">get_first_in_group</span><span class="special">(</span><span class="identifier">node_ptr</span> n<span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">node_ptr</span> <a name="idm30824-bb"></a><span class="identifier">get_first_in_group</span><span class="special">(</span><span class="identifier">node_ptr</span> n<span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">bool</span> <a name="idm30831-bb"></a><span class="identifier">is_first_in_group</span><span class="special">(</span><span class="identifier">node_ptr</span> ptr<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm30835-bb"></a><span class="identifier">insert_in_group</span><span class="special">(</span><span class="identifier">node_ptr</span> first_in_group<span class="special">,</span> <span class="identifier">node_ptr</span> n<span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm30844-bb"></a><span class="identifier">insert_in_group</span><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">node_ptr</span> <a name="idm30853-bb"></a><span class="identifier">split_group</span><span class="special">(</span><span class="identifier">node_ptr</span> <span class="keyword">const</span> new_first<span class="special">)</span><span class="special">;</span></pre></li> +</ol></div> +</div> +</div> +</div> +<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> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="get_hashtable_siz_idm30721.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="hash_bool_flags.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/doc/html/boost/intrusive/hash.html b/doc/html/boost/intrusive/hash.html index c9c0bfdb62..0deacf515a 100644 --- a/doc/html/boost/intrusive/hash.html +++ b/doc/html/boost/intrusive/hash.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.options_hpp" title="Header <boost/intrusive/options.hpp>"> <link rel="prev" href="function_hook.html" title="Struct template function_hook"> <link rel="next" href="header_holder_type.html" title="Struct template header_holder_type"> +<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> @@ -29,25 +30,22 @@ <h2><span class="refentrytitle">Struct template hash</span></h2> <p>boost::intrusive::hash</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.options_hpp" title="Header <boost/intrusive/options.hpp>">boost/intrusive/options.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.options_hpp" title="Header <boost/intrusive/options.hpp>">boost/intrusive/options.hpp</a>> </span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Hash<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="hash.html" title="Struct template hash">hash</a> <span class="special">{</span> <span class="special">}</span><span class="special">;</span></pre></div> <div class="refsect1"> -<a name="id-1.3.20.42.21.13.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.21.14.4"></a><h2>Description</h2> <p>This option setter specifies the hash functor for the value type </p> </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="function_hook.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.options_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="header_holder_type.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/hash_bool_flags.html b/doc/html/boost/intrusive/hash_bool_flags.html new file mode 100644 index 0000000000..81c2d8c47b --- /dev/null +++ b/doc/html/boost/intrusive/hash_bool_flags.html @@ -0,0 +1,60 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>Struct hash_bool_flags</title> +<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css"> +<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="group_functions.html" title="Struct template group_functions"> +<link rel="next" href="hash_key_equal.html" title="Struct template hash_key_equal"> +<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> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td> +<td align="center"><a href="../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="group_functions.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="hash_key_equal.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.intrusive.hash_bool_flags"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Struct hash_bool_flags</span></h2> +<p>boost::intrusive::hash_bool_flags</p> +</div> +<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">struct</span> <a class="link" href="hash_bool_flags.html" title="Struct hash_bool_flags">hash_bool_flags</a> <span class="special">{</span> + + <span class="comment">// public data members</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">unique_keys_pos</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">constant_time_size_pos</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">power_2_buckets_pos</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">cache_begin_pos</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">compare_hash_pos</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">incremental_pos</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">linear_buckets_pos</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">fastmod_buckets_pos</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +</div> +<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> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="group_functions.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="hash_key_equal.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/doc/html/boost/intrusive/hash_key_equal.html b/doc/html/boost/intrusive/hash_key_equal.html new file mode 100644 index 0000000000..77dee0b1e3 --- /dev/null +++ b/doc/html/boost/intrusive/hash_key_equal.html @@ -0,0 +1,51 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>Struct template hash_key_equal</title> +<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css"> +<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="hash_bool_flags.html" title="Struct hash_bool_flags"> +<link rel="next" href="hash_key_hash.html" title="Struct template hash_key_hash"> +<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> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td> +<td align="center"><a href="../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="hash_bool_flags.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="hash_key_hash.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.intrusive.hash_key_equal"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Struct template hash_key_equal</span></h2> +<p>boost::intrusive::hash_key_equal</p> +</div> +<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">typename</span> VoidOrKeyOfValue<span class="special">,</span> <span class="keyword">typename</span> VoidOrKeyEqual<span class="special">></span> +<span class="keyword">struct</span> <a class="link" href="hash_key_equal.html" title="Struct template hash_key_equal">hash_key_equal</a> <span class="special">:</span> <span class="keyword">public</span> boost::intrusive::get_equal_to< VoidOrKeyEqual, hash_key_types_base< T, VoidOrKeyOfValue >::key_type > +<span class="special">{</span> +<span class="special">}</span><span class="special">;</span></pre></div> +</div> +<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> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="hash_bool_flags.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="hash_key_hash.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/doc/html/boost/intrusive/hash_key_hash.html b/doc/html/boost/intrusive/hash_key_hash.html new file mode 100644 index 0000000000..c76eda3755 --- /dev/null +++ b/doc/html/boost/intrusive/hash_key_hash.html @@ -0,0 +1,51 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>Struct template hash_key_hash</title> +<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css"> +<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="hash_key_equal.html" title="Struct template hash_key_equal"> +<link rel="next" href="hash_key_types_base.html" title="Struct template hash_key_types_base"> +<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> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td> +<td align="center"><a href="../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="hash_key_equal.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="hash_key_types_base.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.intrusive.hash_key_hash"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Struct template hash_key_hash</span></h2> +<p>boost::intrusive::hash_key_hash</p> +</div> +<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">typename</span> VoidOrKeyOfValue<span class="special">,</span> <span class="keyword">typename</span> VoidOrKeyHash<span class="special">></span> +<span class="keyword">struct</span> <a class="link" href="hash_key_hash.html" title="Struct template hash_key_hash">hash_key_hash</a> <span class="special">:</span> <span class="keyword">public</span> boost::intrusive::get_hash< VoidOrKeyHash, hash_key_types_base< T, VoidOrKeyOfValue >::key_type > +<span class="special">{</span> +<span class="special">}</span><span class="special">;</span></pre></div> +</div> +<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> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="hash_key_equal.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="hash_key_types_base.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/doc/html/boost/intrusive/hash_key_types_base.html b/doc/html/boost/intrusive/hash_key_types_base.html new file mode 100644 index 0000000000..221c3ef8f0 --- /dev/null +++ b/doc/html/boost/intrusive/hash_key_types_base.html @@ -0,0 +1,53 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>Struct template hash_key_types_base</title> +<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css"> +<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="hash_key_hash.html" title="Struct template hash_key_hash"> +<link rel="next" href="hashdata_internal.html" title="Struct template hashdata_internal"> +<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> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td> +<td align="center"><a href="../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="hash_key_hash.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="hashdata_internal.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.intrusive.hash_key_types_base"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Struct template hash_key_types_base</span></h2> +<p>boost::intrusive::hash_key_types_base</p> +</div> +<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">typename</span> VoidOrKeyOfValue<span class="special">></span> +<span class="keyword">struct</span> <a class="link" href="hash_key_types_base.html" title="Struct template hash_key_types_base">hash_key_types_base</a> <span class="special">{</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <span class="identifier">get_hash_key_of_value</span><span class="special"><</span> <span class="identifier">VoidOrKeyOfValue</span><span class="special">,</span> <span class="identifier">T</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> <a name="boost.intrusive.hash_key_types_base.key_of_value"></a><span class="identifier">key_of_value</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">key_of_value</span><span class="special">::</span><span class="identifier">type</span> <a name="boost.intrusive.hash_key_types_base.key_type"></a><span class="identifier">key_type</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +</div> +<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> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="hash_key_hash.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="hashdata_internal.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/doc/html/boost/intrusive/hashdata_internal.html b/doc/html/boost/intrusive/hashdata_internal.html new file mode 100644 index 0000000000..d1551ec11c --- /dev/null +++ b/doc/html/boost/intrusive/hashdata_internal.html @@ -0,0 +1,218 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>Struct template hashdata_internal</title> +<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css"> +<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="hash_key_types_base.html" title="Struct template hash_key_types_base"> +<link rel="next" href="hashtable.html" title="Class template hashtable"> +<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> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td> +<td align="center"><a href="../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="hash_key_types_base.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.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.intrusive.hashdata_internal"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Struct template hashdata_internal</span></h2> +<p>boost::intrusive::hashdata_internal</p> +</div> +<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> ValueTraits<span class="special">,</span> <span class="keyword">typename</span> VoidOrKeyOfValue<span class="special">,</span> + <span class="keyword">typename</span> VoidOrKeyHash<span class="special">,</span> <span class="keyword">typename</span> VoidOrKeyEqual<span class="special">,</span> + <span class="keyword">typename</span> BucketTraits<span class="special">,</span> <span class="keyword">typename</span> SizeType<span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> BoolFlags<span class="special">></span> +<span class="keyword">struct</span> <a class="link" href="hashdata_internal.html" title="Struct template hashdata_internal">hashdata_internal</a> <span class="special">:</span> <span class="keyword">public</span> boost::intrusive::hashtable_size_wrapper< DeriveFrom, SizeType, bool > +<span class="special">{</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <span class="identifier">get_hashtable_size_wrapper_bucket</span><span class="special"><</span> <span class="identifier">ValueTraits</span><span class="special">,</span> <span class="identifier">VoidOrKeyOfValue</span><span class="special">,</span> <span class="identifier">VoidOrKeyHash</span><span class="special">,</span> <span class="identifier">VoidOrKeyEqual</span><span class="special">,</span> <span class="identifier">BucketTraits</span><span class="special">,</span> <span class="identifier">SizeType</span><span class="special">,</span> <span class="identifier">BoolFlags</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> <a name="boost.intrusive.hashdata_internal.split_bucket_hash_equal_t"></a><span class="identifier">split_bucket_hash_equal_t</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">split_bucket_hash_equal_t</span><span class="special">::</span><span class="identifier">key_equal</span> <a name="boost.intrusive.hashdata_internal.key_equal"></a><span class="identifier">key_equal</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">split_bucket_hash_equal_t</span><span class="special">::</span><span class="identifier">hasher</span> <a name="boost.intrusive.hashdata_internal.hasher"></a><span class="identifier">hasher</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">bucket_plus_vtraits</span><span class="special"><</span> <span class="identifier">ValueTraits</span><span class="special">,</span> <span class="identifier">BucketTraits</span><span class="special">,</span> <a class="link" href="linear_buckets.html" title="Struct template linear_buckets">linear_buckets</a> <span class="special">></span> <a name="boost.intrusive.hashdata_internal.bucket_plus_vtraits_t"></a><span class="identifier">bucket_plus_vtraits_t</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">SizeType</span> <a name="boost.intrusive.hashdata_internal.size_type"></a><span class="identifier">size_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">split_bucket_hash_equal_t</span><span class="special">::</span><span class="identifier">size_traits</span> <a name="boost.intrusive.hashdata_internal.split_traits"></a><span class="identifier">split_traits</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">bucket_plus_vtraits_t</span><span class="special">::</span><span class="identifier">bucket_ptr</span> <a name="boost.intrusive.hashdata_internal.bucket_ptr"></a><span class="identifier">bucket_ptr</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">bucket_plus_vtraits_t</span><span class="special">::</span><span class="identifier">const_value_traits_ptr</span> <a name="boost.intrusive.hashdata_internal.const_value_traits_ptr"></a><span class="identifier">const_value_traits_ptr</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">bucket_plus_vtraits_t</span><span class="special">::</span><span class="identifier">siterator</span> <a name="boost.intrusive.hashdata_internal.siterator"></a><span class="identifier">siterator</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">bucket_plus_vtraits_t</span><span class="special">::</span><span class="identifier">bucket_traits</span> <a name="boost.intrusive.hashdata_internal.bucket_traits"></a><span class="identifier">bucket_traits</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">bucket_plus_vtraits_t</span><span class="special">::</span><span class="identifier">value_traits</span> <a name="boost.intrusive.hashdata_internal.value_traits"></a><span class="identifier">value_traits</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">bucket_plus_vtraits_t</span><span class="special">::</span><span class="identifier">bucket_type</span> <a name="boost.intrusive.hashdata_internal.bucket_type"></a><span class="identifier">bucket_type</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.hashdata_internal.value_type"></a><span class="identifier">value_type</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.hashdata_internal.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.hashdata_internal.const_pointer"></a><span class="identifier">const_pointer</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.hashdata_internal.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.hashdata_internal.const_reference"></a><span class="identifier">const_reference</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.hashdata_internal.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.hashdata_internal.node"></a><span class="identifier">node</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">node_traits</span><span class="special">::</span><span class="identifier">node_ptr</span> <a name="boost.intrusive.hashdata_internal.node_ptr"></a><span class="identifier">node_ptr</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">node_traits</span><span class="special">::</span><span class="identifier">const_node_ptr</span> <a name="boost.intrusive.hashdata_internal.const_node_ptr"></a><span class="identifier">const_node_ptr</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">bucket_plus_vtraits_t</span><span class="special">::</span><span class="identifier">slist_node_algorithms</span> <a name="boost.intrusive.hashdata_internal.slist_node_algorithms"></a><span class="identifier">slist_node_algorithms</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">bucket_plus_vtraits_t</span><span class="special">::</span><span class="identifier">slist_node_ptr</span> <a name="boost.intrusive.hashdata_internal.slist_node_ptr"></a><span class="identifier">slist_node_ptr</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">hash_key_types_base</span><span class="special"><</span> <span class="keyword">typename</span> <span class="identifier">ValueTraits</span><span class="special">::</span><span class="identifier">value_type</span><span class="special">,</span> <span class="identifier">VoidOrKeyOfValue</span> <span class="special">></span> <a name="boost.intrusive.hashdata_internal.hash_types_base"></a><span class="identifier">hash_types_base</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.hashdata_internal.key_of_value"></a><span class="identifier">key_of_value</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.hashdata_internal.store_hash_t"></a><span class="identifier">store_hash_t</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.hashdata_internal.local_iterator"></a><span class="identifier">local_iterator</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.hashdata_internal.const_local_iterator"></a><span class="identifier">const_local_iterator</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.hashdata_internal.linear_buckets_t"></a><span class="identifier">linear_buckets_t</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">bucket_plus_vtraits_t</span><span class="special">::</span><span class="identifier">iterator</span> <a name="boost.intrusive.hashdata_internal.iterator"></a><span class="identifier">iterator</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">bucket_plus_vtraits_t</span><span class="special">::</span><span class="identifier">const_iterator</span> <a name="boost.intrusive.hashdata_internal.const_iterator"></a><span class="identifier">const_iterator</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.hashdata_internal.fastmod_buckets_t"></a><span class="identifier">fastmod_buckets_t</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="hashdata_internal.html#boost.intrusive.hashdata_internalconstruct-copy-destruct">construct/copy/destruct</a></span> + <a class="link" href="../interprocess/interprocess_upgr_idm31107.html#idm31123-bb"><span class="identifier">hashdata_internal</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ValueTraits</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">bucket_traits</span> <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="keyword">const</span> <span class="identifier">key_equal</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="hashdata_internal.html#idm31132-bb"><span class="identifier">hashdata_internal</span></a><span class="special">(</span><span class="identifier">hashdata_internal</span> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="hashdata_internal.html#idm31135-bb"><span class="special">~</span><span class="identifier">hashdata_internal</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="hashdata_internal.html#idm30991-bb">public member functions</a></span> + <span class="identifier">split_bucket_hash_equal_t</span><span class="special">::</span><span class="identifier">size_traits_t</span> <a class="link" href="../interprocess/interprocess_shar_idm30969.html#idm30992-bb"><span class="identifier">priv_split_traits</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="hashdata_internal.html#idm30994-bb"><span class="identifier">priv_clear_buckets</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="hashdata_internal.html#idm30996-bb"><span class="identifier">priv_clear_buckets_and_cache</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="hashdata_internal.html#idm30998-bb"><span class="identifier">priv_init_buckets_and_cache</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">SizeType</span> <a class="link" href="hashdata_internal.html#idm31000-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="keyword">void</span> <a class="link" href="../container/vector.html#idm31002-bb"><span class="identifier">split_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="hashdata_internal.html#idm31006-bb"><span class="identifier">inc_split_count</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="hashdata_internal.html#idm31008-bb"><span class="identifier">dec_split_count</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="../interprocess/interprocess_shar_idm30969.html#idm31010-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="special">!</span><span class="identifier">linear_buckets</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">const_iterator</span> <a class="link" href="hashdata_internal.html#idm31014-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="special">!</span><span class="identifier">linear_buckets</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="hashdata_internal.html#idm31018-bb"><span class="identifier">iterator_to</span></a><span class="special">(</span><span class="identifier">reference</span><span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span> + <span class="identifier">const_iterator</span> <a class="link" href="hashdata_internal.html#idm31025-bb"><span class="identifier">iterator_to</span></a><span class="special">(</span><span class="identifier">const_reference</span><span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">bucket_type</span> <span class="special">&</span> <a class="link" href="hashdata_internal.html#idm31032-bb"><span class="identifier">priv_hash_to_bucket</span></a><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">bucket_ptr</span> <a class="link" href="hashdata_internal.html#idm31036-bb"><span class="identifier">priv_hash_to_bucket_ptr</span></a><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">size_type</span> <a class="link" href="../interprocess/interprocess_shar_idm30969.html#idm31040-bb"><span class="identifier">priv_hash_to_nbucket</span></a><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">size_type</span> <a class="link" href="hashdata_internal.html#idm31044-bb"><span class="identifier">priv_hash_to_nbucket</span></a><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">size_type</span> <a class="link" href="hashdata_internal.html#idm31051-bb"><span class="identifier">priv_hash_to_nbucket</span></a><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="hashdata_internal.html#idm31059-bb"><span class="identifier">iterator_to</span></a><span class="special">(</span><span class="identifier">reference</span><span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">const_iterator</span> <a class="link" href="hashdata_internal.html#idm31066-bb"><span class="identifier">iterator_to</span></a><span class="special">(</span><span class="identifier">const_reference</span><span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></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="hashdata_internal.html#idm31073-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="../interprocess/interprocess_shar_idm30969.html#idm31077-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="hashdata_internal.html#idm31081-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="../container/vector.html#idm31083-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">bucket_ptr</span> <a class="link" href="hashdata_internal.html#idm31087-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="hashdata_internal.html#idm31089-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="hashdata_internal.html#idm31093-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="hashdata_internal.html#idm31097-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="../container/vector.html#idm31101-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="hashdata_internal.html#idm31105-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="hashdata_internal.html#idm31109-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="identifier">iterator</span> <a class="link" href="hashdata_internal.html#idm31113-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="hashdata_internal.html#idm31115-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="hashdata_internal.html#idm31117-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">hasher</span> <a class="link" href="hashdata_internal.html#idm31119-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="../container/vector.html#idm31121-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="comment">// <a class="link" href="hashdata_internal.html#idm31136-bb">public static functions</a></span> + <span class="keyword">static</span> <span class="identifier">SizeType</span> <a class="link" href="../container/vector.html#idm31137-bb"><span class="identifier">initial_split_from_bucket_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">static</span> <span class="identifier">SizeType</span> <a class="link" href="hashdata_internal.html#idm31141-bb"><span class="identifier">rehash_split_from_bucket_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">static</span> <span class="identifier">local_iterator</span> <a class="link" href="hashdata_internal.html#idm31145-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="hashdata_internal.html#idm31149-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="hashdata_internal.html#idm31153-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="../interprocess/interprocess_upgr_idm31107.html#idm31157-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">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">store_hash</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">bool</span> <span class="identifier">safemode_or_autounlink</span><span class="special">;</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> + <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">fastmod_buckets</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="id-1.3.18.42.14.24.4"></a><h2>Description</h2> +<div class="refsect2"> +<a name="id-1.3.18.42.14.24.4.2"></a><h3> +<a name="boost.intrusive.hashdata_internalconstruct-copy-destruct"></a><code class="computeroutput">hashdata_internal</code> + public + construct/copy/destruct</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"><pre class="literallayout"><a name="idm31123-bb"></a><span class="identifier">hashdata_internal</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ValueTraits</span> <span class="special">&</span> val_traits<span class="special">,</span> + <span class="keyword">const</span> <span class="identifier">bucket_traits</span> <span class="special">&</span> b_traits<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">hasher</span> <span class="special">&</span> h<span class="special">,</span> + <span class="keyword">const</span> <span class="identifier">key_equal</span> <span class="special">&</span> e<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><a name="idm31132-bb"></a><span class="identifier">hashdata_internal</span><span class="special">(</span><span class="identifier">hashdata_internal</span> <span class="special">&&</span> other<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><a name="idm31135-bb"></a><span class="special">~</span><span class="identifier">hashdata_internal</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre></li> +</ol></div> +</div> +<div class="refsect2"> +<a name="id-1.3.18.42.14.24.4.3"></a><h3> +<a name="idm30991-bb"></a><code class="computeroutput">hashdata_internal</code> public member functions</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"><pre class="literallayout"><span class="identifier">split_bucket_hash_equal_t</span><span class="special">::</span><span class="identifier">size_traits_t</span> <a name="idm30992-bb"></a><span class="identifier">priv_split_traits</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">void</span> <a name="idm30994-bb"></a><span class="identifier">priv_clear_buckets</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">void</span> <a name="idm30996-bb"></a><span class="identifier">priv_clear_buckets_and_cache</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">void</span> <a name="idm30998-bb"></a><span class="identifier">priv_init_buckets_and_cache</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="idm31000-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></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">void</span> <a name="idm31002-bb"></a><span class="identifier">split_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="idm31006-bb"></a><span class="identifier">inc_split_count</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="idm31008-bb"></a><span class="identifier">dec_split_count</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="identifier">iterator</span> <a name="idm31010-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><span class="special">!</span><span class="identifier">linear_buckets</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_iterator</span> +<a name="idm31014-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><span class="special">!</span><span class="identifier">linear_buckets</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm31018-bb"></a><span class="identifier">iterator_to</span><span class="special">(</span><span class="identifier">reference</span> value<span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm31025-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="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">bucket_type</span> <span class="special">&</span> <a name="idm31032-bb"></a><span class="identifier">priv_hash_to_bucket</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> hash_value<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">bucket_ptr</span> <a name="idm31036-bb"></a><span class="identifier">priv_hash_to_bucket_ptr</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> hash_value<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">size_type</span> <a name="idm31040-bb"></a><span class="identifier">priv_hash_to_nbucket</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> hash_value<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">size_type</span> <a name="idm31044-bb"></a><span class="identifier">priv_hash_to_nbucket</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> hash_value<span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">size_type</span> <a name="idm31051-bb"></a><span class="identifier">priv_hash_to_nbucket</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> hash_value<span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>fastmod_buckets_t </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm31059-bb"></a><span class="identifier">iterator_to</span><span class="special">(</span><span class="identifier">reference</span> value<span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm31066-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="emphasis"><em><span class="identifier">unspecified</span></em></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="identifier">local_iterator</span> <a name="idm31073-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_local_iterator</span> <a name="idm31077-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">size_type</span> <a name="idm31081-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">size_type</span> <a name="idm31083-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">bucket_ptr</span> <a name="idm31087-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">local_iterator</span> <a name="idm31089-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_local_iterator</span> <a name="idm31093-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_local_iterator</span> <a name="idm31097-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">local_iterator</span> <a name="idm31101-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_local_iterator</span> <a name="idm31105-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_local_iterator</span> <a name="idm31109-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm31113-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm31115-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm31117-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">hasher</span> <a name="idm31119-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">key_equal</span> <a name="idm31121-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></li> +</ol></div> +</div> +<div class="refsect2"> +<a name="id-1.3.18.42.14.24.4.4"></a><h3> +<a name="idm31136-bb"></a><code class="computeroutput">hashdata_internal</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">SizeType</span> <a name="idm31137-bb"></a><span class="identifier">initial_split_from_bucket_count</span><span class="special">(</span><span class="identifier">SizeType</span> bc<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">SizeType</span> <a name="idm31141-bb"></a><span class="identifier">rehash_split_from_bucket_count</span><span class="special">(</span><span class="identifier">SizeType</span> bc<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">local_iterator</span> <a name="idm31145-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></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">const_local_iterator</span> +<a name="idm31149-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></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">size_type</span> <a name="idm31153-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></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">size_type</span> <a name="idm31157-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></li> +</ol></div> +</div> +</div> +</div> +<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> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="hash_key_types_base.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.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> 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> diff --git a/doc/html/boost/intrusive/hashtable_defaults.html b/doc/html/boost/intrusive/hashtable_defaults.html new file mode 100644 index 0000000000..3b46182090 --- /dev/null +++ b/doc/html/boost/intrusive/hashtable_defaults.html @@ -0,0 +1,66 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>Struct hashtable_defaults</title> +<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css"> +<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="hashtable.html" title="Class template hashtable"> +<link rel="next" href="hashtable_equal_holder.html" title="Struct template hashtable_equal_holder"> +<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> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td> +<td align="center"><a href="../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="hashtable.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_equal_holder.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.intrusive.hashtable_defaults"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Struct hashtable_defaults</span></h2> +<p>boost::intrusive::hashtable_defaults</p> +</div> +<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">struct</span> <a class="link" href="hashtable_defaults.html" title="Struct hashtable_defaults">hashtable_defaults</a> <span class="special">{</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <span class="identifier">default_hashtable_hook_applier</span> <a name="boost.intrusive.hashtable_defaults.proto_value_traits"></a><span class="identifier">proto_value_traits</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a name="boost.intrusive.hashtable_defaults.size_type"></a><span class="identifier">size_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="keyword">void</span> <a name="boost.intrusive.hashtable_defaults.key_of_value"></a><span class="identifier">key_of_value</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="keyword">void</span> <a name="boost.intrusive.hashtable_defaults.equal"></a><span class="identifier">equal</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="keyword">void</span> <a name="boost.intrusive.hashtable_defaults.hash"></a><span class="identifier">hash</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">default_bucket_traits</span> <a name="boost.intrusive.hashtable_defaults.bucket_traits"></a><span class="identifier">bucket_traits</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">constant_time_size</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">cache_begin</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">bool</span> <span class="identifier">compare_hash</span><span class="special">;</span> + <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">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="special">}</span><span class="special">;</span></pre></div> +</div> +<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> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="hashtable.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_equal_holder.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/doc/html/boost/intrusive/hashtable_equal_holder.html b/doc/html/boost/intrusive/hashtable_equal_holder.html new file mode 100644 index 0000000000..d42cd63794 --- /dev/null +++ b/doc/html/boost/intrusive/hashtable_equal_holder.html @@ -0,0 +1,54 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>Struct template hashtable_equal_holder</title> +<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css"> +<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="hashtable_defaults.html" title="Struct hashtable_defaults"> +<link rel="next" href="hashtable_size_wrapper.html" title="Struct template hashtable_size_wrapper"> +<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> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td> +<td align="center"><a href="../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="hashtable_defaults.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_size_wrapper.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.intrusive.hashtable_equal_holder"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Struct template hashtable_equal_holder</span></h2> +<p>boost::intrusive::hashtable_equal_holder</p> +</div> +<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> ValueTraits<span class="special">,</span> <span class="keyword">typename</span> BucketTraits<span class="special">,</span> + <span class="keyword">typename</span> VoidOrKeyOfValue<span class="special">,</span> <span class="keyword">typename</span> VoidOrKeyEqual<span class="special">,</span> + <span class="keyword">bool</span> LinearBuckets<span class="special">></span> +<span class="keyword">struct</span> <a class="link" href="hashtable_equal_holder.html" title="Struct template hashtable_equal_holder">hashtable_equal_holder</a> <span class="special">{</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span> <a name="boost.intrusive.hashtable_equal_holder.type"></a><span class="identifier">type</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +</div> +<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> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="hashtable_defaults.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_size_wrapper.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/doc/html/boost/intrusive/hashtable_size_wr_idm32488.html b/doc/html/boost/intrusive/hashtable_size_wr_idm32488.html new file mode 100644 index 0000000000..10c48373b8 --- /dev/null +++ b/doc/html/boost/intrusive/hashtable_size_wr_idm32488.html @@ -0,0 +1,93 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>Struct template hashtable_size_wrapper<DeriveFrom, SizeType, false></title> +<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css"> +<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="hashtable_size_wrapper.html" title="Struct template hashtable_size_wrapper"> +<link rel="next" href="incremental_rehas_idm32534.html" title="Class template incremental_rehash_rollback"> +<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> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td> +<td align="center"><a href="../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="hashtable_size_wrapper.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="incremental_rehas_idm32534.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.intrusive.hashtable_size_wr_idm32488"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Struct template hashtable_size_wrapper<DeriveFrom, SizeType, false></span></h2> +<p>boost::intrusive::hashtable_size_wrapper<DeriveFrom, SizeType, false></p> +</div> +<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> DeriveFrom<span class="special">,</span> <span class="keyword">typename</span> SizeType<span class="special">></span> +<span class="keyword">struct</span> <a class="link" href="hashtable_size_wr_idm32488.html" title="Struct template hashtable_size_wrapper<DeriveFrom, SizeType, false>">hashtable_size_wrapper</a><span class="special"><</span><span class="identifier">DeriveFrom</span><span class="special">,</span> <span class="identifier">SizeType</span><span class="special">,</span> <span class="keyword">false</span><span class="special">></span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">DeriveFrom</span> <span class="special">{</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span> <a name="boost.intrusive.hashtable_size_wr_idm32488.size_traits"></a><span class="identifier">size_traits</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">size_traits</span> <a name="boost.intrusive.hashtable_size_wr_idm32488.size_traits_const_t"></a><span class="identifier">size_traits_const_t</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">size_traits</span> <a name="boost.intrusive.hashtable_size_wr_idm32488.size_traits_t"></a><span class="identifier">size_traits_t</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="hashtable_size_wr_idm32488.html#boost.intrusive.hashtable_size_wr_idm32488construct-copy-destruct">construct/copy/destruct</a></span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Base<span class="special">,</span> <span class="keyword">typename</span> Arg0<span class="special">,</span> <span class="keyword">typename</span> Arg1<span class="special">,</span> <span class="keyword">typename</span> Arg2<span class="special">></span> + <a class="link" href="hashtable_size_wr_idm32488.html#idm32517-bb"><span class="identifier">hashtable_size_wrapper</span></a><span class="special">(</span><span class="identifier">BOOST_FWD_REF</span><span class="special">(</span><span class="identifier">Base</span><span class="special">)</span><span class="special">,</span> <span class="identifier">BOOST_FWD_REF</span><span class="special">(</span><span class="identifier">Arg0</span><span class="special">)</span><span class="special">,</span> + <span class="identifier">BOOST_FWD_REF</span><span class="special">(</span><span class="identifier">Arg1</span><span class="special">)</span><span class="special">,</span> <span class="identifier">BOOST_FWD_REF</span><span class="special">(</span><span class="identifier">Arg2</span><span class="special">)</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="../interprocess/named_upgradable_mutex.html#idm32531-bb"><span class="identifier">hashtable_size_wrapper</span></a><span class="special">(</span><span class="identifier">hashtable_size_wrapper</span> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="hashtable_size_wr_idm32488.html#idm32504-bb">public member functions</a></span> + <span class="identifier">SizeType</span> <a class="link" href="hashtable_size_wr_idm32488.html#idm32505-bb"><span class="identifier">get_hashtable_size_wrapper_size</span></a><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_size_wr_idm32488.html#idm32507-bb"><span class="identifier">set_hashtable_size_wrapper_size</span></a><span class="special">(</span><span class="identifier">SizeType</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="../interprocess/named_upgradable_mutex.html#idm32511-bb"><span class="identifier">inc_hashtable_size_wrapper_size</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="hashtable_size_wr_idm32488.html#idm32513-bb"><span class="identifier">dec_hashtable_size_wrapper_size</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">size_traits</span> <a class="link" href="hashtable_size_wr_idm32488.html#idm32515-bb"><span class="identifier">priv_size_traits</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="id-1.3.18.42.14.29.4"></a><h2>Description</h2> +<div class="refsect2"> +<a name="id-1.3.18.42.14.29.4.2"></a><h3> +<a name="boost.intrusive.hashtable_size_wr_idm32488construct-copy-destruct"></a><code class="computeroutput">hashtable_size_wrapper</code> + public + construct/copy/destruct</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Base<span class="special">,</span> <span class="keyword">typename</span> Arg0<span class="special">,</span> <span class="keyword">typename</span> Arg1<span class="special">,</span> <span class="keyword">typename</span> Arg2<span class="special">></span> + <a name="idm32517-bb"></a><span class="identifier">hashtable_size_wrapper</span><span class="special">(</span><span class="identifier">BOOST_FWD_REF</span><span class="special">(</span><span class="identifier">Base</span><span class="special">)</span> base<span class="special">,</span> <span class="identifier">BOOST_FWD_REF</span><span class="special">(</span><span class="identifier">Arg0</span><span class="special">)</span> arg0<span class="special">,</span> + <span class="identifier">BOOST_FWD_REF</span><span class="special">(</span><span class="identifier">Arg1</span><span class="special">)</span> arg1<span class="special">,</span> <span class="identifier">BOOST_FWD_REF</span><span class="special">(</span><span class="identifier">Arg2</span><span class="special">)</span> arg2<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><a name="idm32531-bb"></a><span class="identifier">hashtable_size_wrapper</span><span class="special">(</span><span class="identifier">hashtable_size_wrapper</span> <span class="special">&&</span> other<span class="special">)</span><span class="special">;</span></pre></li> +</ol></div> +</div> +<div class="refsect2"> +<a name="id-1.3.18.42.14.29.4.3"></a><h3> +<a name="idm32504-bb"></a><code class="computeroutput">hashtable_size_wrapper</code> public member functions</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"><pre class="literallayout"><span class="identifier">SizeType</span> <a name="idm32505-bb"></a><span class="identifier">get_hashtable_size_wrapper_size</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">void</span> <a name="idm32507-bb"></a><span class="identifier">set_hashtable_size_wrapper_size</span><span class="special">(</span><span class="identifier">SizeType</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">void</span> <a name="idm32511-bb"></a><span class="identifier">inc_hashtable_size_wrapper_size</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">void</span> <a name="idm32513-bb"></a><span class="identifier">dec_hashtable_size_wrapper_size</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">size_traits</span> <a name="idm32515-bb"></a><span class="identifier">priv_size_traits</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre></li> +</ol></div> +</div> +</div> +</div> +<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> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="hashtable_size_wrapper.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="incremental_rehas_idm32534.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/doc/html/boost/intrusive/hashtable_size_wrapper.html b/doc/html/boost/intrusive/hashtable_size_wrapper.html new file mode 100644 index 0000000000..f5abc2589c --- /dev/null +++ b/doc/html/boost/intrusive/hashtable_size_wrapper.html @@ -0,0 +1,96 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>Struct template hashtable_size_wrapper</title> +<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css"> +<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="hashtable_equal_holder.html" title="Struct template hashtable_equal_holder"> +<link rel="next" href="hashtable_size_wr_idm32488.html" title="Struct template hashtable_size_wrapper<DeriveFrom, SizeType, false>"> +<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> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td> +<td align="center"><a href="../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="hashtable_equal_holder.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_size_wr_idm32488.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.intrusive.hashtable_size_wrapper"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Struct template hashtable_size_wrapper</span></h2> +<p>boost::intrusive::hashtable_size_wrapper</p> +</div> +<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> DeriveFrom<span class="special">,</span> <span class="keyword">typename</span> SizeType<span class="special">,</span> <span class="keyword">bool</span> <span class="special">></span> +<span class="keyword">struct</span> <a class="link" href="hashtable_size_wrapper.html" title="Struct template hashtable_size_wrapper">hashtable_size_wrapper</a> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">DeriveFrom</span> <span class="special">{</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span> <a name="boost.intrusive.hashtable_size_wrapper.size_traits"></a><span class="identifier">size_traits</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="keyword">const</span> <span class="identifier">size_traits</span> <span class="special">&</span> <a name="boost.intrusive.hashtable_size_wrapper.size_traits_const_t"></a><span class="identifier">size_traits_const_t</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">size_traits</span> <span class="special">&</span> <a name="boost.intrusive.hashtable_size_wrapper.size_traits_t"></a><span class="identifier">size_traits_t</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="hashtable_size_wrapper.html#boost.intrusive.hashtable_size_wrapperconstruct-copy-destruct">construct/copy/destruct</a></span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Base<span class="special">,</span> <span class="keyword">typename</span> Arg0<span class="special">,</span> <span class="keyword">typename</span> Arg1<span class="special">,</span> <span class="keyword">typename</span> Arg2<span class="special">></span> + <a class="link" href="hashtable_size_wrapper.html#idm32471-bb"><span class="identifier">hashtable_size_wrapper</span></a><span class="special">(</span><span class="identifier">BOOST_FWD_REF</span><span class="special">(</span><span class="identifier">Base</span><span class="special">)</span><span class="special">,</span> <span class="identifier">BOOST_FWD_REF</span><span class="special">(</span><span class="identifier">Arg0</span><span class="special">)</span><span class="special">,</span> + <span class="identifier">BOOST_FWD_REF</span><span class="special">(</span><span class="identifier">Arg1</span><span class="special">)</span><span class="special">,</span> <span class="identifier">BOOST_FWD_REF</span><span class="special">(</span><span class="identifier">Arg2</span><span class="special">)</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="hashtable_size_wrapper.html#idm32485-bb"><span class="identifier">hashtable_size_wrapper</span></a><span class="special">(</span><span class="identifier">hashtable_size_wrapper</span> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="hashtable_size_wrapper.html#idm32458-bb">public member functions</a></span> + <span class="identifier">SizeType</span> <a class="link" href="hashtable_size_wrapper.html#idm32459-bb"><span class="identifier">get_hashtable_size_wrapper_size</span></a><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_size_wrapper.html#idm32461-bb"><span class="identifier">set_hashtable_size_wrapper_size</span></a><span class="special">(</span><span class="identifier">SizeType</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="hashtable_size_wrapper.html#idm32465-bb"><span class="identifier">inc_hashtable_size_wrapper_size</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="hashtable_size_wrapper.html#idm32467-bb"><span class="identifier">dec_hashtable_size_wrapper_size</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">size_traits_t</span> <a class="link" href="hashtable_size_wrapper.html#idm32469-bb"><span class="identifier">priv_size_traits</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + + <span class="comment">// public data members</span> + <span class="identifier">size_traits</span> <span class="identifier">size_traits_</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="id-1.3.18.42.14.28.4"></a><h2>Description</h2> +<div class="refsect2"> +<a name="id-1.3.18.42.14.28.4.2"></a><h3> +<a name="boost.intrusive.hashtable_size_wrapperconstruct-copy-destruct"></a><code class="computeroutput">hashtable_size_wrapper</code> + public + construct/copy/destruct</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Base<span class="special">,</span> <span class="keyword">typename</span> Arg0<span class="special">,</span> <span class="keyword">typename</span> Arg1<span class="special">,</span> <span class="keyword">typename</span> Arg2<span class="special">></span> + <a name="idm32471-bb"></a><span class="identifier">hashtable_size_wrapper</span><span class="special">(</span><span class="identifier">BOOST_FWD_REF</span><span class="special">(</span><span class="identifier">Base</span><span class="special">)</span> base<span class="special">,</span> <span class="identifier">BOOST_FWD_REF</span><span class="special">(</span><span class="identifier">Arg0</span><span class="special">)</span> arg0<span class="special">,</span> + <span class="identifier">BOOST_FWD_REF</span><span class="special">(</span><span class="identifier">Arg1</span><span class="special">)</span> arg1<span class="special">,</span> <span class="identifier">BOOST_FWD_REF</span><span class="special">(</span><span class="identifier">Arg2</span><span class="special">)</span> arg2<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><a name="idm32485-bb"></a><span class="identifier">hashtable_size_wrapper</span><span class="special">(</span><span class="identifier">hashtable_size_wrapper</span> <span class="special">&&</span> other<span class="special">)</span><span class="special">;</span></pre></li> +</ol></div> +</div> +<div class="refsect2"> +<a name="id-1.3.18.42.14.28.4.3"></a><h3> +<a name="idm32458-bb"></a><code class="computeroutput">hashtable_size_wrapper</code> public member functions</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"><pre class="literallayout"><span class="identifier">SizeType</span> <a name="idm32459-bb"></a><span class="identifier">get_hashtable_size_wrapper_size</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">void</span> <a name="idm32461-bb"></a><span class="identifier">set_hashtable_size_wrapper_size</span><span class="special">(</span><span class="identifier">SizeType</span> s<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">void</span> <a name="idm32465-bb"></a><span class="identifier">inc_hashtable_size_wrapper_size</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">void</span> <a name="idm32467-bb"></a><span class="identifier">dec_hashtable_size_wrapper_size</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">size_traits_t</span> <a name="idm32469-bb"></a><span class="identifier">priv_size_traits</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre></li> +</ol></div> +</div> +</div> +</div> +<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> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="hashtable_equal_holder.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_size_wr_idm32488.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/doc/html/boost/intrusive/header_holder_type.html b/doc/html/boost/intrusive/header_holder_type.html index 8f622f3d89..41ba7a77e5 100644 --- a/doc/html/boost/intrusive/header_holder_type.html +++ b/doc/html/boost/intrusive/header_holder_type.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.options_hpp" title="Header <boost/intrusive/options.hpp>"> <link rel="prev" href="hash.html" title="Struct template hash"> <link rel="next" href="incremental.html" title="Struct template incremental"> +<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> @@ -29,21 +30,18 @@ <h2><span class="refentrytitle">Struct template header_holder_type</span></h2> <p>boost::intrusive::header_holder_type — This option setter specifies a container header holder type. </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.options_hpp" title="Header <boost/intrusive/options.hpp>">boost/intrusive/options.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.options_hpp" title="Header <boost/intrusive/options.hpp>">boost/intrusive/options.hpp</a>> </span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> HeaderHolder<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="header_holder_type.html" title="Struct template header_holder_type">header_holder_type</a> <span class="special">{</span> <span class="special">}</span><span class="special">;</span></pre></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="hash.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.options_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="incremental.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/incremental.html b/doc/html/boost/intrusive/incremental.html index 874b31d162..a8a626d9f3 100644 --- a/doc/html/boost/intrusive/incremental.html +++ b/doc/html/boost/intrusive/incremental.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.options_hpp" title="Header <boost/intrusive/options.hpp>"> <link rel="prev" href="header_holder_type.html" title="Struct template header_holder_type"> <link rel="next" href="key_of_value.html" title="Struct template key_of_value"> +<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> @@ -29,25 +30,22 @@ <h2><span class="refentrytitle">Struct template incremental</span></h2> <p>boost::intrusive::incremental</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.options_hpp" title="Header <boost/intrusive/options.hpp>">boost/intrusive/options.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.options_hpp" title="Header <boost/intrusive/options.hpp>">boost/intrusive/options.hpp</a>> </span><span class="keyword">template</span><span class="special"><</span><span class="keyword">bool</span> Enabled<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="incremental.html" title="Struct template incremental">incremental</a> <span class="special">{</span> <span class="special">}</span><span class="special">;</span></pre></div> <div class="refsect1"> -<a name="id-1.3.20.42.21.15.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.21.16.4"></a><h2>Description</h2> <p>This option setter specifies if the hash container will use incremental hashing. With incremental hashing the cost of hash table expansion is spread out across each hash table insertion operation, as opposed to be incurred all at once. Therefore linear hashing is well suited for interactive applications or real-time appplications where the worst-case insertion time of non-incremental hash containers (rehashing the whole bucket array) is not admisible. </p> </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="header_holder_type.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.options_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="key_of_value.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/incremental_rehas_idm32534.html b/doc/html/boost/intrusive/incremental_rehas_idm32534.html new file mode 100644 index 0000000000..0d58815a3d --- /dev/null +++ b/doc/html/boost/intrusive/incremental_rehas_idm32534.html @@ -0,0 +1,84 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>Class template incremental_rehash_rollback</title> +<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css"> +<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="hashtable_size_wr_idm32488.html" title="Struct template hashtable_size_wrapper<DeriveFrom, SizeType, false>"> +<link rel="next" href="insert_commit_data_impl.html" title="Struct template insert_commit_data_impl"> +<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> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td> +<td align="center"><a href="../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="hashtable_size_wr_idm32488.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="insert_commit_data_impl.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.intrusive.incremental_rehas_idm32534"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Class template incremental_rehash_rollback</span></h2> +<p>boost::intrusive::incremental_rehash_rollback</p> +</div> +<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> BucketType<span class="special">,</span> <span class="keyword">typename</span> SplitTraits<span class="special">,</span> + <span class="keyword">typename</span> SlistNodeAlgorithms<span class="special">></span> +<span class="keyword">class</span> <a class="link" href="incremental_rehas_idm32534.html" title="Class template incremental_rehash_rollback">incremental_rehash_rollback</a> <span class="special">{</span> +<span class="keyword">public</span><span class="special">:</span> + <span class="comment">// <a class="link" href="incremental_rehas_idm32534.html#boost.intrusive.incremental_rehas_idm32534construct-copy-destruct">construct/copy/destruct</a></span> + <a class="link" href="../interprocess/named_upgradable_mutex.html#idm32540-bb"><span class="identifier">incremental_rehash_rollback</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="../interprocess/named_upgradable_mutex.html#idm32545-bb"><span class="identifier">incremental_rehash_rollback</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">incremental_rehash_rollback</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="incremental_rehas_idm32534.html#idm32551-bb"><span class="identifier">incremental_rehash_rollback</span></a><span class="special">(</span><span class="identifier">bucket_type</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">bucket_type</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">split_traits</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">incremental_rehash_rollback</span> <span class="special">&</span> <a class="link" href="incremental_rehas_idm32534.html#idm32541-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">incremental_rehash_rollback</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="incremental_rehas_idm32534.html#idm32558-bb"><span class="special">~</span><span class="identifier">incremental_rehash_rollback</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="incremental_rehas_idm32534.html#idm32548-bb">public member functions</a></span> + <span class="keyword">void</span> <a class="link" href="incremental_rehas_idm32534.html#idm32549-bb"><span class="identifier">release</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="id-1.3.18.42.14.30.4"></a><h2>Description</h2> +<div class="refsect2"> +<a name="id-1.3.18.42.14.30.4.2"></a><h3> +<a name="boost.intrusive.incremental_rehas_idm32534construct-copy-destruct"></a><code class="computeroutput">incremental_rehash_rollback</code> + public + construct/copy/destruct</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"><pre class="literallayout"><a name="idm32540-bb"></a><span class="identifier">incremental_rehash_rollback</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><a name="idm32545-bb"></a><span class="identifier">incremental_rehash_rollback</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">incremental_rehash_rollback</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><a name="idm32551-bb"></a><span class="identifier">incremental_rehash_rollback</span><span class="special">(</span><span class="identifier">bucket_type</span> <span class="special">&</span> source_bucket<span class="special">,</span> + <span class="identifier">bucket_type</span> <span class="special">&</span> destiny_bucket<span class="special">,</span> + <span class="identifier">split_traits</span> <span class="special">&</span> split_tr<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">incremental_rehash_rollback</span> <span class="special">&</span> <a name="idm32541-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">incremental_rehash_rollback</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><a name="idm32558-bb"></a><span class="special">~</span><span class="identifier">incremental_rehash_rollback</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre></li> +</ol></div> +</div> +<div class="refsect2"> +<a name="id-1.3.18.42.14.30.4.3"></a><h3> +<a name="idm32548-bb"></a><code class="computeroutput">incremental_rehash_rollback</code> public member functions</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><pre class="literallayout"><span class="keyword">void</span> <a name="idm32549-bb"></a><span class="identifier">release</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre></li></ol></div> +</div> +</div> +</div> +<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> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="hashtable_size_wr_idm32488.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="insert_commit_data_impl.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/doc/html/boost/intrusive/insert_commit_dat_idm32574.html b/doc/html/boost/intrusive/insert_commit_dat_idm32574.html new file mode 100644 index 0000000000..4632c1555b --- /dev/null +++ b/doc/html/boost/intrusive/insert_commit_dat_idm32574.html @@ -0,0 +1,68 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>Struct insert_commit_data_impl<false></title> +<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css"> +<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="insert_commit_data_impl.html" title="Struct template insert_commit_data_impl"> +<link rel="next" href="is_default_hook_t_idm32587.html" title="Struct is_default_hook_tag<default_hashtable_hook_applier>"> +<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> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td> +<td align="center"><a href="../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="insert_commit_data_impl.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="is_default_hook_t_idm32587.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.intrusive.insert_commit_dat_idm32574"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Struct insert_commit_data_impl<false></span></h2> +<p>boost::intrusive::insert_commit_data_impl<false></p> +</div> +<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">struct</span> <a class="link" href="insert_commit_dat_idm32574.html" title="Struct insert_commit_data_impl<false>">insert_commit_data_impl</a><span class="special"><</span><span class="keyword">false</span><span class="special">></span> <span class="special">{</span> + + <span class="comment">// <a class="link" href="../interprocess/named_upgradable_mutex.html#idm32580-bb">public member functions</a></span> + <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a class="link" href="insert_commit_dat_idm32574.html#idm32581-bb"><span class="identifier">get_hash</span></a><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="insert_commit_dat_idm32574.html#idm32583-bb"><span class="identifier">set_hash</span></a><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">)</span><span class="special">;</span> + + <span class="comment">// public data members</span> + <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">bucket_idx</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="id-1.3.18.42.14.32.4"></a><h2>Description</h2> +<div class="refsect2"> +<a name="id-1.3.18.42.14.32.4.2"></a><h3> +<a name="idm32580-bb"></a><code class="computeroutput">insert_commit_data_impl</code> public member functions</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"><pre class="literallayout"><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a name="idm32581-bb"></a><span class="identifier">get_hash</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">void</span> <a name="idm32583-bb"></a><span class="identifier">set_hash</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">)</span><span class="special">;</span></pre></li> +</ol></div> +</div> +</div> +</div> +<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> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="insert_commit_data_impl.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="is_default_hook_t_idm32587.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/doc/html/boost/intrusive/insert_commit_data_impl.html b/doc/html/boost/intrusive/insert_commit_data_impl.html new file mode 100644 index 0000000000..42a77163ed --- /dev/null +++ b/doc/html/boost/intrusive/insert_commit_data_impl.html @@ -0,0 +1,69 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>Struct template insert_commit_data_impl</title> +<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css"> +<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="incremental_rehas_idm32534.html" title="Class template incremental_rehash_rollback"> +<link rel="next" href="insert_commit_dat_idm32574.html" title="Struct insert_commit_data_impl<false>"> +<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> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td> +<td align="center"><a href="../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="incremental_rehas_idm32534.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="insert_commit_dat_idm32574.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.intrusive.insert_commit_data_impl"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Struct template insert_commit_data_impl</span></h2> +<p>boost::intrusive::insert_commit_data_impl</p> +</div> +<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">bool</span> StoreHash<span class="special">></span> +<span class="keyword">struct</span> <a class="link" href="insert_commit_data_impl.html" title="Struct template insert_commit_data_impl">insert_commit_data_impl</a> <span class="special">{</span> + + <span class="comment">// <a class="link" href="insert_commit_data_impl.html#idm32567-bb">public member functions</a></span> + <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a class="link" href="insert_commit_data_impl.html#idm32568-bb"><span class="identifier">get_hash</span></a><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="insert_commit_data_impl.html#idm32570-bb"><span class="identifier">set_hash</span></a><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">)</span><span class="special">;</span> + + <span class="comment">// public data members</span> + <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">hash</span><span class="special">;</span> + <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">bucket_idx</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="id-1.3.18.42.14.31.4"></a><h2>Description</h2> +<div class="refsect2"> +<a name="id-1.3.18.42.14.31.4.2"></a><h3> +<a name="idm32567-bb"></a><code class="computeroutput">insert_commit_data_impl</code> public member functions</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"><pre class="literallayout"><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a name="idm32568-bb"></a><span class="identifier">get_hash</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">void</span> <a name="idm32570-bb"></a><span class="identifier">set_hash</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> h<span class="special">)</span><span class="special">;</span></pre></li> +</ol></div> +</div> +</div> +</div> +<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> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="incremental_rehas_idm32534.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="insert_commit_dat_idm32574.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/doc/html/boost/intrusive/is_default_hook_t_idm32587.html b/doc/html/boost/intrusive/is_default_hook_t_idm32587.html new file mode 100644 index 0000000000..275ec58d17 --- /dev/null +++ b/doc/html/boost/intrusive/is_default_hook_t_idm32587.html @@ -0,0 +1,53 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>Struct is_default_hook_tag<default_hashtable_hook_applier></title> +<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css"> +<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="insert_commit_dat_idm32574.html" title="Struct insert_commit_data_impl<false>"> +<link rel="next" href="make_hashtable.html" title="Struct template make_hashtable"> +<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> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td> +<td align="center"><a href="../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="insert_commit_dat_idm32574.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> +</div> +<div class="refentry"> +<a name="boost.intrusive.is_default_hook_t_idm32587"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Struct is_default_hook_tag<default_hashtable_hook_applier></span></h2> +<p>boost::intrusive::is_default_hook_tag<default_hashtable_hook_applier></p> +</div> +<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">struct</span> <a class="link" href="is_default_hook_t_idm32587.html" title="Struct is_default_hook_tag<default_hashtable_hook_applier>">is_default_hook_tag</a><span class="special"><</span><span class="identifier">default_hashtable_hook_applier</span><span class="special">></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">value</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +</div> +<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> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="insert_commit_dat_idm32574.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> +</div> +</body> +</html> diff --git a/doc/html/boost/intrusive/key_of_value.html b/doc/html/boost/intrusive/key_of_value.html index 3e529806e0..8dab883a89 100644 --- a/doc/html/boost/intrusive/key_of_value.html +++ b/doc/html/boost/intrusive/key_of_value.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.options_hpp" title="Header <boost/intrusive/options.hpp>"> <link rel="prev" href="incremental.html" title="Struct template incremental"> <link rel="next" href="linear.html" title="Struct template linear"> +<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> @@ -29,26 +30,23 @@ <h2><span class="refentrytitle">Struct template key_of_value</span></h2> <p>boost::intrusive::key_of_value</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.options_hpp" title="Header <boost/intrusive/options.hpp>">boost/intrusive/options.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.options_hpp" title="Header <boost/intrusive/options.hpp>">boost/intrusive/options.hpp</a>> </span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> KeyOfValue<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="key_of_value.html" title="Struct template key_of_value">key_of_value</a> <span class="special">{</span> <span class="special">}</span><span class="special">;</span></pre></div> <div class="refsect1"> -<a name="id-1.3.20.42.21.16.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.21.17.4"></a><h2>Description</h2> <p>This option setter specifies a function object that specifies the type of the key of an associative container and an operator to obtain it from a value type.</p> <p>This function object must the define a <code class="computeroutput">type</code> member typedef and a member with signature <code class="computeroutput">type [const&] operator()(const value_type &) const</code> that will return the key from a value_type of an associative container </p> </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="incremental.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.options_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="linear.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/linear.html b/doc/html/boost/intrusive/linear.html index 287ba3182c..69eb475f78 100644 --- a/doc/html/boost/intrusive/linear.html +++ b/doc/html/boost/intrusive/linear.html @@ -8,7 +8,8 @@ <link rel="home" href="../../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset"> <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.options_hpp" title="Header <boost/intrusive/options.hpp>"> <link rel="prev" href="key_of_value.html" title="Struct template key_of_value"> -<link rel="next" href="link_mode.html" title="Struct template link_mode"> +<link rel="next" href="linear_buckets.html" title="Struct template linear_buckets"> +<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="key_of_value.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.options_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="link_mode.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +<a accesskey="p" href="key_of_value.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.options_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="linear_buckets.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> </div> <div class="refentry"> <a name="boost.intrusive.linear"></a><div class="titlepage"></div> @@ -29,28 +30,25 @@ <h2><span class="refentrytitle">Struct template linear</span></h2> <p>boost::intrusive::linear</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.options_hpp" title="Header <boost/intrusive/options.hpp>">boost/intrusive/options.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.options_hpp" title="Header <boost/intrusive/options.hpp>">boost/intrusive/options.hpp</a>> </span><span class="keyword">template</span><span class="special"><</span><span class="keyword">bool</span> Enabled<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="linear.html" title="Struct template linear">linear</a> <span class="special">{</span> <span class="special">}</span><span class="special">;</span></pre></div> <div class="refsect1"> -<a name="id-1.3.20.42.21.17.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.21.18.4"></a><h2>Description</h2> <p>This option setter specifies if the slist container should use a linear implementation instead of a circular one. </p> </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="key_of_value.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.options_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="link_mode.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +<a accesskey="p" href="key_of_value.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.options_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="linear_buckets.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> </div> </body> </html> diff --git a/doc/html/boost/intrusive/linear_buckets.html b/doc/html/boost/intrusive/linear_buckets.html new file mode 100644 index 0000000000..2395ea27f9 --- /dev/null +++ b/doc/html/boost/intrusive/linear_buckets.html @@ -0,0 +1,54 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>Struct template linear_buckets</title> +<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css"> +<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.options_hpp" title="Header <boost/intrusive/options.hpp>"> +<link rel="prev" href="linear.html" title="Struct template linear"> +<link rel="next" href="link_mode.html" title="Struct template link_mode"> +<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> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td> +<td align="center"><a href="../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="linear.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.options_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="link_mode.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.intrusive.linear_buckets"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Struct template linear_buckets</span></h2> +<p>boost::intrusive::linear_buckets</p> +</div> +<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.options_hpp" title="Header <boost/intrusive/options.hpp>">boost/intrusive/options.hpp</a>> + +</span><span class="keyword">template</span><span class="special"><</span><span class="keyword">bool</span> Enabled<span class="special">></span> +<span class="keyword">struct</span> <a class="link" href="linear_buckets.html" title="Struct template linear_buckets">linear_buckets</a> <span class="special">{</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="id-1.3.18.42.21.19.4"></a><h2>Description</h2> +<p>This option setter specifies if the buckets (which form a singly linked lists of nodes) are linear (true) or circular (false, default value). Linear buckets can improve performance in some cases, but the container loses some features like obtaining an iterator from a value. </p> +</div> +</div> +<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> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="linear.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.options_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="link_mode.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/doc/html/boost/intrusive/linear_slist_algorithms.html b/doc/html/boost/intrusive/linear_slist_algorithms.html index 07321009fa..0795038871 100644 --- a/doc/html/boost/intrusive/linear_slist_algorithms.html +++ b/doc/html/boost/intrusive/linear_slist_algorithms.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.linear_slist_algorithms_hpp" title="Header <boost/intrusive/linear_slist_algorithms.hpp>"> -<link rel="prev" href="make_hashtable.html" title="Struct template make_hashtable"> +<link rel="prev" href="unordered_default_idm32740.html" title="Struct template unordered_default_bucket_traits"> <link rel="next" href="link_mode_type.html" title="Type link_mode_type"> +<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="make_hashtable.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.linear_slist_algorithms_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="link_mode_type.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +<a accesskey="p" href="unordered_default_idm32740.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.linear_slist_algorithms_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="link_mode_type.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> </div> <div class="refentry"> <a name="boost.intrusive.linear_slist_algorithms"></a><div class="titlepage"></div> @@ -29,8 +30,8 @@ <h2><span class="refentrytitle">Class template linear_slist_algorithms</span></h2> <p>boost::intrusive::linear_slist_algorithms</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.linear_slist_algorithms_hpp" title="Header <boost/intrusive/linear_slist_algorithms.hpp>">boost/intrusive/linear_slist_algorithms.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.linear_slist_algorithms_hpp" title="Header <boost/intrusive/linear_slist_algorithms.hpp>">boost/intrusive/linear_slist_algorithms.hpp</a>> </span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodeTraits<span class="special">></span> <span class="keyword">class</span> <a class="link" href="linear_slist_algorithms.html" title="Class template linear_slist_algorithms">linear_slist_algorithms</a> <span class="special">{</span> @@ -42,26 +43,31 @@ <span class="keyword">typedef</span> <span class="identifier">NodeTraits</span> <a name="boost.intrusive.linear_slist_algorithms.node_traits"></a><span class="identifier">node_traits</span><span class="special">;</span> <span class="keyword">typedef</span> <span class="identifier">twin</span><span class="special"><</span> <span class="identifier">node_ptr</span> <span class="special">></span> <a name="boost.intrusive.linear_slist_algorithms.node_pair"></a><span class="identifier">node_pair</span><span class="special">;</span> - <span class="comment">// <a class="link" href="linear_slist_algorithms.html#idm45971714894240-bb">public static functions</a></span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="linear_slist_algorithms.html#idm45971714893680-bb"><span class="identifier">init</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">bool</span> <a class="link" href="linear_slist_algorithms.html#idm45971714888544-bb"><span class="identifier">unique</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">bool</span> <a class="link" href="linear_slist_algorithms.html#idm45971714882448-bb"><span class="identifier">inited</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="linear_slist_algorithms.html#idm45971714877616-bb"><span class="identifier">unlink_after</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="linear_slist_algorithms.html#idm45971714871920-bb"><span class="identifier">unlink_after</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="linear_slist_algorithms.html#idm45971714865520-bb"><span class="identifier">link_after</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="linear_slist_algorithms.html#idm45971714859168-bb"><span class="identifier">transfer_after</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span><span class="special">,</span> - <span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="linear_slist_algorithms.html#idm45971714852000-bb"><span class="identifier">init_header</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a class="link" href="linear_slist_algorithms.html#idm45971714846704-bb"><span class="identifier">get_previous_node</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a class="link" href="linear_slist_algorithms.html#idm45971714840144-bb"><span class="identifier">count</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="linear_slist_algorithms.html#idm45971714834432-bb"><span class="identifier">swap_trailing_nodes</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="linear_slist_algorithms.html#idm45971714827984-bb"><span class="identifier">reverse</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="identifier">node_pair</span> <a class="link" href="linear_slist_algorithms.html#idm45971714822304-bb"><span class="identifier">move_first_n_backwards</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="identifier">node_pair</span> <a class="link" href="linear_slist_algorithms.html#idm45971714815808-bb"><span class="identifier">move_first_n_forward</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="comment">// <a class="link" href="linear_slist_algorithms.html#idm32991-bb">public static functions</a></span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="linear_slist_algorithms.html#idm32992-bb"><span class="identifier">init</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">bool</span> <a class="link" href="linear_slist_algorithms.html#idm33004-bb"><span class="identifier">unique</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">bool</span> <a class="link" href="../interprocess/scoped_lock.html#idm33018-bb"><span class="identifier">inited</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="linear_slist_algorithms.html#idm33029-bb"><span class="identifier">unlink_after</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="linear_slist_algorithms.html#idm33042-bb"><span class="identifier">unlink_after</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="linear_slist_algorithms.html#idm33057-bb"><span class="identifier">link_after</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="linear_slist_algorithms.html#idm33072-bb"><span class="identifier">transfer_after</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="linear_slist_algorithms.html#idm33089-bb"><span class="identifier">init_header</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="linear_slist_algorithms.html#idm33101-bb"><span class="identifier">end_node</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">bool</span> <a class="link" href="linear_slist_algorithms.html#idm33114-bb"><span class="identifier">is_empty</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">bool</span> <a class="link" href="linear_slist_algorithms.html#idm33125-bb"><span class="identifier">is_sentinel</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="linear_slist_algorithms.html#idm33136-bb"><span class="identifier">set_sentinel</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="../interprocess/sharable_lock.html#idm33147-bb"><span class="identifier">get_previous_node</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a class="link" href="linear_slist_algorithms.html#idm33162-bb"><span class="identifier">count</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="linear_slist_algorithms.html#idm33175-bb"><span class="identifier">swap_trailing_nodes</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="linear_slist_algorithms.html#idm33190-bb"><span class="identifier">reverse</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">node_pair</span> <a class="link" href="linear_slist_algorithms.html#idm33203-bb"><span class="identifier">move_first_n_backwards</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">node_pair</span> <a class="link" href="linear_slist_algorithms.html#idm33218-bb"><span class="identifier">move_first_n_forward</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="linear_slist_algorithms.html#idm33233-bb"><span class="identifier">transfer_after</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</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">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a class="link" href="linear_slist_algorithms.html#idm33248-bb"><span class="identifier">detach_and_dispose</span></a><span class="special">(</span><span class="identifier">node_ptr</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="special">}</span><span class="special">;</span></pre></div> <div class="refsect1"> -<a name="id-1.3.20.42.16.3.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.16.3.4"></a><h2>Description</h2> <p><a class="link" href="linear_slist_algorithms.html" title="Class template linear_slist_algorithms">linear_slist_algorithms</a> provides basic algorithms to manipulate nodes forming a linear singly linked list.</p> <p><a class="link" href="linear_slist_algorithms.html" title="Class template linear_slist_algorithms">linear_slist_algorithms</a> is configured with a NodeTraits class, which encapsulates the information about the node to be manipulated. NodeTraits must support the following interface:</p> <p><span class="bold"><strong>Typedefs</strong></span>:</p> @@ -72,122 +78,159 @@ <p><code class="computeroutput">static node_ptr get_next(const_node_ptr n);</code></p> <p><code class="computeroutput">static void set_next(node_ptr n, node_ptr next);</code> </p> <div class="refsect2"> -<a name="id-1.3.20.42.16.3.4.11"></a><h3> -<a name="idm45971714894240-bb"></a><code class="computeroutput">linear_slist_algorithms</code> public static functions</h3> +<a name="id-1.3.18.42.16.3.4.11"></a><h3> +<a name="idm32991-bb"></a><code class="computeroutput">linear_slist_algorithms</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="keyword">void</span> <a name="idm45971714893680-bb"></a><span class="identifier">init</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span> this_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm32992-bb"></a><span class="identifier">init</span><span class="special">(</span><span class="identifier">node_ptr</span> this_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Constructs an non-used list element, putting the next pointer to null: <code class="computeroutput">NodeTraits::get_next(this_node) == node_ptr()</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="keyword">static</span> <span class="keyword">bool</span> <a name="idm45971714888544-bb"></a><span class="identifier">unique</span><span class="special">(</span><span class="identifier">const_node_ptr</span> this_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">bool</span> <a name="idm33004-bb"></a><span class="identifier">unique</span><span class="special">(</span><span class="identifier">const_node_ptr</span> this_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: this_node must be in a circular list or be an empty circular list.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns true is "this_node" is the only node of a circular list: or it's a not inserted node: <code class="computeroutput">return node_ptr() == NodeTraits::get_next(this_node) || NodeTraits::get_next(this_node) == this_node</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="keyword">static</span> <span class="keyword">bool</span> <a name="idm45971714882448-bb"></a><span class="identifier">inited</span><span class="special">(</span><span class="identifier">const_node_ptr</span> this_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">bool</span> <a name="idm33018-bb"></a><span class="identifier">inited</span><span class="special">(</span><span class="identifier">const_node_ptr</span> this_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Returns true is "this_node" has the same state as if it was inited using "init(node_ptr)"</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="keyword">static</span> <span class="keyword">void</span> <a name="idm45971714877616-bb"></a><span class="identifier">unlink_after</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span> prev_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm33029-bb"></a><span class="identifier">unlink_after</span><span class="special">(</span><span class="identifier">node_ptr</span> prev_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: prev_node must be in a circular list or be an empty circular list.</p> <p><span class="bold"><strong>Effects</strong></span>: Unlinks the next node of prev_node from the circular list.</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="keyword">static</span> <span class="keyword">void</span> <a name="idm45971714871920-bb"></a><span class="identifier">unlink_after</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span> prev_node<span class="special">,</span> - <span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span> last_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm33042-bb"></a><span class="identifier">unlink_after</span><span class="special">(</span><span class="identifier">node_ptr</span> prev_node<span class="special">,</span> <span class="identifier">node_ptr</span> last_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: prev_node and last_node must be in a circular list or be an empty circular list.</p> <p><span class="bold"><strong>Effects</strong></span>: Unlinks the range (prev_node, last_node) from the linear list.</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="keyword">static</span> <span class="keyword">void</span> <a name="idm45971714865520-bb"></a><span class="identifier">link_after</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span> prev_node<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span> this_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm33057-bb"></a><span class="identifier">link_after</span><span class="special">(</span><span class="identifier">node_ptr</span> prev_node<span class="special">,</span> <span class="identifier">node_ptr</span> this_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: prev_node must be a node of a linear list.</p> <p><span class="bold"><strong>Effects</strong></span>: Links this_node after prev_node in the linear list.</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="keyword">static</span> <span class="keyword">void</span> <a name="idm45971714859168-bb"></a><span class="identifier">transfer_after</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span> p<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span> b<span class="special">,</span> - <span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span> e<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm33072-bb"></a><span class="identifier">transfer_after</span><span class="special">(</span><span class="identifier">node_ptr</span> p<span class="special">,</span> <span class="identifier">node_ptr</span> b<span class="special">,</span> <span class="identifier">node_ptr</span> e<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: b and e must be nodes of the same linear list or an empty range. and p must be a node of a different linear list.</p> <p><span class="bold"><strong>Effects</strong></span>: Removes the nodes from (b, e] range from their linear list and inserts them after p in p's linear list.</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="keyword">static</span> <span class="keyword">void</span> <a name="idm45971714852000-bb"></a><span class="identifier">init_header</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span> this_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm33089-bb"></a><span class="identifier">init_header</span><span class="special">(</span><span class="identifier">node_ptr</span> this_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Constructs an empty list, making this_node the only node of the circular list: <code class="computeroutput">NodeTraits::get_next(this_node) == this_node</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="keyword">static</span> <span class="identifier">node_ptr</span> <a name="idm33101-bb"></a><span class="identifier">end_node</span><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<p><span class="bold"><strong>Requires</strong></span>: 'p' is the first node of a list.</p> +<p><span class="bold"><strong>Effects</strong></span>: Returns a pointer to a node that represents the "end" (one past end) node</p> +<p><span class="bold"><strong>Complexity</strong></span>: 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="keyword">bool</span> <a name="idm33114-bb"></a><span class="identifier">is_empty</span><span class="special">(</span><span class="identifier">const_node_ptr</span> this_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<p><span class="bold"><strong>Effects</strong></span>: Returns true if this_node_points to an empty list.</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="keyword">static</span> <span class="keyword">bool</span> <a name="idm33125-bb"></a><span class="identifier">is_sentinel</span><span class="special">(</span><span class="identifier">const_node_ptr</span> this_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<p><span class="bold"><strong>Effects</strong></span>: Returns true if this_node points to a sentinel node.</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="keyword">static</span> <span class="keyword">void</span> <a name="idm33136-bb"></a><span class="identifier">set_sentinel</span><span class="special">(</span><span class="identifier">node_ptr</span> this_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<p><span class="bold"><strong>Effects</strong></span>: Marks this node as a "sentinel" node, a special state that is different from "empty", that can be used to mark a special state of the list</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="keyword">static</span> <span class="identifier">node_ptr</span> -<a name="idm45971714846704-bb"></a><span class="identifier">get_previous_node</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span> prev_init_node<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span> this_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<a name="idm33147-bb"></a><span class="identifier">get_previous_node</span><span class="special">(</span><span class="identifier">node_ptr</span> prev_init_node<span class="special">,</span> <span class="identifier">node_ptr</span> this_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: this_node and prev_init_node must be in the same linear list.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns the previous node of this_node in the linear list starting. the search from prev_init_node. The first node checked for equality is NodeTraits::get_next(prev_init_node).</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to the number of elements between prev_init_node and this_node.</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">std</span><span class="special">::</span><span class="identifier">size_t</span> <a name="idm45971714840144-bb"></a><span class="identifier">count</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span> this_node<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">std</span><span class="special">::</span><span class="identifier">size_t</span> <a name="idm33162-bb"></a><span class="identifier">count</span><span class="special">(</span><span class="identifier">const_node_ptr</span> this_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: this_node must be in a linear list or be an empty linear list.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns the number of nodes in a linear list. If the linear list is empty, returns 1.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear</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="keyword">void</span> <a name="idm45971714834432-bb"></a><span class="identifier">swap_trailing_nodes</span><span class="special">(</span><span class="identifier">node_ptr</span> this_node<span class="special">,</span> <span class="identifier">node_ptr</span> other_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm33175-bb"></a><span class="identifier">swap_trailing_nodes</span><span class="special">(</span><span class="identifier">node_ptr</span> this_node<span class="special">,</span> <span class="identifier">node_ptr</span> other_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: this_node and other_node must be nodes inserted in linear lists or be empty linear lists.</p> <p><span class="bold"><strong>Effects</strong></span>: Moves all the nodes previously chained after this_node after other_node and vice-versa.</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="keyword">static</span> <span class="identifier">node_ptr</span> <a name="idm45971714827984-bb"></a><span class="identifier">reverse</span><span class="special">(</span><span class="identifier">node_ptr</span> p<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">node_ptr</span> <a name="idm33190-bb"></a><span class="identifier">reverse</span><span class="special">(</span><span class="identifier">node_ptr</span> p<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Reverses the order of elements in the list.</p> <p><span class="bold"><strong>Returns</strong></span>: The new first node of the list.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: This function is linear to the contained elements. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="identifier">node_pair</span> <a name="idm45971714822304-bb"></a><span class="identifier">move_first_n_backwards</span><span class="special">(</span><span class="identifier">node_ptr</span> p<span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</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">node_pair</span> <a name="idm33203-bb"></a><span class="identifier">move_first_n_backwards</span><span class="special">(</span><span class="identifier">node_ptr</span> p<span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> n<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Moves the first n nodes starting at p to the end of the list.</p> <p><span class="bold"><strong>Returns</strong></span>: A pair containing the new first and last node of the list or if there has been any movement, a null pair if n leads to no movement.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to the number of elements plus the number moved positions. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="identifier">node_pair</span> <a name="idm45971714815808-bb"></a><span class="identifier">move_first_n_forward</span><span class="special">(</span><span class="identifier">node_ptr</span> p<span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</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">node_pair</span> <a name="idm33218-bb"></a><span class="identifier">move_first_n_forward</span><span class="special">(</span><span class="identifier">node_ptr</span> p<span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> n<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Moves the first n nodes starting at p to the beginning of the list.</p> <p><span class="bold"><strong>Returns</strong></span>: A pair containing the new first and last node of the list or if there has been any movement, a null pair if n leads to no movement.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to the number of elements plus the number moved positions. </p> </li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm33233-bb"></a><span class="identifier">transfer_after</span><span class="special">(</span><span class="identifier">node_ptr</span> p<span class="special">,</span> <span class="identifier">node_ptr</span> other<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<p><span class="bold"><strong>Requires</strong></span>: other must be a list and p must be a node of a different linear list.</p> +<p><span class="bold"><strong>Effects</strong></span>: Transfers all nodes from other after p in p's linear list.</p> +<p><span class="bold"><strong>Complexity</strong></span>: Linear</p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> + <a name="idm33248-bb"></a><span class="identifier">detach_and_dispose</span><span class="special">(</span><span class="identifier">node_ptr</span> p<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" must be an object function taking a node_ptr parameter and shouldn't throw.</p> +<p><span class="bold"><strong>Effects</strong></span>: Unlinks all nodes reachable from p (but not p) and calls <code class="computeroutput">void disposer::operator()(node_ptr)</code> for every node of the list where p is linked.</p> +<p><span class="bold"><strong>Returns</strong></span>: The number of disposed nodes</p> +<p><span class="bold"><strong>Complexity</strong></span>: Linear to the number of element of the list.</p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +</li> </ol></div> </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="make_hashtable.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.linear_slist_algorithms_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="link_mode_type.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +<a accesskey="p" href="unordered_default_idm32740.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.linear_slist_algorithms_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="link_mode_type.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> </div> </body> </html> diff --git a/doc/html/boost/intrusive/link_mode.html b/doc/html/boost/intrusive/link_mode.html index 6454cd1d72..977d5a7adc 100644 --- a/doc/html/boost/intrusive/link_mode.html +++ b/doc/html/boost/intrusive/link_mode.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.options_hpp" title="Header <boost/intrusive/options.hpp>"> -<link rel="prev" href="linear.html" title="Struct template linear"> +<link rel="prev" href="linear_buckets.html" title="Struct template linear_buckets"> <link rel="next" href="member_hook.html" title="Struct template member_hook"> +<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="linear.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.options_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="member_hook.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +<a accesskey="p" href="linear_buckets.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.options_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="member_hook.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> </div> <div class="refentry"> <a name="boost.intrusive.link_mode"></a><div class="titlepage"></div> @@ -29,28 +30,25 @@ <h2><span class="refentrytitle">Struct template link_mode</span></h2> <p>boost::intrusive::link_mode</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.options_hpp" title="Header <boost/intrusive/options.hpp>">boost/intrusive/options.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.options_hpp" title="Header <boost/intrusive/options.hpp>">boost/intrusive/options.hpp</a>> </span><span class="keyword">template</span><span class="special"><</span><span class="identifier">link_mode_type</span> LinkType<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a> <span class="special">{</span> <span class="special">}</span><span class="special">;</span></pre></div> <div class="refsect1"> -<a name="id-1.3.20.42.21.18.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.21.20.4"></a><h2>Description</h2> <p>This option setter specifies the link mode (normal_link, safe_link or auto_unlink) </p> </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="linear.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.options_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="member_hook.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +<a accesskey="p" href="linear_buckets.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.options_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="member_hook.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> </div> </body> </html> diff --git a/doc/html/boost/intrusive/link_mode_type.html b/doc/html/boost/intrusive/link_mode_type.html index 93248f7d0b..493f4791ca 100644 --- a/doc/html/boost/intrusive/link_mode_type.html +++ b/doc/html/boost/intrusive/link_mode_type.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.link_mode_hpp" title="Header <boost/intrusive/link_mode.hpp>"> <link rel="prev" href="linear_slist_algorithms.html" title="Class template linear_slist_algorithms"> <link rel="next" href="list.html" title="Class template list"> +<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> @@ -29,13 +30,13 @@ <h2><span class="refentrytitle">Type link_mode_type</span></h2> <p>boost::intrusive::link_mode_type</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.link_mode_hpp" title="Header <boost/intrusive/link_mode.hpp>">boost/intrusive/link_mode.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.link_mode_hpp" title="Header <boost/intrusive/link_mode.hpp>">boost/intrusive/link_mode.hpp</a>> </span> <span class="keyword">enum</span> <span class="identifier">link_mode_type</span> <span class="special">{</span> <a class="link" href="link_mode_type.html#boost.intrusive.link_mode_type.normal_link">normal_link</a>, <a class="link" href="link_mode_type.html#boost.intrusive.link_mode_type.safe_link">safe_link</a>, <a class="link" href="link_mode_type.html#boost.intrusive.link_mode_type.auto_unlink">auto_unlink</a> <span class="special">}</span><span class="special">;</span></pre></div> <div class="refsect1"> -<a name="id-1.3.20.42.17.3.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.17.3.4"></a><h2>Description</h2> <p>This enumeration defines the type of <a class="link" href="value_traits.html" title="Struct template value_traits">value_traits</a> that can be defined for Boost.Intrusive containers </p> <div class="variablelist"><dl class="variablelist compact"> <dt><span class="term"><code class="computeroutput">normal_link</code><a name="boost.intrusive.link_mode_type.normal_link"></a></span></dt> @@ -47,14 +48,11 @@ </dl></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="linear_slist_algorithms.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.link_mode_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="list.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/list.html b/doc/html/boost/intrusive/list.html index f41d2a526e..cf158c28f8 100644 --- a/doc/html/boost/intrusive/list.html +++ b/doc/html/boost/intrusive/list.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.list_hpp" title="Header <boost/intrusive/list.hpp>"> <link rel="prev" href="link_mode_type.html" title="Type link_mode_type"> <link rel="next" href="make_list.html" title="Struct template make_list"> +<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> @@ -29,8 +30,8 @@ <h2><span class="refentrytitle">Class template list</span></h2> <p>boost::intrusive::list</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.list_hpp" title="Header <boost/intrusive/list.hpp>">boost/intrusive/list.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.list_hpp" title="Header <boost/intrusive/list.hpp>">boost/intrusive/list.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="list.html" title="Class template list">list</a> <span class="special">{</span> @@ -56,91 +57,91 @@ <span class="keyword">typedef</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span> <a name="boost.intrusive.list.header_holder_type"></a><span class="identifier">header_holder_type</span><span class="special">;</span> <span class="comment">// <a class="link" href="list.html#boost.intrusive.listconstruct-copy-destruct">construct/copy/destruct</a></span> - <a class="link" href="list.html#idm45971714400576-bb"><span class="identifier">list</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">explicit</span> <a class="link" href="list.html#idm45971714397504-bb"><span class="identifier">list</span></a><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="special">;</span> + <a class="link" href="list.html#idm34231-bb"><span class="identifier">list</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">explicit</span> <a class="link" href="list.html#idm34239-bb"><span class="identifier">list</span></a><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="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="list.html#idm45971714393472-bb"><span class="identifier">list</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="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="list.html#idm45971714386240-bb"><span class="identifier">list</span></a><span class="special">(</span><a class="link" href="list.html" title="Class template list">list</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> - <a class="link" href="list.html" title="Class template list">list</a> <span class="special">&</span> <a class="link" href="list.html#idm45971714381968-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><a class="link" href="list.html" title="Class template list">list</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> - <a class="link" href="list.html#idm45971714379152-bb"><span class="special">~</span><span class="identifier">list</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="list.html#idm34249-bb"><span class="identifier">list</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="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="list.html#idm34268-bb"><span class="identifier">list</span></a><span class="special">(</span><a class="link" href="list.html" title="Class template list">list</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="list.html" title="Class template list">list</a> <span class="special">&</span> <a class="link" href="list.html#idm34279-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><a class="link" href="list.html" title="Class template list">list</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="list.html#idm34288-bb"><span class="special">~</span><span class="identifier">list</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> - <span class="comment">// <a class="link" href="list.html#idm45971714768992-bb">public member functions</a></span> - <span class="keyword">void</span> <a class="link" href="list.html#idm45971714768432-bb"><span class="identifier">push_back</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">void</span> <a class="link" href="list.html#idm45971714762128-bb"><span class="identifier">push_front</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">void</span> <a class="link" href="list.html#idm45971714755824-bb"><span class="identifier">pop_back</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="list.html#idm45971714751072-bb"><span class="identifier">pop_back_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="keyword">void</span> <a class="link" href="list.html#idm45971714743872-bb"><span class="identifier">pop_front</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="list.html#idm45971714739120-bb"><span class="identifier">pop_front_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">reference</span> <a class="link" href="list.html#idm45971714731920-bb"><span class="identifier">front</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="identifier">const_reference</span> <a class="link" href="list.html#idm45971714728096-bb"><span class="identifier">front</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">reference</span> <a class="link" href="list.html#idm45971714724256-bb"><span class="identifier">back</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="identifier">const_reference</span> <a class="link" href="list.html#idm45971714720432-bb"><span class="identifier">back</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="list.html#idm45971714716592-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="list.html#idm45971714712752-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="list.html#idm45971714708912-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="list.html#idm45971714705072-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="list.html#idm45971714701248-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="list.html#idm45971714697424-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">reverse_iterator</span> <a class="link" href="list.html#idm45971714693600-bb"><span class="identifier">rbegin</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="identifier">const_reverse_iterator</span> <a class="link" href="list.html#idm45971714689744-bb"><span class="identifier">rbegin</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_reverse_iterator</span> <a class="link" href="list.html#idm45971714685888-bb"><span class="identifier">crbegin</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">reverse_iterator</span> <a class="link" href="list.html#idm45971714682032-bb"><span class="identifier">rend</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="identifier">const_reverse_iterator</span> <a class="link" href="list.html#idm45971714678192-bb"><span class="identifier">rend</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_reverse_iterator</span> <a class="link" href="list.html#idm45971714674336-bb"><span class="identifier">crend</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="list.html#idm45971714670480-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">bool</span> <a class="link" href="list.html#idm45971714665632-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="keyword">void</span> <a class="link" href="list.html#idm45971714660912-bb"><span class="identifier">swap</span></a><span class="special">(</span><a class="link" href="list.html" title="Class template list">list</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="list.html#idm45971714655232-bb"><span class="identifier">shift_backwards</span></a><span class="special">(</span><span class="identifier">size_type</span> <span class="special">=</span> <span class="number">1</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">void</span> <a class="link" href="list.html#idm45971714649408-bb"><span class="identifier">shift_forward</span></a><span class="special">(</span><span class="identifier">size_type</span> <span class="special">=</span> <span class="number">1</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="list.html#idm45971714643600-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="identifier">iterator</span> <a class="link" href="list.html#idm45971714637216-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">iterator</span> <a class="link" href="list.html#idm45971714629136-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="identifier">size_type</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="comment">// <a class="link" href="list.html#idm33355-bb">public member functions</a></span> + <span class="keyword">void</span> <a class="link" href="list.html#idm33356-bb"><span class="identifier">push_back</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">void</span> <a class="link" href="list.html#idm33371-bb"><span class="identifier">push_front</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">void</span> <a class="link" href="list.html#idm33386-bb"><span class="identifier">pop_back</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="list.html#idm33397-bb"><span class="identifier">pop_back_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="keyword">void</span> <a class="link" href="list.html#idm33414-bb"><span class="identifier">pop_front</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="list.html#idm33425-bb"><span class="identifier">pop_front_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">reference</span> <a class="link" href="list.html#idm33442-bb"><span class="identifier">front</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">const_reference</span> <a class="link" href="list.html#idm33451-bb"><span class="identifier">front</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">reference</span> <a class="link" href="list.html#idm33460-bb"><span class="identifier">back</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">const_reference</span> <a class="link" href="list.html#idm33469-bb"><span class="identifier">back</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="list.html#idm33478-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="list.html#idm33487-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="list.html#idm33496-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="list.html#idm33505-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="list.html#idm33514-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="list.html#idm33523-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">reverse_iterator</span> <a class="link" href="list.html#idm33532-bb"><span class="identifier">rbegin</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">const_reverse_iterator</span> <a class="link" href="list.html#idm33541-bb"><span class="identifier">rbegin</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_reverse_iterator</span> <a class="link" href="list.html#idm33550-bb"><span class="identifier">crbegin</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">reverse_iterator</span> <a class="link" href="../interprocess/windows_shared_memory.html#idm33559-bb"><span class="identifier">rend</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">const_reverse_iterator</span> <a class="link" href="list.html#idm33568-bb"><span class="identifier">rend</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_reverse_iterator</span> <a class="link" href="list.html#idm33577-bb"><span class="identifier">crend</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="list.html#idm33586-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">bool</span> <a class="link" href="list.html#idm33597-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="keyword">void</span> <a class="link" href="../interprocess/xsi_shared_memory.html#idm33608-bb"><span class="identifier">swap</span></a><span class="special">(</span><a class="link" href="list.html" title="Class template list">list</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="list.html#idm33622-bb"><span class="identifier">shift_backwards</span></a><span class="special">(</span><span class="identifier">size_type</span> <span class="special">=</span> <span class="number">1</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="list.html#idm33636-bb"><span class="identifier">shift_forward</span></a><span class="special">(</span><span class="identifier">size_type</span> <span class="special">=</span> <span class="number">1</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="list.html#idm33650-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="identifier">iterator</span> <a class="link" href="list.html#idm33665-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">iterator</span> <a class="link" href="list.html#idm33684-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="identifier">size_type</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">iterator</span> <a class="link" href="list.html#idm45971714620368-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="identifier">iterator</span> <a class="link" href="list.html#idm33705-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="identifier">iterator</span> <a class="link" href="list.html#idm45971714611536-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="list.html#idm45971714601984-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="list.html#idm45971714597136-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">iterator</span> <a class="link" href="list.html#idm33726-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="list.html#idm33749-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="list.html#idm33760-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="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="list.html#idm45971714589888-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="list.html" title="Class template list">list</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="list.html#idm33777-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="list.html" title="Class template list">list</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="list.html#idm45971714580928-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><a class="link" href="list.html" title="Class template list">list</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="list.html#idm45971714572128-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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">void</span> <a class="link" href="list.html#idm33799-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><a class="link" href="list.html" title="Class template list">list</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="list.html#idm33821-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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">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="list.html#idm45971714564240-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="identifier">const_iterator</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">noexcept</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="list.html#idm45971714555584-bb"><span class="identifier">assign</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="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="list.html#idm33840-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="identifier">const_iterator</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">noexcept</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="list.html#idm33861-bb"><span class="identifier">assign</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="keyword">noexcept</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">typename</span> Disposer<span class="special">></span> - <span class="keyword">void</span> <a class="link" href="list.html#idm45971714547472-bb"><span class="identifier">dispose_and_assign</span></a><span class="special">(</span><span class="identifier">Disposer</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">noexcept</span><span class="special">;</span> - <span class="keyword">void</span> <a class="link" href="list.html#idm45971714537280-bb"><span class="identifier">splice</span></a><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">,</span> <a class="link" href="list.html" title="Class template list">list</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="list.html#idm45971714529856-bb"><span class="identifier">splice</span></a><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">,</span> <a class="link" href="list.html" title="Class template list">list</a> <span class="special">&</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="keyword">void</span> <a class="link" href="list.html#idm45971714521600-bb"><span class="identifier">splice</span></a><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">,</span> <a class="link" href="list.html" title="Class template list">list</a> <span class="special">&</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> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">void</span> <a class="link" href="list.html#idm45971714512640-bb"><span class="identifier">splice</span></a><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">,</span> <a class="link" href="list.html" title="Class template list">list</a> <span class="special">&</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> + <span class="keyword">void</span> <a class="link" href="list.html#idm33880-bb"><span class="identifier">dispose_and_assign</span></a><span class="special">(</span><span class="identifier">Disposer</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">noexcept</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="list.html#idm33904-bb"><span class="identifier">splice</span></a><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">,</span> <a class="link" href="list.html" title="Class template list">list</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="list.html#idm33922-bb"><span class="identifier">splice</span></a><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">,</span> <a class="link" href="list.html" title="Class template list">list</a> <span class="special">&</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="keyword">void</span> <a class="link" href="list.html#idm33942-bb"><span class="identifier">splice</span></a><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">,</span> <a class="link" href="list.html" title="Class template list">list</a> <span class="special">&</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> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="list.html#idm33964-bb"><span class="identifier">splice</span></a><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">,</span> <a class="link" href="list.html" title="Class template list">list</a> <span class="special">&</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> <span class="identifier">size_type</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">void</span> <a class="link" href="list.html#idm45971714503072-bb"><span class="identifier">sort</span></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> Predicate<span class="special">></span> <span class="keyword">void</span> <a class="link" href="list.html#idm45971714498336-bb"><span class="identifier">sort</span></a><span class="special">(</span><span class="identifier">Predicate</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">void</span> <a class="link" href="list.html#idm45971714490384-bb"><span class="identifier">merge</span></a><span class="special">(</span><a class="link" href="list.html" title="Class template list">list</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> Predicate<span class="special">></span> <span class="keyword">void</span> <a class="link" href="list.html#idm45971714484688-bb"><span class="identifier">merge</span></a><span class="special">(</span><a class="link" href="list.html" title="Class template list">list</a> <span class="special">&</span><span class="special">,</span> <span class="identifier">Predicate</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">void</span> <a class="link" href="list.html#idm45971714476464-bb"><span class="identifier">reverse</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="list.html#idm45971714471744-bb"><span class="identifier">remove</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">void</span> <a class="link" href="list.html#idm33988-bb"><span class="identifier">sort</span></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> Predicate<span class="special">></span> <span class="keyword">void</span> <a class="link" href="list.html#idm33999-bb"><span class="identifier">sort</span></a><span class="special">(</span><span class="identifier">Predicate</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="list.html#idm34017-bb"><span class="identifier">merge</span></a><span class="special">(</span><a class="link" href="list.html" title="Class template list">list</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> Predicate<span class="special">></span> <span class="keyword">void</span> <a class="link" href="list.html#idm34031-bb"><span class="identifier">merge</span></a><span class="special">(</span><a class="link" href="list.html" title="Class template list">list</a> <span class="special">&</span><span class="special">,</span> <span class="identifier">Predicate</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="list.html#idm34051-bb"><span class="identifier">reverse</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="list.html#idm34062-bb"><span class="identifier">remove</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">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="list.html#idm45971714466160-bb"><span class="identifier">remove_and_dispose</span></a><span class="special">(</span><span class="identifier">const_reference</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> Pred<span class="special">></span> <span class="keyword">void</span> <a class="link" href="list.html#idm45971714458112-bb"><span class="identifier">remove_if</span></a><span class="special">(</span><span class="identifier">Pred</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="list.html#idm34075-bb"><span class="identifier">remove_and_dispose</span></a><span class="special">(</span><span class="identifier">const_reference</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> Pred<span class="special">></span> <span class="keyword">void</span> <a class="link" href="list.html#idm34094-bb"><span class="identifier">remove_if</span></a><span class="special">(</span><span class="identifier">Pred</span><span class="special">)</span><span class="special">;</span> <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Pred<span class="special">,</span> <span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="keyword">void</span> <a class="link" href="list.html#idm45971714451952-bb"><span class="identifier">remove_and_dispose_if</span></a><span class="special">(</span><span class="identifier">Pred</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="list.html#idm45971714443616-bb"><span class="identifier">unique</span></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> BinaryPredicate<span class="special">></span> <span class="keyword">void</span> <a class="link" href="list.html#idm45971714438976-bb"><span class="identifier">unique</span></a><span class="special">(</span><span class="identifier">BinaryPredicate</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="list.html#idm45971714432784-bb"><span class="identifier">unique_and_dispose</span></a><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="list.html#idm34109-bb"><span class="identifier">remove_and_dispose_if</span></a><span class="special">(</span><span class="identifier">Pred</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="list.html#idm34129-bb"><span class="identifier">unique</span></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> BinaryPredicate<span class="special">></span> <span class="keyword">void</span> <a class="link" href="list.html#idm34140-bb"><span class="identifier">unique</span></a><span class="special">(</span><span class="identifier">BinaryPredicate</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="list.html#idm34155-bb"><span class="identifier">unique_and_dispose</span></a><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> BinaryPredicate<span class="special">,</span> <span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="keyword">void</span> <a class="link" href="list.html#idm45971714425664-bb"><span class="identifier">unique_and_dispose</span></a><span class="special">(</span><span class="identifier">BinaryPredicate</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="list.html#idm45971714417296-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="list.html#idm45971714410992-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="keyword">void</span> <a class="link" href="list.html#idm45971714404688-bb"><span class="identifier">check</span></a><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="list.html#idm34172-bb"><span class="identifier">unique_and_dispose</span></a><span class="special">(</span><span class="identifier">BinaryPredicate</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="list.html#idm34192-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="list.html#idm34207-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="keyword">void</span> <a class="link" href="list.html#idm34222-bb"><span class="identifier">check</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="comment">// <a class="link" href="list.html#idm45971714375776-bb">public static functions</a></span> - <span class="keyword">static</span> <a class="link" href="list.html" title="Class template list">list</a> <span class="special">&</span> <a class="link" href="list.html#idm45971714375216-bb"><span class="identifier">container_from_end_iterator</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="list.html" title="Class template list">list</a> <span class="special">&</span> <a class="link" href="list.html#idm45971714369232-bb"><span class="identifier">container_from_end_iterator</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">static</span> <span class="identifier">iterator</span> <a class="link" href="list.html#idm45971714363072-bb"><span class="identifier">s_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_iterator</span> <a class="link" href="list.html#idm45971714356000-bb"><span class="identifier">s_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="comment">// <a class="link" href="list.html#idm34296-bb">public static functions</a></span> + <span class="keyword">static</span> <a class="link" href="list.html" title="Class template list">list</a> <span class="special">&</span> <a class="link" href="list.html#idm34297-bb"><span class="identifier">container_from_end_iterator</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="list.html" title="Class template list">list</a> <span class="special">&</span> <a class="link" href="list.html#idm34311-bb"><span class="identifier">container_from_end_iterator</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">static</span> <span class="identifier">iterator</span> <a class="link" href="list.html#idm34325-bb"><span class="identifier">s_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_iterator</span> <a class="link" href="list.html#idm34341-bb"><span class="identifier">s_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="comment">// public data members</span> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">bool</span> <span class="identifier">constant_time_size</span><span class="special">;</span> @@ -148,48 +149,48 @@ <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">bool</span> <span class="identifier">has_container_from_iterator</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.18.3.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.18.3.4"></a><h2>Description</h2> <p>The class template list is an intrusive container that mimics most of the interface of std::list as described in the C++ standard.</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> <p>The container supports the following options: <code class="computeroutput">base_hook<>/member_hook<>/value_traits<></code>, <code class="computeroutput">constant_time_size<></code> and <code class="computeroutput">size_type<></code>. </p> <div class="refsect2"> -<a name="id-1.3.20.42.18.3.4.5"></a><h3> +<a name="id-1.3.18.42.18.3.4.5"></a><h3> <a name="boost.intrusive.listconstruct-copy-destruct"></a><code class="computeroutput">list</code> public construct/copy/destruct</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> <li class="listitem"> -<pre class="literallayout"><a name="idm45971714400576-bb"></a><span class="identifier">list</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm34231-bb"></a><span class="identifier">list</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: constructs an empty list.</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 constructor throws (this does not happen with predefined Boost.Intrusive hooks). </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">explicit</span> <a name="idm45971714397504-bb"></a><span class="identifier">list</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="special">;</span></pre> +<pre class="literallayout"><span class="keyword">explicit</span> <a name="idm34239-bb"></a><span class="identifier">list</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="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: constructs an empty list.</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 constructor throws (this does not happen with predefined Boost.Intrusive hooks). </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> - <a name="idm45971714393472-bb"></a><span class="identifier">list</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="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> + <a name="idm34249-bb"></a><span class="identifier">list</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="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> <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>: Constructs a list equal to the range [first,last).</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear in distance(b, e). No copy constructors are called.</p> <p><span class="bold"><strong>Throws</strong></span>: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks). </p> </li> <li class="listitem"> -<pre class="literallayout"><a name="idm45971714386240-bb"></a><span class="identifier">list</span><span class="special">(</span><a class="link" href="list.html" title="Class template list">list</a> <span class="special">&&</span> x<span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm34268-bb"></a><span class="identifier">list</span><span class="special">(</span><a class="link" href="list.html" title="Class template list">list</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 are move constructed and nodes belonging to x (except the node representing the "end") 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 throws. </p> </li> <li class="listitem"> -<pre class="literallayout"><a class="link" href="list.html" title="Class template list">list</a> <span class="special">&</span> <a name="idm45971714381968-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><a class="link" href="list.html" title="Class template list">list</a> <span class="special">&&</span> x<span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a class="link" href="list.html" title="Class template list">list</a> <span class="special">&</span> <a name="idm34279-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><a class="link" href="list.html" title="Class template list">list</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="idm45971714379152-bb"></a><span class="special">~</span><span class="identifier">list</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm34288-bb"></a><span class="special">~</span><span class="identifier">list</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: If it's not a safe-mode or an auto-unlink value_type the destructor does nothing (ie. no code is generated). Otherwise it detaches all elements from this. In this case the objects in the list are not deleted (i.e. no destructors are called), but the hooks according to the ValueTraits template parameter are set to their default value.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to the number of elements in the list, if it's a safe-mode or auto-unlink value . Otherwise constant. </p> @@ -197,11 +198,11 @@ </ol></div> </div> <div class="refsect2"> -<a name="id-1.3.20.42.18.3.4.6"></a><h3> -<a name="idm45971714768992-bb"></a><code class="computeroutput">list</code> public member functions</h3> +<a name="id-1.3.18.42.18.3.4.6"></a><h3> +<a name="idm33355-bb"></a><code class="computeroutput">list</code> public member functions</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971714768432-bb"></a><span class="identifier">push_back</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">void</span> <a name="idm33356-bb"></a><span class="identifier">push_back</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.</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts the value in the back of the list. No copy constructors are called.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> @@ -209,7 +210,7 @@ <p><span class="bold"><strong>Note</strong></span>: Does not affect the validity of iterators and references. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971714762128-bb"></a><span class="identifier">push_front</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">void</span> <a name="idm33371-bb"></a><span class="identifier">push_front</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.</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts the value in the front of the list. No copy constructors are called.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> @@ -217,7 +218,7 @@ <p><span class="bold"><strong>Note</strong></span>: Does not affect the validity of iterators and references. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971714755824-bb"></a><span class="identifier">pop_back</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="idm33386-bb"></a><span class="identifier">pop_back</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 the last element of the list. No destructors are called.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> @@ -225,7 +226,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="idm45971714751072-bb"></a><span class="identifier">pop_back_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> + <span class="keyword">void</span> <a name="idm33397-bb"></a><span class="identifier">pop_back_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 the last element of the list. No destructors are called. Disposer::operator()(pointer) is called for the removed element.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> @@ -233,7 +234,7 @@ <p><span class="bold"><strong>Note</strong></span>: Invalidates the iterators to the erased element. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971714743872-bb"></a><span class="identifier">pop_front</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="idm33414-bb"></a><span class="identifier">pop_front</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 the first element of the list. No destructors are called.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> @@ -241,7 +242,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="idm45971714739120-bb"></a><span class="identifier">pop_front_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> + <span class="keyword">void</span> <a name="idm33425-bb"></a><span class="identifier">pop_front_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 the first element of the list. No destructors are called. Disposer::operator()(pointer) is called for the removed element.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> @@ -249,138 +250,138 @@ <p><span class="bold"><strong>Note</strong></span>: Invalidates the iterators to the erased element. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">reference</span> <a name="idm45971714731920-bb"></a><span class="identifier">front</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">reference</span> <a name="idm33442-bb"></a><span class="identifier">front</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 a reference to the first element of the list.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reference</span> <a name="idm45971714728096-bb"></a><span class="identifier">front</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_reference</span> <a name="idm33451-bb"></a><span class="identifier">front</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_reference to the first element of the list.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">reference</span> <a name="idm45971714724256-bb"></a><span class="identifier">back</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">reference</span> <a name="idm33460-bb"></a><span class="identifier">back</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 a reference to the last element of the list.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reference</span> <a name="idm45971714720432-bb"></a><span class="identifier">back</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_reference</span> <a name="idm33469-bb"></a><span class="identifier">back</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_reference to the last element of the list.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971714716592-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="idm33478-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 to the first element contained in the list.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971714712752-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="idm33487-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 to the first element contained in the list.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971714708912-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="idm33496-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 to the first element contained in the list.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971714705072-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="idm33505-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 to the end of the list.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971714701248-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="idm33514-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 to the end of the list.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971714697424-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="idm33523-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 constant iterator to the end of the list.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">reverse_iterator</span> <a name="idm45971714693600-bb"></a><span class="identifier">rbegin</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">reverse_iterator</span> <a name="idm33532-bb"></a><span class="identifier">rbegin</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 a reverse_iterator pointing to the beginning of the reversed list.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45971714689744-bb"></a><span class="identifier">rbegin</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_reverse_iterator</span> <a name="idm33541-bb"></a><span class="identifier">rbegin</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_reverse_iterator pointing to the beginning of the reversed list.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45971714685888-bb"></a><span class="identifier">crbegin</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_reverse_iterator</span> <a name="idm33550-bb"></a><span class="identifier">crbegin</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_reverse_iterator pointing to the beginning of the reversed list.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">reverse_iterator</span> <a name="idm45971714682032-bb"></a><span class="identifier">rend</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">reverse_iterator</span> <a name="idm33559-bb"></a><span class="identifier">rend</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 a reverse_iterator pointing to the end of the reversed list.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45971714678192-bb"></a><span class="identifier">rend</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_reverse_iterator</span> <a name="idm33568-bb"></a><span class="identifier">rend</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_reverse_iterator pointing to the end of the reversed list.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45971714674336-bb"></a><span class="identifier">crend</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_reverse_iterator</span> <a name="idm33577-bb"></a><span class="identifier">crend</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_reverse_iterator pointing to the end of the reversed list.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">size_type</span> <a name="idm45971714670480-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="idm33586-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 the elements contained in the list.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to the number of elements contained in the list. if constant-time size option is disabled. Constant time otherwise.</p> <p><span class="bold"><strong>Note</strong></span>: Does not affect the validity of iterators and references. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">bool</span> <a name="idm45971714665632-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="idm33597-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 list contains no elements.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> <p><span class="bold"><strong>Note</strong></span>: Does not affect the validity of iterators and references. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971714660912-bb"></a><span class="identifier">swap</span><span class="special">(</span><a class="link" href="list.html" title="Class template list">list</a> <span class="special">&</span> other<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">void</span> <a name="idm33608-bb"></a><span class="identifier">swap</span><span class="special">(</span><a class="link" href="list.html" title="Class template list">list</a> <span class="special">&</span> other<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Swaps the elements of x and *this.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> <p><span class="bold"><strong>Note</strong></span>: Does not affect the validity of iterators and references. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971714655232-bb"></a><span class="identifier">shift_backwards</span><span class="special">(</span><span class="identifier">size_type</span> n <span class="special">=</span> <span class="number">1</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="idm33622-bb"></a><span class="identifier">shift_backwards</span><span class="special">(</span><span class="identifier">size_type</span> n <span class="special">=</span> <span class="number">1</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Moves backwards all the elements, so that the first element becomes the second, the second becomes the third... the last element becomes the first one.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to the number of shifts.</p> <p><span class="bold"><strong>Note</strong></span>: Does not affect the validity of iterators and references. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971714649408-bb"></a><span class="identifier">shift_forward</span><span class="special">(</span><span class="identifier">size_type</span> n <span class="special">=</span> <span class="number">1</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="idm33636-bb"></a><span class="identifier">shift_forward</span><span class="special">(</span><span class="identifier">size_type</span> n <span class="special">=</span> <span class="number">1</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Moves forward all the elements, so that the second element becomes the first, the third becomes the second... the first element becomes the last one.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to the number of shifts.</p> <p><span class="bold"><strong>Note</strong></span>: Does not affect the validity of iterators and references. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971714643600-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="identifier">iterator</span> <a name="idm33650-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 by i of the list. No destructors are called.</p> <p><span class="bold"><strong>Returns</strong></span>: the first element remaining beyond the removed element, or end() if no such element exists.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> @@ -388,7 +389,7 @@ <p><span class="bold"><strong>Note</strong></span>: Invalidates the iterators (but not the references) to the erased element. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971714637216-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="identifier">iterator</span> <a name="idm33665-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>Requires</strong></span>: b and e must be valid iterators to elements in *this.</p> <p><span class="bold"><strong>Effects</strong></span>: Erases the element range pointed by b and e No destructors are called.</p> <p><span class="bold"><strong>Returns</strong></span>: the first element remaining beyond the removed elements, or end() if no such element exists.</p> @@ -397,7 +398,7 @@ <p><span class="bold"><strong>Note</strong></span>: Invalidates the iterators (but not the references) to the erased elements. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971714629136-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="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">iterator</span> <a name="idm33684-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="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>: b and e must be valid iterators to elements in *this. n must be distance(b, e).</p> <p><span class="bold"><strong>Effects</strong></span>: Erases the element range pointed by b and e No destructors are called.</p> <p><span class="bold"><strong>Returns</strong></span>: the first element remaining beyond the removed elements, or end() if no such element exists.</p> @@ -407,7 +408,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">iterator</span> <a name="idm45971714620368-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="identifier">iterator</span> <a name="idm33705-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 by i of the list. No destructors are called. Disposer::operator()(pointer) is called for the removed element.</p> <p><span class="bold"><strong>Returns</strong></span>: the first element remaining beyond the removed element, or end() if no such element exists.</p> @@ -417,7 +418,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">iterator</span> <a name="idm45971714611536-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">iterator</span> <a name="idm33726-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 element range pointed by b and e No destructors are called. Disposer::operator()(pointer) is called for the removed elements.</p> @@ -427,14 +428,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="idm45971714601984-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="idm33749-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 the elements of the container. No destructors are called.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to the number of elements of the list. if it's a safe-mode or auto-unlink value_type. Constant time otherwise.</p> <p><span class="bold"><strong>Note</strong></span>: Invalidates the iterators (but not the references) to the erased elements. </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="idm45971714597136-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="idm33760-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 the elements of the container. No destructors are called. Disposer::operator()(pointer) is called for the removed elements.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> @@ -443,7 +444,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="idm45971714589888-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="list.html" title="Class template list">list</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="idm33777-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="list.html" title="Class template list">list</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 equivalent to the original nodes.</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.</p> <p>If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).</p> @@ -452,7 +453,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="idm45971714580928-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><a class="link" href="list.html" title="Class template list">list</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="idm33799-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><a class="link" href="list.html" title="Class template list">list</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 equivalent to the original nodes.</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.</p> <p>If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).</p> @@ -460,7 +461,7 @@ <p><span class="bold"><strong>Throws</strong></span>: If cloner throws. Basic guarantee. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971714572128-bb"></a><span class="identifier">insert</span><span class="special">(</span><span class="identifier">const_iterator</span> p<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="idm33821-bb"></a><span class="identifier">insert</span><span class="special">(</span><span class="identifier">const_iterator</span> p<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 p must be a valid iterator of *this.</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts the value before the position pointed by p.</p> <p><span class="bold"><strong>Returns</strong></span>: An iterator to the inserted element.</p> @@ -470,7 +471,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> - <span class="keyword">void</span> <a name="idm45971714564240-bb"></a><span class="identifier">insert</span><span class="special">(</span><span class="identifier">const_iterator</span> p<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">noexcept</span><span class="special">;</span></pre> + <span class="keyword">void</span> <a name="idm33840-bb"></a><span class="identifier">insert</span><span class="special">(</span><span class="identifier">const_iterator</span> p<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">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: Dereferencing iterator must yield an lvalue of type value_type and p must be a valid iterator of *this.</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts the range pointed by b and e before the position p. No copy constructors are called.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> @@ -478,7 +479,7 @@ <p><span class="bold"><strong>Note</strong></span>: Does not affect the validity of iterators and references. </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="idm45971714555584-bb"></a><span class="identifier">assign</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="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> Iterator<span class="special">></span> <span class="keyword">void</span> <a name="idm33861-bb"></a><span class="identifier">assign</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="keyword">noexcept</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>: Clears the list and inserts the range pointed by b and e. No destructors or copy constructors are called.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> @@ -487,7 +488,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> <span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="keyword">void</span> <a name="idm45971714547472-bb"></a><span class="identifier">dispose_and_assign</span><span class="special">(</span><span class="identifier">Disposer</span> disposer<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">noexcept</span><span class="special">;</span></pre> + <span class="keyword">void</span> <a name="idm33880-bb"></a><span class="identifier">dispose_and_assign</span><span class="special">(</span><span class="identifier">Disposer</span> disposer<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">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>Requires</strong></span>: Dereferencing iterator must yield an lvalue of type value_type.</p> <p><span class="bold"><strong>Effects</strong></span>: Clears the list and inserts the range pointed by b and e. No destructors or copy constructors are called. Disposer::operator()(pointer) is called for the removed elements.</p> @@ -496,7 +497,7 @@ <p><span class="bold"><strong>Note</strong></span>: Invalidates the iterators (but not the references) to the erased elements. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971714537280-bb"></a><span class="identifier">splice</span><span class="special">(</span><span class="identifier">const_iterator</span> p<span class="special">,</span> <a class="link" href="list.html" title="Class template list">list</a> <span class="special">&</span> x<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">void</span> <a name="idm33904-bb"></a><span class="identifier">splice</span><span class="special">(</span><span class="identifier">const_iterator</span> p<span class="special">,</span> <a class="link" href="list.html" title="Class template list">list</a> <span class="special">&</span> x<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: p must be a valid iterator of *this.</p> <p><span class="bold"><strong>Effects</strong></span>: Transfers all the elements of list x to this list, before the the element pointed by p. No destructors or copy constructors are called.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> @@ -504,7 +505,7 @@ <p><span class="bold"><strong>Note</strong></span>: Iterators of values obtained from list x now point to elements of this list. Iterators of this list and all the references are not invalidated. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971714529856-bb"></a><span class="identifier">splice</span><span class="special">(</span><span class="identifier">const_iterator</span> p<span class="special">,</span> <a class="link" href="list.html" title="Class template list">list</a> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">const_iterator</span> new_ele<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">void</span> <a name="idm33922-bb"></a><span class="identifier">splice</span><span class="special">(</span><span class="identifier">const_iterator</span> p<span class="special">,</span> <a class="link" href="list.html" title="Class template list">list</a> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">const_iterator</span> new_ele<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: p must be a valid iterator of *this. new_ele must point to an element contained in list x.</p> <p><span class="bold"><strong>Effects</strong></span>: Transfers the value pointed by new_ele, from list x to this list, before the element pointed by p. No destructors or copy constructors are called. If p == new_ele or p == ++new_ele, this function is a null operation.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> @@ -512,7 +513,7 @@ <p><span class="bold"><strong>Note</strong></span>: Iterators of values obtained from list x now point to elements of this list. Iterators of this list and all the references are not invalidated. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971714521600-bb"></a><span class="identifier">splice</span><span class="special">(</span><span class="identifier">const_iterator</span> p<span class="special">,</span> <a class="link" href="list.html" title="Class template list">list</a> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">const_iterator</span> f<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="idm33942-bb"></a><span class="identifier">splice</span><span class="special">(</span><span class="identifier">const_iterator</span> p<span class="special">,</span> <a class="link" href="list.html" title="Class template list">list</a> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">const_iterator</span> f<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>Requires</strong></span>: p must be a valid iterator of *this. f and e must point to elements contained in list x.</p> <p><span class="bold"><strong>Effects</strong></span>: Transfers the range pointed by f and e from list x to this list, before the element pointed by p. No destructors or copy constructors are called.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> @@ -520,7 +521,7 @@ <p><span class="bold"><strong>Note</strong></span>: Iterators of values obtained from list x now point to elements of this list. Iterators of this list and all the references are not invalidated. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971714512640-bb"></a><span class="identifier">splice</span><span class="special">(</span><span class="identifier">const_iterator</span> p<span class="special">,</span> <a class="link" href="list.html" title="Class template list">list</a> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">const_iterator</span> f<span class="special">,</span> <span class="identifier">const_iterator</span> e<span class="special">,</span> +<pre class="literallayout"><span class="keyword">void</span> <a name="idm33964-bb"></a><span class="identifier">splice</span><span class="special">(</span><span class="identifier">const_iterator</span> p<span class="special">,</span> <a class="link" href="list.html" title="Class template list">list</a> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">const_iterator</span> f<span class="special">,</span> <span class="identifier">const_iterator</span> e<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>: p must be a valid iterator of *this. f and e must point to elements contained in list x. n == distance(f, e)</p> <p><span class="bold"><strong>Effects</strong></span>: Transfers the range pointed by f and e from list x to this list, before the element pointed by p. No destructors or copy constructors are called.</p> @@ -529,14 +530,14 @@ <p><span class="bold"><strong>Note</strong></span>: Iterators of values obtained from list x now point to elements of this list. Iterators of this list and all the references are not invalidated. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971714503072-bb"></a><span class="identifier">sort</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">void</span> <a name="idm33988-bb"></a><span class="identifier">sort</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: This function sorts the list *this according to operator <. The sort is stable, that is, the relative order of equivalent elements is preserved.</p> <p><span class="bold"><strong>Throws</strong></span>: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or operator < throws. Basic guarantee.</p> <p><span class="bold"><strong>Notes</strong></span>: Iterators and references are not invalidated.</p> <p><span class="bold"><strong>Complexity</strong></span>: The number of comparisons is approximately N log N, where N is the list's size. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Predicate<span class="special">></span> <span class="keyword">void</span> <a name="idm45971714498336-bb"></a><span class="identifier">sort</span><span class="special">(</span><span class="identifier">Predicate</span> p<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> Predicate<span class="special">></span> <span class="keyword">void</span> <a name="idm33999-bb"></a><span class="identifier">sort</span><span class="special">(</span><span class="identifier">Predicate</span> p<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: p must be a comparison function that induces a strict weak ordering</p> <p><span class="bold"><strong>Effects</strong></span>: This function sorts the list *this according to p. The sort is stable, that is, the relative order of equivalent elements is preserved.</p> <p><span class="bold"><strong>Throws</strong></span>: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the predicate throws. Basic guarantee.</p> @@ -544,14 +545,14 @@ <p><span class="bold"><strong>Complexity</strong></span>: The number of comparisons is approximately N log N, where N is the list's size. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971714490384-bb"></a><span class="identifier">merge</span><span class="special">(</span><a class="link" href="list.html" title="Class template list">list</a> <span class="special">&</span> x<span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">void</span> <a name="idm34017-bb"></a><span class="identifier">merge</span><span class="special">(</span><a class="link" href="list.html" title="Class template list">list</a> <span class="special">&</span> x<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: This function removes all of x's elements and inserts them in order into *this according to operator <. The merge is stable; that is, if an element from *this is equivalent to one from x, then the element from *this will precede the one from x.</p> <p><span class="bold"><strong>Throws</strong></span>: If operator < throws. Basic guarantee.</p> <p><span class="bold"><strong>Complexity</strong></span>: This function is linear time: it performs at most size() + x.size() - 1 comparisons.</p> <p><span class="bold"><strong>Note</strong></span>: Iterators and references are not invalidated </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Predicate<span class="special">></span> <span class="keyword">void</span> <a name="idm45971714484688-bb"></a><span class="identifier">merge</span><span class="special">(</span><a class="link" href="list.html" title="Class template list">list</a> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">Predicate</span> p<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> Predicate<span class="special">></span> <span class="keyword">void</span> <a name="idm34031-bb"></a><span class="identifier">merge</span><span class="special">(</span><a class="link" href="list.html" title="Class template list">list</a> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">Predicate</span> p<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: p must be a comparison function that induces a strict weak ordering and both *this and x must be sorted according to that ordering The lists x and *this must be distinct.</p> <p><span class="bold"><strong>Effects</strong></span>: This function removes all of x's elements and inserts them in order into *this. The merge is stable; that is, if an element from *this is equivalent to one from x, then the element from *this will precede the one from x.</p> <p><span class="bold"><strong>Throws</strong></span>: If the predicate throws. Basic guarantee.</p> @@ -559,14 +560,14 @@ <p><span class="bold"><strong>Note</strong></span>: Iterators and references are not invalidated. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971714476464-bb"></a><span class="identifier">reverse</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="idm34051-bb"></a><span class="identifier">reverse</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>: Reverses the order of elements in the list.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: This function is linear time.</p> <p><span class="bold"><strong>Note</strong></span>: Iterators and references are not invalidated </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971714471744-bb"></a><span class="identifier">remove</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> +<pre class="literallayout"><span class="keyword">void</span> <a name="idm34062-bb"></a><span class="identifier">remove</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>Effects</strong></span>: Removes all the elements that compare equal to value. No destructors are called.</p> <p><span class="bold"><strong>Throws</strong></span>: If operator == throws. Basic guarantee.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear time. It performs exactly size() comparisons for equality.</p> @@ -574,7 +575,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="idm45971714466160-bb"></a><span class="identifier">remove_and_dispose</span><span class="special">(</span><span class="identifier">const_reference</span> value<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="idm34075-bb"></a><span class="identifier">remove_and_dispose</span><span class="special">(</span><span class="identifier">const_reference</span> value<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>: Removes all the elements that compare equal to value. Disposer::operator()(pointer) is called for every removed element.</p> <p><span class="bold"><strong>Throws</strong></span>: If operator == throws. Basic guarantee.</p> @@ -582,7 +583,7 @@ <p><span class="bold"><strong>Note</strong></span>: The relative order of elements that are not removed is unchanged, and iterators to elements that are not removed remain valid. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Pred<span class="special">></span> <span class="keyword">void</span> <a name="idm45971714458112-bb"></a><span class="identifier">remove_if</span><span class="special">(</span><span class="identifier">Pred</span> pred<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> Pred<span class="special">></span> <span class="keyword">void</span> <a name="idm34094-bb"></a><span class="identifier">remove_if</span><span class="special">(</span><span class="identifier">Pred</span> pred<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Removes all the elements for which a specified predicate is satisfied. No destructors are called.</p> <p><span class="bold"><strong>Throws</strong></span>: If pred throws. Basic guarantee.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear time. It performs exactly size() calls to the predicate.</p> @@ -590,7 +591,7 @@ </li> <li class="listitem"> <pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Pred<span class="special">,</span> <span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="keyword">void</span> <a name="idm45971714451952-bb"></a><span class="identifier">remove_and_dispose_if</span><span class="special">(</span><span class="identifier">Pred</span> pred<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="idm34109-bb"></a><span class="identifier">remove_and_dispose_if</span><span class="special">(</span><span class="identifier">Pred</span> pred<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>: Removes all the elements for which a specified predicate is satisfied. Disposer::operator()(pointer) is called for every removed element.</p> <p><span class="bold"><strong>Throws</strong></span>: If pred throws. Basic guarantee.</p> @@ -598,21 +599,21 @@ <p><span class="bold"><strong>Note</strong></span>: The relative order of elements that are not removed is unchanged, and iterators to elements that are not removed remain valid. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971714443616-bb"></a><span class="identifier">unique</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">void</span> <a name="idm34129-bb"></a><span class="identifier">unique</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Removes adjacent duplicate elements or adjacent elements that are equal from the list. No destructors are called.</p> <p><span class="bold"><strong>Throws</strong></span>: If std::equal_to<value_type throws. Basic guarantee.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear time (size()-1 comparisons calls to pred()).</p> <p><span class="bold"><strong>Note</strong></span>: The relative order of elements that are not removed is unchanged, and iterators to elements that are not removed remain valid. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> BinaryPredicate<span class="special">></span> <span class="keyword">void</span> <a name="idm45971714438976-bb"></a><span class="identifier">unique</span><span class="special">(</span><span class="identifier">BinaryPredicate</span> pred<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> BinaryPredicate<span class="special">></span> <span class="keyword">void</span> <a name="idm34140-bb"></a><span class="identifier">unique</span><span class="special">(</span><span class="identifier">BinaryPredicate</span> pred<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Removes adjacent duplicate elements or adjacent elements that satisfy some binary predicate from the list. No destructors are called.</p> <p><span class="bold"><strong>Throws</strong></span>: If pred throws. Basic guarantee.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear time (size()-1 comparisons equality comparisons).</p> <p><span class="bold"><strong>Note</strong></span>: The relative order of elements that are not removed is unchanged, and iterators to elements that are not removed remain valid. </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="idm45971714432784-bb"></a><span class="identifier">unique_and_dispose</span><span class="special">(</span><span class="identifier">Disposer</span> disposer<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> Disposer<span class="special">></span> <span class="keyword">void</span> <a name="idm34155-bb"></a><span class="identifier">unique_and_dispose</span><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>: Removes adjacent duplicate elements or adjacent elements that are equal from the list. Disposer::operator()(pointer) is called for every removed element.</p> <p><span class="bold"><strong>Throws</strong></span>: If std::equal_to<value_type throws. Basic guarantee.</p> @@ -621,7 +622,7 @@ </li> <li class="listitem"> <pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> BinaryPredicate<span class="special">,</span> <span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="keyword">void</span> <a name="idm45971714425664-bb"></a><span class="identifier">unique_and_dispose</span><span class="special">(</span><span class="identifier">BinaryPredicate</span> pred<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="idm34172-bb"></a><span class="identifier">unique_and_dispose</span><span class="special">(</span><span class="identifier">BinaryPredicate</span> pred<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>: Removes adjacent duplicate elements or adjacent elements that satisfy some binary predicate from the list. Disposer::operator()(pointer) is called for every removed element.</p> <p><span class="bold"><strong>Throws</strong></span>: If pred throws. Basic guarantee.</p> @@ -629,7 +630,7 @@ <p><span class="bold"><strong>Note</strong></span>: The relative order of elements that are not removed is unchanged, and iterators to elements that are not removed remain valid. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971714417296-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="idm34192-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 a reference to a value inserted in a list.</p> <p><span class="bold"><strong>Effects</strong></span>: This function returns a const_iterator pointing to the element</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> @@ -637,7 +638,7 @@ <p><span class="bold"><strong>Note</strong></span>: Iterators and references are not invalidated. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971714410992-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="idm34207-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 a const reference to a value inserted in a list.</p> <p><span class="bold"><strong>Effects</strong></span>: This function returns an iterator pointing to the element.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> @@ -645,7 +646,7 @@ <p><span class="bold"><strong>Note</strong></span>: Iterators and references are not invalidated. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971714404688-bb"></a><span class="identifier">check</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">void</span> <a name="idm34222-bb"></a><span class="identifier">check</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>: Asserts the integrity of the container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear time.</p> <p><span class="bold"><strong>Note</strong></span>: The method has no effect when asserts are turned off (e.g., with NDEBUG). Experimental function, interface might change in future versions. </p> @@ -653,11 +654,11 @@ </ol></div> </div> <div class="refsect2"> -<a name="id-1.3.20.42.18.3.4.7"></a><h3> -<a name="idm45971714375776-bb"></a><code class="computeroutput">list</code> public static functions</h3> +<a name="id-1.3.18.42.18.3.4.7"></a><h3> +<a name="idm34296-bb"></a><code class="computeroutput">list</code> public static functions</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <a class="link" href="list.html" title="Class template list">list</a> <span class="special">&</span> <a name="idm45971714375216-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <a class="link" href="list.html" title="Class template list">list</a> <span class="special">&</span> <a name="idm34297-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Precondition</strong></span>: end_iterator must be a valid end iterator of list.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the list associated to the end iterator</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> @@ -665,14 +666,14 @@ </li> <li class="listitem"> <pre class="literallayout"><span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="list.html" title="Class template list">list</a> <span class="special">&</span> -<a name="idm45971714369232-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">const_iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<a name="idm34311-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">const_iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Precondition</strong></span>: end_iterator must be a valid end const_iterator of list.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the list associated to the end iterator</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="identifier">iterator</span> <a name="idm45971714363072-bb"></a><span class="identifier">s_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">iterator</span> <a name="idm34325-bb"></a><span class="identifier">s_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 a reference to a value inserted in a list.</p> <p><span class="bold"><strong>Effects</strong></span>: This function returns a const_iterator pointing to the element</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> @@ -680,7 +681,7 @@ <p><span class="bold"><strong>Note</strong></span>: Iterators and references are not invalidated. 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">const_iterator</span> <a name="idm45971714356000-bb"></a><span class="identifier">s_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> +<pre class="literallayout"><span class="keyword">static</span> <span class="identifier">const_iterator</span> <a name="idm34341-bb"></a><span class="identifier">s_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 a const reference to a value inserted in a list.</p> <p><span class="bold"><strong>Effects</strong></span>: This function returns an iterator pointing to the element.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> @@ -691,14 +692,11 @@ </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="link_mode_type.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.list_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_list.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/list_base_hook.html b/doc/html/boost/intrusive/list_base_hook.html index 2ea802495e..fda0cdb6aa 100644 --- a/doc/html/boost/intrusive/list_base_hook.html +++ b/doc/html/boost/intrusive/list_base_hook.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.list_hook_hpp" title="Header <boost/intrusive/list_hook.hpp>"> <link rel="prev" href="make_list.html" title="Struct template make_list"> <link rel="next" href="list_member_hook.html" title="Class template list_member_hook"> +<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> @@ -29,78 +30,78 @@ <h2><span class="refentrytitle">Class template list_base_hook</span></h2> <p>boost::intrusive::list_base_hook</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.list_hook_hpp" title="Header <boost/intrusive/list_hook.hpp>">boost/intrusive/list_hook.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.list_hook_hpp" title="Header <boost/intrusive/list_hook.hpp>">boost/intrusive/list_hook.hpp</a>> </span><span class="keyword">template</span><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="list_base_hook.html" title="Class template list_base_hook">list_base_hook</a> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">make_list_base_hook</span><span class="special">::</span><span class="identifier">type</span><span class="special"><</span> <span class="identifier">O1</span><span class="special">,</span> <span class="identifier">O2</span><span class="special">,</span> <span class="identifier">O3</span> <span class="special">></span> <span class="special">{</span> +<span class="keyword">class</span> <a class="link" href="list_base_hook.html" title="Class template list_base_hook">list_base_hook</a> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">make_list_base_hook</span><span class="special">::</span><span class="identifier">type</span> <span class="special">{</span> <span class="keyword">public</span><span class="special">:</span> <span class="comment">// <a class="link" href="list_base_hook.html#boost.intrusive.list_base_hookconstruct-copy-destruct">construct/copy/destruct</a></span> - <a class="link" href="list_base_hook.html#idm45971714317056-bb"><span class="identifier">list_base_hook</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <a class="link" href="list_base_hook.html#idm45971714313008-bb"><span class="identifier">list_base_hook</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="list_base_hook.html" title="Class template list_base_hook">list_base_hook</a> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <a class="link" href="list_base_hook.html" title="Class template list_base_hook">list_base_hook</a> <span class="special">&</span> <a class="link" href="list_base_hook.html#idm45971714306368-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="list_base_hook.html" title="Class template list_base_hook">list_base_hook</a> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <a class="link" href="list_base_hook.html#idm45971714300800-bb"><span class="special">~</span><span class="identifier">list_base_hook</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="list_base_hook.html#idm34429-bb"><span class="identifier">list_base_hook</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <a class="link" href="list_base_hook.html#idm34438-bb"><span class="identifier">list_base_hook</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="list_base_hook.html" title="Class template list_base_hook">list_base_hook</a> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <a class="link" href="list_base_hook.html" title="Class template list_base_hook">list_base_hook</a> <span class="special">&</span> <a class="link" href="list_base_hook.html#idm34453-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="list_base_hook.html" title="Class template list_base_hook">list_base_hook</a> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <a class="link" href="list_base_hook.html#idm34467-bb"><span class="special">~</span><span class="identifier">list_base_hook</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> - <span class="comment">// <a class="link" href="list_base_hook.html#idm45971714333216-bb">public member functions</a></span> - <span class="keyword">void</span> <a class="link" href="list_base_hook.html#idm45971714332656-bb"><span class="identifier">swap_nodes</span></a><span class="special">(</span><a class="link" href="list_base_hook.html" title="Class template list_base_hook">list_base_hook</a> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">bool</span> <a class="link" href="list_base_hook.html#idm45971714327376-bb"><span class="identifier">is_linked</span></a><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="list_base_hook.html#idm45971714321408-bb"><span class="identifier">unlink</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="list_base_hook.html#idm34394-bb">public member functions</a></span> + <span class="keyword">void</span> <a class="link" href="list_base_hook.html#idm34395-bb"><span class="identifier">swap_nodes</span></a><span class="special">(</span><a class="link" href="list_base_hook.html" title="Class template list_base_hook">list_base_hook</a> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">bool</span> <a class="link" href="list_base_hook.html#idm34407-bb"><span class="identifier">is_linked</span></a><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="list_base_hook.html#idm34420-bb"><span class="identifier">unlink</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</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.19.3.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.19.3.4"></a><h2>Description</h2> <p>Derive a class from this hook in order to store objects of that class in an list.</p> <p>The hook admits the following options: <code class="computeroutput">tag<></code>, <code class="computeroutput">void_pointer<></code> and <code class="computeroutput">link_mode<></code>.</p> <p><code class="computeroutput">tag<></code> defines a tag to identify the node. The same tag value can be used in different classes, but if a class is derived from more than one <code class="computeroutput"><a class="link" href="list_base_hook.html" title="Class template list_base_hook">list_base_hook</a></code>, then each <code class="computeroutput"><a class="link" href="list_base_hook.html" title="Class template list_base_hook">list_base_hook</a></code> needs its unique tag.</p> <p><code class="computeroutput">link_mode<></code> will specify the linking mode of the hook (<code class="computeroutput">normal_link</code>, <code class="computeroutput">auto_unlink</code> or <code class="computeroutput">safe_link</code>).</p> <p><code class="computeroutput">void_pointer<></code> is the pointer type that will be used internally in the hook and the container configured to use this hook. </p> <div class="refsect2"> -<a name="id-1.3.20.42.19.3.4.7"></a><h3> +<a name="id-1.3.18.42.19.3.4.7"></a><h3> <a name="boost.intrusive.list_base_hookconstruct-copy-destruct"></a><code class="computeroutput">list_base_hook</code> public construct/copy/destruct</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> <li class="listitem"> -<pre class="literallayout"><a name="idm45971714317056-bb"></a><span class="identifier">list_base_hook</span><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm34429-bb"></a><span class="identifier">list_base_hook</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>: If <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is <code class="computeroutput">auto_unlink</code> or <code class="computeroutput">safe_link</code> initializes the node to an unlinked state.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><a name="idm45971714313008-bb"></a><span class="identifier">list_base_hook</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="list_base_hook.html" title="Class template list_base_hook">list_base_hook</a> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm34438-bb"></a><span class="identifier">list_base_hook</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="list_base_hook.html" title="Class template list_base_hook">list_base_hook</a> <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>: If <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is <code class="computeroutput">auto_unlink</code> or <code class="computeroutput">safe_link</code> initializes the node to an unlinked state. The argument is ignored.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Rationale</strong></span>: Providing a copy-constructor makes classes using the hook STL-compliant without forcing the user to do some additional work. <code class="computeroutput">swap</code> can be used to emulate move-semantics. </p> </li> <li class="listitem"> -<pre class="literallayout"><a class="link" href="list_base_hook.html" title="Class template list_base_hook">list_base_hook</a> <span class="special">&</span> <a name="idm45971714306368-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="list_base_hook.html" title="Class template list_base_hook">list_base_hook</a> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><a class="link" href="list_base_hook.html" title="Class template list_base_hook">list_base_hook</a> <span class="special">&</span> <a name="idm34453-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="list_base_hook.html" title="Class template list_base_hook">list_base_hook</a> <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>: Empty function. The argument is ignored.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Rationale</strong></span>: Providing an assignment operator makes classes using the hook STL-compliant without forcing the user to do some additional work. <code class="computeroutput">swap</code> can be used to emulate move-semantics. </p> </li> <li class="listitem"> -<pre class="literallayout"><a name="idm45971714300800-bb"></a><span class="special">~</span><span class="identifier">list_base_hook</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm34467-bb"></a><span class="special">~</span><span class="identifier">list_base_hook</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: If <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is <code class="computeroutput">normal_link</code>, the destructor does nothing (ie. no code is generated). If <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is <code class="computeroutput">safe_link</code> and the object is stored in an list an assertion is raised. If <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is <code class="computeroutput">auto_unlink</code> and <code class="computeroutput">is_linked()</code> is true, the node is unlinked.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> </ol></div> </div> <div class="refsect2"> -<a name="id-1.3.20.42.19.3.4.8"></a><h3> -<a name="idm45971714333216-bb"></a><code class="computeroutput">list_base_hook</code> public member functions</h3> +<a name="id-1.3.18.42.19.3.4.8"></a><h3> +<a name="idm34394-bb"></a><code class="computeroutput">list_base_hook</code> public member functions</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971714332656-bb"></a><span class="identifier">swap_nodes</span><span class="special">(</span><a class="link" href="list_base_hook.html" title="Class template list_base_hook">list_base_hook</a> <span class="special">&</span> other<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">void</span> <a name="idm34395-bb"></a><span class="identifier">swap_nodes</span><span class="special">(</span><a class="link" href="list_base_hook.html" title="Class template list_base_hook">list_base_hook</a> <span class="special">&</span> other<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Swapping two nodes swaps the position of the elements related to those nodes in one or two containers. That is, if the node this is part of the element e1, the node x is part of the element e2 and both elements are included in the containers s1 and s2, then after the swap-operation e1 is in s2 at the position of e2 and e2 is in s1 at the position of e1. If one element is not in a container, then after the swap-operation the other element is not in a container. Iterators to e1 and e2 related to those nodes are invalidated.</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="keyword">bool</span> <a name="idm45971714327376-bb"></a><span class="identifier">is_linked</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">bool</span> <a name="idm34407-bb"></a><span class="identifier">is_linked</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Precondition</strong></span>: <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> must be <code class="computeroutput">safe_link</code> or <code class="computeroutput">auto_unlink</code>.</p> <p><span class="bold"><strong>Returns</strong></span>: true, if the node belongs to a container, false otherwise. This function can be used to test whether <code class="computeroutput">list::iterator_to</code> will return a valid iterator.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971714321408-bb"></a><span class="identifier">unlink</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="idm34420-bb"></a><span class="identifier">unlink</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>: Removes the node if it's inserted in a container. This function is only allowed if <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is <code class="computeroutput">auto_unlink</code>.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> @@ -108,14 +109,11 @@ </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="make_list.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.list_hook_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="list_member_hook.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/list_member_hook.html b/doc/html/boost/intrusive/list_member_hook.html index c796dcad3c..6041a4d253 100644 --- a/doc/html/boost/intrusive/list_member_hook.html +++ b/doc/html/boost/intrusive/list_member_hook.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.list_hook_hpp" title="Header <boost/intrusive/list_hook.hpp>"> <link rel="prev" href="list_base_hook.html" title="Class template list_base_hook"> <link rel="next" href="make_list_base_hook.html" title="Struct template make_list_base_hook"> +<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> @@ -29,77 +30,77 @@ <h2><span class="refentrytitle">Class template list_member_hook</span></h2> <p>boost::intrusive::list_member_hook</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.list_hook_hpp" title="Header <boost/intrusive/list_hook.hpp>">boost/intrusive/list_hook.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.list_hook_hpp" title="Header <boost/intrusive/list_hook.hpp>">boost/intrusive/list_hook.hpp</a>> </span><span class="keyword">template</span><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="list_member_hook.html" title="Class template list_member_hook">list_member_hook</a> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">make_list_member_hook</span><span class="special">::</span><span class="identifier">type</span><span class="special"><</span> <span class="identifier">O1</span><span class="special">,</span> <span class="identifier">O2</span><span class="special">,</span> <span class="identifier">O3</span> <span class="special">></span> <span class="special">{</span> +<span class="keyword">class</span> <a class="link" href="list_member_hook.html" title="Class template list_member_hook">list_member_hook</a> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">make_list_member_hook</span><span class="special">::</span><span class="identifier">type</span> <span class="special">{</span> <span class="keyword">public</span><span class="special">:</span> <span class="comment">// <a class="link" href="list_member_hook.html#boost.intrusive.list_member_hookconstruct-copy-destruct">construct/copy/destruct</a></span> - <a class="link" href="list_member_hook.html#idm45971714272016-bb"><span class="identifier">list_member_hook</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <a class="link" href="list_member_hook.html#idm45971714267968-bb"><span class="identifier">list_member_hook</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="list_member_hook.html" title="Class template list_member_hook">list_member_hook</a> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <a class="link" href="list_member_hook.html" title="Class template list_member_hook">list_member_hook</a> <span class="special">&</span> <a class="link" href="list_member_hook.html#idm45971714261328-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="list_member_hook.html" title="Class template list_member_hook">list_member_hook</a> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <a class="link" href="list_member_hook.html#idm45971714255760-bb"><span class="special">~</span><span class="identifier">list_member_hook</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="list_member_hook.html#idm34532-bb"><span class="identifier">list_member_hook</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <a class="link" href="list_member_hook.html#idm34541-bb"><span class="identifier">list_member_hook</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="list_member_hook.html" title="Class template list_member_hook">list_member_hook</a> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <a class="link" href="list_member_hook.html" title="Class template list_member_hook">list_member_hook</a> <span class="special">&</span> <a class="link" href="list_member_hook.html#idm34556-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="list_member_hook.html" title="Class template list_member_hook">list_member_hook</a> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <a class="link" href="list_member_hook.html#idm34570-bb"><span class="special">~</span><span class="identifier">list_member_hook</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> - <span class="comment">// <a class="link" href="list_member_hook.html#idm45971714288176-bb">public member functions</a></span> - <span class="keyword">void</span> <a class="link" href="list_member_hook.html#idm45971714287616-bb"><span class="identifier">swap_nodes</span></a><span class="special">(</span><a class="link" href="list_member_hook.html" title="Class template list_member_hook">list_member_hook</a> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">bool</span> <a class="link" href="list_member_hook.html#idm45971714282336-bb"><span class="identifier">is_linked</span></a><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="list_member_hook.html#idm45971714276368-bb"><span class="identifier">unlink</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="list_member_hook.html#idm34497-bb">public member functions</a></span> + <span class="keyword">void</span> <a class="link" href="list_member_hook.html#idm34498-bb"><span class="identifier">swap_nodes</span></a><span class="special">(</span><a class="link" href="list_member_hook.html" title="Class template list_member_hook">list_member_hook</a> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">bool</span> <a class="link" href="list_member_hook.html#idm34510-bb"><span class="identifier">is_linked</span></a><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="list_member_hook.html#idm34523-bb"><span class="identifier">unlink</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</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.19.4.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.19.4.4"></a><h2>Description</h2> <p>Store this hook in a class to be inserted in an list.</p> <p>The hook admits the following options: <code class="computeroutput">void_pointer<></code> and <code class="computeroutput">link_mode<></code>.</p> <p><code class="computeroutput">link_mode<></code> will specify the linking mode of the hook (<code class="computeroutput">normal_link</code>, <code class="computeroutput">auto_unlink</code> or <code class="computeroutput">safe_link</code>).</p> <p><code class="computeroutput">void_pointer<></code> is the pointer type that will be used internally in the hook and the container configured to use this hook. </p> <div class="refsect2"> -<a name="id-1.3.20.42.19.4.4.6"></a><h3> +<a name="id-1.3.18.42.19.4.4.6"></a><h3> <a name="boost.intrusive.list_member_hookconstruct-copy-destruct"></a><code class="computeroutput">list_member_hook</code> public construct/copy/destruct</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> <li class="listitem"> -<pre class="literallayout"><a name="idm45971714272016-bb"></a><span class="identifier">list_member_hook</span><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm34532-bb"></a><span class="identifier">list_member_hook</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>: If <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is <code class="computeroutput">auto_unlink</code> or <code class="computeroutput">safe_link</code> initializes the node to an unlinked state.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><a name="idm45971714267968-bb"></a><span class="identifier">list_member_hook</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="list_member_hook.html" title="Class template list_member_hook">list_member_hook</a> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm34541-bb"></a><span class="identifier">list_member_hook</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="list_member_hook.html" title="Class template list_member_hook">list_member_hook</a> <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>: If <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is <code class="computeroutput">auto_unlink</code> or <code class="computeroutput">safe_link</code> initializes the node to an unlinked state. The argument is ignored.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Rationale</strong></span>: Providing a copy-constructor makes classes using the hook STL-compliant without forcing the user to do some additional work. <code class="computeroutput">swap</code> can be used to emulate move-semantics. </p> </li> <li class="listitem"> -<pre class="literallayout"><a class="link" href="list_member_hook.html" title="Class template list_member_hook">list_member_hook</a> <span class="special">&</span> <a name="idm45971714261328-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="list_member_hook.html" title="Class template list_member_hook">list_member_hook</a> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><a class="link" href="list_member_hook.html" title="Class template list_member_hook">list_member_hook</a> <span class="special">&</span> <a name="idm34556-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="list_member_hook.html" title="Class template list_member_hook">list_member_hook</a> <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>: Empty function. The argument is ignored.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Rationale</strong></span>: Providing an assignment operator makes classes using the hook STL-compliant without forcing the user to do some additional work. <code class="computeroutput">swap</code> can be used to emulate move-semantics. </p> </li> <li class="listitem"> -<pre class="literallayout"><a name="idm45971714255760-bb"></a><span class="special">~</span><span class="identifier">list_member_hook</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm34570-bb"></a><span class="special">~</span><span class="identifier">list_member_hook</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: If <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is <code class="computeroutput">normal_link</code>, the destructor does nothing (ie. no code is generated). If <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is <code class="computeroutput">safe_link</code> and the object is stored in an list an assertion is raised. If <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is <code class="computeroutput">auto_unlink</code> and <code class="computeroutput">is_linked()</code> is true, the node is unlinked.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> </ol></div> </div> <div class="refsect2"> -<a name="id-1.3.20.42.19.4.4.7"></a><h3> -<a name="idm45971714288176-bb"></a><code class="computeroutput">list_member_hook</code> public member functions</h3> +<a name="id-1.3.18.42.19.4.4.7"></a><h3> +<a name="idm34497-bb"></a><code class="computeroutput">list_member_hook</code> public member functions</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971714287616-bb"></a><span class="identifier">swap_nodes</span><span class="special">(</span><a class="link" href="list_member_hook.html" title="Class template list_member_hook">list_member_hook</a> <span class="special">&</span> other<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">void</span> <a name="idm34498-bb"></a><span class="identifier">swap_nodes</span><span class="special">(</span><a class="link" href="list_member_hook.html" title="Class template list_member_hook">list_member_hook</a> <span class="special">&</span> other<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Swapping two nodes swaps the position of the elements related to those nodes in one or two containers. That is, if the node this is part of the element e1, the node x is part of the element e2 and both elements are included in the containers s1 and s2, then after the swap-operation e1 is in s2 at the position of e2 and e2 is in s1 at the position of e1. If one element is not in a container, then after the swap-operation the other element is not in a container. Iterators to e1 and e2 related to those nodes are invalidated.</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="keyword">bool</span> <a name="idm45971714282336-bb"></a><span class="identifier">is_linked</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">bool</span> <a name="idm34510-bb"></a><span class="identifier">is_linked</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Precondition</strong></span>: <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> must be <code class="computeroutput">safe_link</code> or <code class="computeroutput">auto_unlink</code>.</p> <p><span class="bold"><strong>Returns</strong></span>: true, if the node belongs to a container, false otherwise. This function can be used to test whether <code class="computeroutput">list::iterator_to</code> will return a valid iterator.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971714276368-bb"></a><span class="identifier">unlink</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="idm34523-bb"></a><span class="identifier">unlink</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>: Removes the node if it's inserted in a container. This function is only allowed if <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is <code class="computeroutput">auto_unlink</code>.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> @@ -107,14 +108,11 @@ </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="list_base_hook.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.list_hook_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_list_base_hook.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/make_any_base_hook.html b/doc/html/boost/intrusive/make_any_base_hook.html index 9610f51974..d668096ff7 100644 --- a/doc/html/boost/intrusive/make_any_base_hook.html +++ b/doc/html/boost/intrusive/make_any_base_hook.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.any_hook_hpp" title="Header <boost/intrusive/any_hook.hpp>"> <link rel="prev" href="any_to_unordered_set_hook.html" title="Struct template any_to_unordered_set_hook"> <link rel="next" href="make_any_member_hook.html" title="Struct template make_any_member_hook"> +<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> @@ -29,8 +30,8 @@ <h2><span class="refentrytitle">Struct template make_any_base_hook</span></h2> <p>boost::intrusive::make_any_base_hook</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.any_hook_hpp" title="Header <boost/intrusive/any_hook.hpp>">boost/intrusive/any_hook.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.any_hook_hpp" title="Header <boost/intrusive/any_hook.hpp>">boost/intrusive/any_hook.hpp</a>> </span><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="special">...</span> Options<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="make_any_base_hook.html" title="Struct template make_any_base_hook">make_any_base_hook</a> <span class="special">{</span> @@ -38,18 +39,15 @@ <span class="keyword">typedef</span> <span class="identifier">implementation_defined</span> <a name="boost.intrusive.make_any_base_hook.type"></a><span class="identifier">type</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.2.11.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.2.11.4"></a><h2>Description</h2> <p>Helper metafunction to define a <code class="computeroutput"><code class="computeroutput"><a class="link" href="any_base_hook.html" title="Class template any_base_hook">any_base_hook</a></code> that</code> yields to the same type when the same options (either explicitly or implicitly) are used. </p> </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="any_to_unordered_set_hook.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.any_hook_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_any_member_hook.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/make_any_member_hook.html b/doc/html/boost/intrusive/make_any_member_hook.html index 158f7b79b2..c44f9abbd4 100644 --- a/doc/html/boost/intrusive/make_any_member_hook.html +++ b/doc/html/boost/intrusive/make_any_member_hook.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.any_hook_hpp" title="Header <boost/intrusive/any_hook.hpp>"> <link rel="prev" href="make_any_base_hook.html" title="Struct template make_any_base_hook"> <link rel="next" href="avl_multiset.html" title="Class template avl_multiset"> +<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> @@ -29,8 +30,8 @@ <h2><span class="refentrytitle">Struct template make_any_member_hook</span></h2> <p>boost::intrusive::make_any_member_hook</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.any_hook_hpp" title="Header <boost/intrusive/any_hook.hpp>">boost/intrusive/any_hook.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.any_hook_hpp" title="Header <boost/intrusive/any_hook.hpp>">boost/intrusive/any_hook.hpp</a>> </span><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="special">...</span> Options<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="make_any_member_hook.html" title="Struct template make_any_member_hook">make_any_member_hook</a> <span class="special">{</span> @@ -38,18 +39,15 @@ <span class="keyword">typedef</span> <span class="identifier">implementation_defined</span> <a name="boost.intrusive.make_any_member_hook.type"></a><span class="identifier">type</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.2.12.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.2.12.4"></a><h2>Description</h2> <p>Helper metafunction to define a <code class="computeroutput"><code class="computeroutput"><a class="link" href="any_member_hook.html" title="Class template any_member_hook">any_member_hook</a></code> that</code> yields to the same type when the same options (either explicitly or implicitly) are used. </p> </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="make_any_base_hook.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.any_hook_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="avl_multiset.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/make_avl_multiset.html b/doc/html/boost/intrusive/make_avl_multiset.html index ebfbd533e3..b335ec0f32 100644 --- a/doc/html/boost/intrusive/make_avl_multiset.html +++ b/doc/html/boost/intrusive/make_avl_multiset.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.avl_set_hpp" title="Header <boost/intrusive/avl_set.hpp>"> <link rel="prev" href="avl_set.html" title="Class template avl_set"> <link rel="next" href="make_avl_set.html" title="Struct template make_avl_set"> +<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> @@ -29,8 +30,8 @@ <h2><span class="refentrytitle">Struct template make_avl_multiset</span></h2> <p>boost::intrusive::make_avl_multiset</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.avl_set_hpp" title="Header <boost/intrusive/avl_set.hpp>">boost/intrusive/avl_set.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.avl_set_hpp" title="Header <boost/intrusive/avl_set.hpp>">boost/intrusive/avl_set.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">struct</span> <a class="link" href="make_avl_multiset.html" title="Struct template make_avl_multiset">make_avl_multiset</a> <span class="special">{</span> @@ -38,18 +39,15 @@ <span class="keyword">typedef</span> <span class="identifier">implementation_defined</span> <a name="boost.intrusive.make_avl_multiset.type"></a><span class="identifier">type</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.3.5.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.3.5.4"></a><h2>Description</h2> <p>Helper metafunction to define a <code class="computeroutput"><a class="link" href="avl_multiset.html" title="Class template avl_multiset">avl_multiset</a></code> that yields to the same type when the same options (either explicitly or implicitly) are used. </p> </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="avl_set.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.avl_set_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_avl_set.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/make_avl_set.html b/doc/html/boost/intrusive/make_avl_set.html index f633a51b88..f6b16db5a3 100644 --- a/doc/html/boost/intrusive/make_avl_set.html +++ b/doc/html/boost/intrusive/make_avl_set.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.avl_set_hpp" title="Header <boost/intrusive/avl_set.hpp>"> <link rel="prev" href="make_avl_multiset.html" title="Struct template make_avl_multiset"> <link rel="next" href="avl_set_base_hook.html" title="Class template avl_set_base_hook"> +<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> @@ -29,8 +30,8 @@ <h2><span class="refentrytitle">Struct template make_avl_set</span></h2> <p>boost::intrusive::make_avl_set</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.avl_set_hpp" title="Header <boost/intrusive/avl_set.hpp>">boost/intrusive/avl_set.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.avl_set_hpp" title="Header <boost/intrusive/avl_set.hpp>">boost/intrusive/avl_set.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">struct</span> <a class="link" href="make_avl_set.html" title="Struct template make_avl_set">make_avl_set</a> <span class="special">{</span> @@ -38,18 +39,15 @@ <span class="keyword">typedef</span> <span class="identifier">implementation_defined</span> <a name="boost.intrusive.make_avl_set.type"></a><span class="identifier">type</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.3.6.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.3.6.4"></a><h2>Description</h2> <p>Helper metafunction to define a <code class="computeroutput">set</code> that yields to the same type when the same options (either explicitly or implicitly) are used. </p> </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="make_avl_multiset.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.avl_set_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="avl_set_base_hook.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/make_avl_set_base_hook.html b/doc/html/boost/intrusive/make_avl_set_base_hook.html index aa115e3157..94227d6cc2 100644 --- a/doc/html/boost/intrusive/make_avl_set_base_hook.html +++ b/doc/html/boost/intrusive/make_avl_set_base_hook.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.avl_set_hook_hpp" title="Header <boost/intrusive/avl_set_hook.hpp>"> <link rel="prev" href="avl_set_member_hook.html" title="Class template avl_set_member_hook"> <link rel="next" href="make_avl_set_member_hook.html" title="Struct template make_avl_set_member_hook"> +<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> @@ -29,8 +30,8 @@ <h2><span class="refentrytitle">Struct template make_avl_set_base_hook</span></h2> <p>boost::intrusive::make_avl_set_base_hook</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.avl_set_hook_hpp" title="Header <boost/intrusive/avl_set_hook.hpp>">boost/intrusive/avl_set_hook.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.avl_set_hook_hpp" title="Header <boost/intrusive/avl_set_hook.hpp>">boost/intrusive/avl_set_hook.hpp</a>> </span><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="special">...</span> Options<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="make_avl_set_base_hook.html" title="Struct template make_avl_set_base_hook">make_avl_set_base_hook</a> <span class="special">{</span> @@ -38,18 +39,15 @@ <span class="keyword">typedef</span> <span class="identifier">implementation_defined</span> <a name="boost.intrusive.make_avl_set_base_hook.type"></a><span class="identifier">type</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.4.5.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.4.5.4"></a><h2>Description</h2> <p>Helper metafunction to define a <code class="computeroutput"><a class="link" href="avl_set_base_hook.html" title="Class template avl_set_base_hook">avl_set_base_hook</a></code> that yields to the same type when the same options (either explicitly or implicitly) are used. </p> </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="avl_set_member_hook.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.avl_set_hook_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_avl_set_member_hook.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/make_avl_set_member_hook.html b/doc/html/boost/intrusive/make_avl_set_member_hook.html index 217c74d2f8..b8cb257bcf 100644 --- a/doc/html/boost/intrusive/make_avl_set_member_hook.html +++ b/doc/html/boost/intrusive/make_avl_set_member_hook.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.avl_set_hook_hpp" title="Header <boost/intrusive/avl_set_hook.hpp>"> <link rel="prev" href="make_avl_set_base_hook.html" title="Struct template make_avl_set_base_hook"> <link rel="next" href="avltree.html" title="Class template avltree"> +<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> @@ -29,8 +30,8 @@ <h2><span class="refentrytitle">Struct template make_avl_set_member_hook</span></h2> <p>boost::intrusive::make_avl_set_member_hook</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.avl_set_hook_hpp" title="Header <boost/intrusive/avl_set_hook.hpp>">boost/intrusive/avl_set_hook.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.avl_set_hook_hpp" title="Header <boost/intrusive/avl_set_hook.hpp>">boost/intrusive/avl_set_hook.hpp</a>> </span><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="special">...</span> Options<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="make_avl_set_member_hook.html" title="Struct template make_avl_set_member_hook">make_avl_set_member_hook</a> <span class="special">{</span> @@ -38,18 +39,15 @@ <span class="keyword">typedef</span> <span class="identifier">implementation_defined</span> <a name="boost.intrusive.make_avl_set_member_hook.type"></a><span class="identifier">type</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.4.6.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.4.6.4"></a><h2>Description</h2> <p>Helper metafunction to define a <code class="computeroutput"><a class="link" href="avl_set_member_hook.html" title="Class template avl_set_member_hook">avl_set_member_hook</a></code> that yields to the same type when the same options (either explicitly or implicitly) are used. </p> </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="make_avl_set_base_hook.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.avl_set_hook_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="avltree.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/make_avltree.html b/doc/html/boost/intrusive/make_avltree.html index 887654321a..c59061d8cc 100644 --- a/doc/html/boost/intrusive/make_avltree.html +++ b/doc/html/boost/intrusive/make_avltree.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.avltree_hpp" title="Header <boost/intrusive/avltree.hpp>"> <link rel="prev" href="avltree.html" title="Class template avltree"> <link rel="next" href="avltree_algorithms.html" title="Class template avltree_algorithms"> +<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> @@ -29,8 +30,8 @@ <h2><span class="refentrytitle">Struct template make_avltree</span></h2> <p>boost::intrusive::make_avltree</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.avltree_hpp" title="Header <boost/intrusive/avltree.hpp>">boost/intrusive/avltree.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.avltree_hpp" title="Header <boost/intrusive/avltree.hpp>">boost/intrusive/avltree.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">struct</span> <a class="link" href="make_avltree.html" title="Struct template make_avltree">make_avltree</a> <span class="special">{</span> @@ -38,18 +39,15 @@ <span class="keyword">typedef</span> <span class="identifier">implementation_defined</span> <a name="boost.intrusive.make_avltree.type"></a><span class="identifier">type</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.5.4.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.5.4.4"></a><h2>Description</h2> <p>Helper metafunction to define a <code class="computeroutput">avltree</code> that yields to the same type when the same options (either explicitly or implicitly) are used. </p> </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="avltree.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.avltree_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="avltree_algorithms.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/make_bs_multiset.html b/doc/html/boost/intrusive/make_bs_multiset.html index f77cb27908..146c4c0033 100644 --- a/doc/html/boost/intrusive/make_bs_multiset.html +++ b/doc/html/boost/intrusive/make_bs_multiset.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.bs_set_hpp" title="Header <boost/intrusive/bs_set.hpp>"> <link rel="prev" href="bs_set.html" title="Class template bs_set"> <link rel="next" href="make_bs_set.html" title="Struct template make_bs_set"> +<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> @@ -29,8 +30,8 @@ <h2><span class="refentrytitle">Struct template make_bs_multiset</span></h2> <p>boost::intrusive::make_bs_multiset</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.bs_set_hpp" title="Header <boost/intrusive/bs_set.hpp>">boost/intrusive/bs_set.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.bs_set_hpp" title="Header <boost/intrusive/bs_set.hpp>">boost/intrusive/bs_set.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">struct</span> <a class="link" href="make_bs_multiset.html" title="Struct template make_bs_multiset">make_bs_multiset</a> <span class="special">{</span> @@ -38,18 +39,15 @@ <span class="keyword">typedef</span> <span class="identifier">implementation_defined</span> <a name="boost.intrusive.make_bs_multiset.type"></a><span class="identifier">type</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.7.5.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.7.5.4"></a><h2>Description</h2> <p>Helper metafunction to define a <code class="computeroutput"><a class="link" href="bs_multiset.html" title="Class template bs_multiset">bs_multiset</a></code> that yields to the same type when the same options (either explicitly or implicitly) are used. </p> </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="bs_set.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.bs_set_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_bs_set.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/make_bs_set.html b/doc/html/boost/intrusive/make_bs_set.html index a5035ecb69..3c30320f59 100644 --- a/doc/html/boost/intrusive/make_bs_set.html +++ b/doc/html/boost/intrusive/make_bs_set.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.bs_set_hpp" title="Header <boost/intrusive/bs_set.hpp>"> <link rel="prev" href="make_bs_multiset.html" title="Struct template make_bs_multiset"> <link rel="next" href="bs_set_base_hook.html" title="Class template bs_set_base_hook"> +<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> @@ -29,8 +30,8 @@ <h2><span class="refentrytitle">Struct template make_bs_set</span></h2> <p>boost::intrusive::make_bs_set</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.bs_set_hpp" title="Header <boost/intrusive/bs_set.hpp>">boost/intrusive/bs_set.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.bs_set_hpp" title="Header <boost/intrusive/bs_set.hpp>">boost/intrusive/bs_set.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">struct</span> <a class="link" href="make_bs_set.html" title="Struct template make_bs_set">make_bs_set</a> <span class="special">{</span> @@ -38,18 +39,15 @@ <span class="keyword">typedef</span> <span class="identifier">implementation_defined</span> <a name="boost.intrusive.make_bs_set.type"></a><span class="identifier">type</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.7.6.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.7.6.4"></a><h2>Description</h2> <p>Helper metafunction to define a <code class="computeroutput"><a class="link" href="bs_set.html" title="Class template bs_set">bs_set</a></code> that yields to the same type when the same options (either explicitly or implicitly) are used. </p> </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="make_bs_multiset.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.bs_set_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="bs_set_base_hook.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/make_bs_set_base_hook.html b/doc/html/boost/intrusive/make_bs_set_base_hook.html index 7e0839bea2..f19b796d70 100644 --- a/doc/html/boost/intrusive/make_bs_set_base_hook.html +++ b/doc/html/boost/intrusive/make_bs_set_base_hook.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.bs_set_hook_hpp" title="Header <boost/intrusive/bs_set_hook.hpp>"> <link rel="prev" href="bs_set_member_hook.html" title="Class template bs_set_member_hook"> <link rel="next" href="make_bs_set_member_hook.html" title="Struct template make_bs_set_member_hook"> +<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> @@ -29,8 +30,8 @@ <h2><span class="refentrytitle">Struct template make_bs_set_base_hook</span></h2> <p>boost::intrusive::make_bs_set_base_hook</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.bs_set_hook_hpp" title="Header <boost/intrusive/bs_set_hook.hpp>">boost/intrusive/bs_set_hook.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.bs_set_hook_hpp" title="Header <boost/intrusive/bs_set_hook.hpp>">boost/intrusive/bs_set_hook.hpp</a>> </span><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="special">...</span> Options<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="make_bs_set_base_hook.html" title="Struct template make_bs_set_base_hook">make_bs_set_base_hook</a> <span class="special">{</span> @@ -38,18 +39,15 @@ <span class="keyword">typedef</span> <span class="identifier">implementation_defined</span> <a name="boost.intrusive.make_bs_set_base_hook.type"></a><span class="identifier">type</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.8.5.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.8.5.4"></a><h2>Description</h2> <p>Helper metafunction to define a <code class="computeroutput"><a class="link" href="bs_set_base_hook.html" title="Class template bs_set_base_hook">bs_set_base_hook</a></code> that yields to the same type when the same options (either explicitly or implicitly) are used. </p> </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="bs_set_member_hook.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.bs_set_hook_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_bs_set_member_hook.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/make_bs_set_member_hook.html b/doc/html/boost/intrusive/make_bs_set_member_hook.html index 3b1add1d55..9cd08d7f01 100644 --- a/doc/html/boost/intrusive/make_bs_set_member_hook.html +++ b/doc/html/boost/intrusive/make_bs_set_member_hook.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.bs_set_hook_hpp" title="Header <boost/intrusive/bs_set_hook.hpp>"> <link rel="prev" href="make_bs_set_base_hook.html" title="Struct template make_bs_set_base_hook"> <link rel="next" href="bstree.html" title="Class template bstree"> +<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> @@ -29,8 +30,8 @@ <h2><span class="refentrytitle">Struct template make_bs_set_member_hook</span></h2> <p>boost::intrusive::make_bs_set_member_hook</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.bs_set_hook_hpp" title="Header <boost/intrusive/bs_set_hook.hpp>">boost/intrusive/bs_set_hook.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.bs_set_hook_hpp" title="Header <boost/intrusive/bs_set_hook.hpp>">boost/intrusive/bs_set_hook.hpp</a>> </span><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="special">...</span> Options<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="make_bs_set_member_hook.html" title="Struct template make_bs_set_member_hook">make_bs_set_member_hook</a> <span class="special">{</span> @@ -38,18 +39,15 @@ <span class="keyword">typedef</span> <span class="identifier">implementation_defined</span> <a name="boost.intrusive.make_bs_set_member_hook.type"></a><span class="identifier">type</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.8.6.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.8.6.4"></a><h2>Description</h2> <p>Helper metafunction to define a <code class="computeroutput"><a class="link" href="bs_set_member_hook.html" title="Class template bs_set_member_hook">bs_set_member_hook</a></code> that yields to the same type when the same options (either explicitly or implicitly) are used. </p> </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="make_bs_set_base_hook.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.bs_set_hook_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="bstree.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/make_bstree.html b/doc/html/boost/intrusive/make_bstree.html index 6a4a218762..411301d158 100644 --- a/doc/html/boost/intrusive/make_bstree.html +++ b/doc/html/boost/intrusive/make_bstree.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.bstree_hpp" title="Header <boost/intrusive/bstree.hpp>"> <link rel="prev" href="bstree.html" title="Class template bstree"> <link rel="next" href="bstree_algorithms.html" title="Class template bstree_algorithms"> +<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> @@ -29,8 +30,8 @@ <h2><span class="refentrytitle">Struct template make_bstree</span></h2> <p>boost::intrusive::make_bstree</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.bstree_hpp" title="Header <boost/intrusive/bstree.hpp>">boost/intrusive/bstree.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.bstree_hpp" title="Header <boost/intrusive/bstree.hpp>">boost/intrusive/bstree.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">struct</span> <a class="link" href="make_bstree.html" title="Struct template make_bstree">make_bstree</a> <span class="special">{</span> @@ -38,18 +39,15 @@ <span class="keyword">typedef</span> <span class="identifier">implementation_defined</span> <a name="boost.intrusive.make_bstree.type"></a><span class="identifier">type</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.9.4.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.9.4.4"></a><h2>Description</h2> <p>Helper metafunction to define a <code class="computeroutput">bstree</code> that yields to the same type when the same options (either explicitly or implicitly) are used. </p> </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="bstree.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.bstree_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="bstree_algorithms.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/make_hashtable.html b/doc/html/boost/intrusive/make_hashtable.html index 6e737f1164..5ecd8d7c91 100644 --- a/doc/html/boost/intrusive/make_hashtable.html +++ b/doc/html/boost/intrusive/make_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="hashtable.html" title="Class template hashtable"> -<link rel="next" href="linear_slist_algorithms.html" title="Class template linear_slist_algorithms"> +<link rel="prev" href="is_default_hook_t_idm32587.html" title="Struct is_default_hook_tag<default_hashtable_hook_applier>"> +<link rel="next" href="node_cast_adaptor.html" title="Struct template node_cast_adaptor"> +<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="hashtable.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="linear_slist_algorithms.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +<a accesskey="p" href="is_default_hook_t_idm32587.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="node_cast_adaptor.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> </div> <div class="refentry"> <a name="boost.intrusive.make_hashtable"></a><div class="titlepage"></div> @@ -29,8 +30,8 @@ <h2><span class="refentrytitle">Struct template make_hashtable</span></h2> <p>boost::intrusive::make_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">struct</span> <a class="link" href="make_hashtable.html" title="Struct template make_hashtable">make_hashtable</a> <span class="special">{</span> @@ -38,21 +39,18 @@ <span class="keyword">typedef</span> <span class="identifier">implementation_defined</span> <a name="boost.intrusive.make_hashtable.type"></a><span class="identifier">type</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.4.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.14.34.4"></a><h2>Description</h2> <p>Helper metafunction to define a <code class="computeroutput">hashtable</code> that yields to the same type when the same options (either explicitly or implicitly) are used. </p> </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="hashtable.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="linear_slist_algorithms.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +<a accesskey="p" href="is_default_hook_t_idm32587.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="node_cast_adaptor.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> </div> </body> </html> diff --git a/doc/html/boost/intrusive/make_list.html b/doc/html/boost/intrusive/make_list.html index cf6d966b3c..c26d759b92 100644 --- a/doc/html/boost/intrusive/make_list.html +++ b/doc/html/boost/intrusive/make_list.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.list_hpp" title="Header <boost/intrusive/list.hpp>"> <link rel="prev" href="list.html" title="Class template list"> <link rel="next" href="list_base_hook.html" title="Class template list_base_hook"> +<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> @@ -29,8 +30,8 @@ <h2><span class="refentrytitle">Struct template make_list</span></h2> <p>boost::intrusive::make_list</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.list_hpp" title="Header <boost/intrusive/list.hpp>">boost/intrusive/list.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.list_hpp" title="Header <boost/intrusive/list.hpp>">boost/intrusive/list.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">struct</span> <a class="link" href="make_list.html" title="Struct template make_list">make_list</a> <span class="special">{</span> @@ -38,18 +39,15 @@ <span class="keyword">typedef</span> <span class="identifier">implementation_defined</span> <a name="boost.intrusive.make_list.type"></a><span class="identifier">type</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.18.4.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.18.4.4"></a><h2>Description</h2> <p>Helper metafunction to define a <code class="computeroutput">list</code> that yields to the same type when the same options (either explicitly or implicitly) are used. </p> </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="list.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.list_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="list_base_hook.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/make_list_base_hook.html b/doc/html/boost/intrusive/make_list_base_hook.html index 8a8bd1ac96..c7432119a0 100644 --- a/doc/html/boost/intrusive/make_list_base_hook.html +++ b/doc/html/boost/intrusive/make_list_base_hook.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.list_hook_hpp" title="Header <boost/intrusive/list_hook.hpp>"> <link rel="prev" href="list_member_hook.html" title="Class template list_member_hook"> <link rel="next" href="make_list_member_hook.html" title="Struct template make_list_member_hook"> +<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> @@ -29,8 +30,8 @@ <h2><span class="refentrytitle">Struct template make_list_base_hook</span></h2> <p>boost::intrusive::make_list_base_hook</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.list_hook_hpp" title="Header <boost/intrusive/list_hook.hpp>">boost/intrusive/list_hook.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.list_hook_hpp" title="Header <boost/intrusive/list_hook.hpp>">boost/intrusive/list_hook.hpp</a>> </span><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="special">...</span> Options<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="make_list_base_hook.html" title="Struct template make_list_base_hook">make_list_base_hook</a> <span class="special">{</span> @@ -38,18 +39,15 @@ <span class="keyword">typedef</span> <span class="identifier">implementation_defined</span> <a name="boost.intrusive.make_list_base_hook.type"></a><span class="identifier">type</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.19.5.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.19.5.4"></a><h2>Description</h2> <p>Helper metafunction to define a <code class="computeroutput"><code class="computeroutput"><a class="link" href="list_base_hook.html" title="Class template list_base_hook">list_base_hook</a></code> that</code> yields to the same type when the same options (either explicitly or implicitly) are used. </p> </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="list_member_hook.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.list_hook_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_list_member_hook.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/make_list_member_hook.html b/doc/html/boost/intrusive/make_list_member_hook.html index db3fb2da1b..850032bd4d 100644 --- a/doc/html/boost/intrusive/make_list_member_hook.html +++ b/doc/html/boost/intrusive/make_list_member_hook.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.list_hook_hpp" title="Header <boost/intrusive/list_hook.hpp>"> <link rel="prev" href="make_list_base_hook.html" title="Struct template make_list_base_hook"> <link rel="next" href="member_value_traits.html" title="Struct template member_value_traits"> +<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> @@ -29,8 +30,8 @@ <h2><span class="refentrytitle">Struct template make_list_member_hook</span></h2> <p>boost::intrusive::make_list_member_hook</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.list_hook_hpp" title="Header <boost/intrusive/list_hook.hpp>">boost/intrusive/list_hook.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.list_hook_hpp" title="Header <boost/intrusive/list_hook.hpp>">boost/intrusive/list_hook.hpp</a>> </span><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="special">...</span> Options<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="make_list_member_hook.html" title="Struct template make_list_member_hook">make_list_member_hook</a> <span class="special">{</span> @@ -38,18 +39,15 @@ <span class="keyword">typedef</span> <span class="identifier">implementation_defined</span> <a name="boost.intrusive.make_list_member_hook.type"></a><span class="identifier">type</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.19.6.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.19.6.4"></a><h2>Description</h2> <p>Helper metafunction to define a <code class="computeroutput"><code class="computeroutput"><a class="link" href="list_member_hook.html" title="Class template list_member_hook">list_member_hook</a></code> that</code> yields to the same type when the same options (either explicitly or implicitly) are used. </p> </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="make_list_base_hook.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.list_hook_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="member_value_traits.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/make_multiset.html b/doc/html/boost/intrusive/make_multiset.html index 06b391eb5c..545bf176ce 100644 --- a/doc/html/boost/intrusive/make_multiset.html +++ b/doc/html/boost/intrusive/make_multiset.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.set_hpp" title="Header <boost/intrusive/set.hpp>"> <link rel="prev" href="rbtree_algorithms.html" title="Class template rbtree_algorithms"> <link rel="next" href="make_set.html" title="Struct template make_set"> +<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> @@ -29,8 +30,8 @@ <h2><span class="refentrytitle">Struct template make_multiset</span></h2> <p>boost::intrusive::make_multiset</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.set_hpp" title="Header <boost/intrusive/set.hpp>">boost/intrusive/set.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.set_hpp" title="Header <boost/intrusive/set.hpp>">boost/intrusive/set.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">struct</span> <a class="link" href="make_multiset.html" title="Struct template make_multiset">make_multiset</a> <span class="special">{</span> @@ -38,18 +39,15 @@ <span class="keyword">typedef</span> <span class="identifier">implementation_defined</span> <a name="boost.intrusive.make_multiset.type"></a><span class="identifier">type</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.30.3.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.30.3.4"></a><h2>Description</h2> <p>Helper metafunction to define a <code class="computeroutput">multiset</code> that yields to the same type when the same options (either explicitly or implicitly) are used. </p> </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="rbtree_algorithms.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.set_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_set.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/make_rbtree.html b/doc/html/boost/intrusive/make_rbtree.html index ad01acfcc8..4f5374fad0 100644 --- a/doc/html/boost/intrusive/make_rbtree.html +++ b/doc/html/boost/intrusive/make_rbtree.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.rbtree_hpp" title="Header <boost/intrusive/rbtree.hpp>"> -<link rel="prev" href="priority_idm45971713951152.html" title="Struct priority_compare<void>"> +<link rel="prev" href="priority_compare__idm35304.html" title="Struct priority_compare<void>"> <link rel="next" href="rbtree.html" title="Class template rbtree"> +<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="priority_idm45971713951152.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.rbtree_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="rbtree.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +<a accesskey="p" href="priority_compare__idm35304.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.rbtree_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="rbtree.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> </div> <div class="refentry"> <a name="boost.intrusive.make_rbtree"></a><div class="titlepage"></div> @@ -29,8 +30,8 @@ <h2><span class="refentrytitle">Struct template make_rbtree</span></h2> <p>boost::intrusive::make_rbtree</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.rbtree_hpp" title="Header <boost/intrusive/rbtree.hpp>">boost/intrusive/rbtree.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.rbtree_hpp" title="Header <boost/intrusive/rbtree.hpp>">boost/intrusive/rbtree.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">struct</span> <a class="link" href="make_rbtree.html" title="Struct template make_rbtree">make_rbtree</a> <span class="special">{</span> @@ -38,21 +39,18 @@ <span class="keyword">typedef</span> <span class="identifier">implementation_defined</span> <a name="boost.intrusive.make_rbtree.type"></a><span class="identifier">type</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.28.3.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.28.3.4"></a><h2>Description</h2> <p>Helper metafunction to define a <code class="computeroutput">rbtree</code> that yields to the same type when the same options (either explicitly or implicitly) are used. </p> </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="priority_idm45971713951152.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.rbtree_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="rbtree.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +<a accesskey="p" href="priority_compare__idm35304.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.rbtree_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="rbtree.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> </div> </body> </html> diff --git a/doc/html/boost/intrusive/make_set.html b/doc/html/boost/intrusive/make_set.html index fe6b4dd4ae..f551443fe1 100644 --- a/doc/html/boost/intrusive/make_set.html +++ b/doc/html/boost/intrusive/make_set.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.set_hpp" title="Header <boost/intrusive/set.hpp>"> <link rel="prev" href="make_multiset.html" title="Struct template make_multiset"> <link rel="next" href="multiset.html" title="Class template multiset"> +<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> @@ -29,8 +30,8 @@ <h2><span class="refentrytitle">Struct template make_set</span></h2> <p>boost::intrusive::make_set</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.set_hpp" title="Header <boost/intrusive/set.hpp>">boost/intrusive/set.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.set_hpp" title="Header <boost/intrusive/set.hpp>">boost/intrusive/set.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">struct</span> <a class="link" href="make_set.html" title="Struct template make_set">make_set</a> <span class="special">{</span> @@ -38,18 +39,15 @@ <span class="keyword">typedef</span> <span class="identifier">implementation_defined</span> <a name="boost.intrusive.make_set.type"></a><span class="identifier">type</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.30.4.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.30.4.4"></a><h2>Description</h2> <p>Helper metafunction to define a <code class="computeroutput">set</code> that yields to the same type when the same options (either explicitly or implicitly) are used. </p> </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="make_multiset.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.set_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="multiset.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/make_set_base_hook.html b/doc/html/boost/intrusive/make_set_base_hook.html index 17fa6cc7a4..5a2b82dd58 100644 --- a/doc/html/boost/intrusive/make_set_base_hook.html +++ b/doc/html/boost/intrusive/make_set_base_hook.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.set_hook_hpp" title="Header <boost/intrusive/set_hook.hpp>"> <link rel="prev" href="set.html" title="Class template set"> <link rel="next" href="make_set_member_hook.html" title="Struct template make_set_member_hook"> +<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> @@ -29,8 +30,8 @@ <h2><span class="refentrytitle">Struct template make_set_base_hook</span></h2> <p>boost::intrusive::make_set_base_hook</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.set_hook_hpp" title="Header <boost/intrusive/set_hook.hpp>">boost/intrusive/set_hook.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.set_hook_hpp" title="Header <boost/intrusive/set_hook.hpp>">boost/intrusive/set_hook.hpp</a>> </span><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="special">...</span> Options<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="make_set_base_hook.html" title="Struct template make_set_base_hook">make_set_base_hook</a> <span class="special">{</span> @@ -38,18 +39,15 @@ <span class="keyword">typedef</span> <span class="identifier">implementation_defined</span> <a name="boost.intrusive.make_set_base_hook.type"></a><span class="identifier">type</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.31.3.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.31.3.4"></a><h2>Description</h2> <p>Helper metafunction to define a <code class="computeroutput"><a class="link" href="set_base_hook.html" title="Class template set_base_hook">set_base_hook</a></code> that yields to the same type when the same options (either explicitly or implicitly) are used. </p> </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="set.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.set_hook_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_set_member_hook.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/make_set_member_hook.html b/doc/html/boost/intrusive/make_set_member_hook.html index 82870ea735..be5c47f35f 100644 --- a/doc/html/boost/intrusive/make_set_member_hook.html +++ b/doc/html/boost/intrusive/make_set_member_hook.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.set_hook_hpp" title="Header <boost/intrusive/set_hook.hpp>"> <link rel="prev" href="make_set_base_hook.html" title="Struct template make_set_base_hook"> <link rel="next" href="set_base_hook.html" title="Class template set_base_hook"> +<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> @@ -29,8 +30,8 @@ <h2><span class="refentrytitle">Struct template make_set_member_hook</span></h2> <p>boost::intrusive::make_set_member_hook</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.set_hook_hpp" title="Header <boost/intrusive/set_hook.hpp>">boost/intrusive/set_hook.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.set_hook_hpp" title="Header <boost/intrusive/set_hook.hpp>">boost/intrusive/set_hook.hpp</a>> </span><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="special">...</span> Options<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="make_set_member_hook.html" title="Struct template make_set_member_hook">make_set_member_hook</a> <span class="special">{</span> @@ -38,18 +39,15 @@ <span class="keyword">typedef</span> <span class="identifier">implementation_defined</span> <a name="boost.intrusive.make_set_member_hook.type"></a><span class="identifier">type</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.31.4.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.31.4.4"></a><h2>Description</h2> <p>Helper metafunction to define a <code class="computeroutput"><a class="link" href="set_member_hook.html" title="Class template set_member_hook">set_member_hook</a></code> that yields to the same type when the same options (either explicitly or implicitly) are used. </p> </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="make_set_base_hook.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.set_hook_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="set_base_hook.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/make_sg_multiset.html b/doc/html/boost/intrusive/make_sg_multiset.html index f9050dfaf1..7e941f9764 100644 --- a/doc/html/boost/intrusive/make_sg_multiset.html +++ b/doc/html/boost/intrusive/make_sg_multiset.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.sg_set_hpp" title="Header <boost/intrusive/sg_set.hpp>"> <link rel="prev" href="set_member_hook.html" title="Class template set_member_hook"> <link rel="next" href="make_sg_set.html" title="Struct template make_sg_set"> +<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> @@ -29,8 +30,8 @@ <h2><span class="refentrytitle">Struct template make_sg_multiset</span></h2> <p>boost::intrusive::make_sg_multiset</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.sg_set_hpp" title="Header <boost/intrusive/sg_set.hpp>">boost/intrusive/sg_set.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.sg_set_hpp" title="Header <boost/intrusive/sg_set.hpp>">boost/intrusive/sg_set.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">struct</span> <a class="link" href="make_sg_multiset.html" title="Struct template make_sg_multiset">make_sg_multiset</a> <span class="special">{</span> @@ -38,18 +39,15 @@ <span class="keyword">typedef</span> <span class="identifier">implementation_defined</span> <a name="boost.intrusive.make_sg_multiset.type"></a><span class="identifier">type</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.32.3.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.32.3.4"></a><h2>Description</h2> <p>Helper metafunction to define a <code class="computeroutput"><a class="link" href="sg_multiset.html" title="Class template sg_multiset">sg_multiset</a></code> that yields to the same type when the same options (either explicitly or implicitly) are used. </p> </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="set_member_hook.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.sg_set_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_sg_set.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/make_sg_set.html b/doc/html/boost/intrusive/make_sg_set.html index 338df3d26d..afdff05376 100644 --- a/doc/html/boost/intrusive/make_sg_set.html +++ b/doc/html/boost/intrusive/make_sg_set.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.sg_set_hpp" title="Header <boost/intrusive/sg_set.hpp>"> <link rel="prev" href="make_sg_multiset.html" title="Struct template make_sg_multiset"> <link rel="next" href="sg_multiset.html" title="Class template sg_multiset"> +<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> @@ -29,8 +30,8 @@ <h2><span class="refentrytitle">Struct template make_sg_set</span></h2> <p>boost::intrusive::make_sg_set</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.sg_set_hpp" title="Header <boost/intrusive/sg_set.hpp>">boost/intrusive/sg_set.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.sg_set_hpp" title="Header <boost/intrusive/sg_set.hpp>">boost/intrusive/sg_set.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">struct</span> <a class="link" href="make_sg_set.html" title="Struct template make_sg_set">make_sg_set</a> <span class="special">{</span> @@ -38,18 +39,15 @@ <span class="keyword">typedef</span> <span class="identifier">implementation_defined</span> <a name="boost.intrusive.make_sg_set.type"></a><span class="identifier">type</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.32.4.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.32.4.4"></a><h2>Description</h2> <p>Helper metafunction to define a <code class="computeroutput"><a class="link" href="sg_set.html" title="Class template sg_set">sg_set</a></code> that yields to the same type when the same options (either explicitly or implicitly) are used. </p> </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="make_sg_multiset.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.sg_set_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="sg_multiset.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/make_sgtree.html b/doc/html/boost/intrusive/make_sgtree.html index 077e92ee9f..e7488844b2 100644 --- a/doc/html/boost/intrusive/make_sgtree.html +++ b/doc/html/boost/intrusive/make_sgtree.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.sgtree_hpp" title="Header <boost/intrusive/sgtree.hpp>"> <link rel="prev" href="sg_set.html" title="Class template sg_set"> <link rel="next" href="sgtree.html" title="Class template sgtree"> +<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> @@ -29,8 +30,8 @@ <h2><span class="refentrytitle">Struct template make_sgtree</span></h2> <p>boost::intrusive::make_sgtree</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.sgtree_hpp" title="Header <boost/intrusive/sgtree.hpp>">boost/intrusive/sgtree.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.sgtree_hpp" title="Header <boost/intrusive/sgtree.hpp>">boost/intrusive/sgtree.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">struct</span> <a class="link" href="make_sgtree.html" title="Struct template make_sgtree">make_sgtree</a> <span class="special">{</span> @@ -38,18 +39,15 @@ <span class="keyword">typedef</span> <span class="identifier">implementation_defined</span> <a name="boost.intrusive.make_sgtree.type"></a><span class="identifier">type</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.33.3.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.33.3.4"></a><h2>Description</h2> <p>Helper metafunction to define a <code class="computeroutput">sgtree</code> that yields to the same type when the same options (either explicitly or implicitly) are used. </p> </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="sg_set.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.sgtree_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="sgtree.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/make_slist.html b/doc/html/boost/intrusive/make_slist.html index f40b981767..59bf257b70 100644 --- a/doc/html/boost/intrusive/make_slist.html +++ b/doc/html/boost/intrusive/make_slist.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.slist_hpp" title="Header <boost/intrusive/slist.hpp>"> <link rel="prev" href="sgtree_algorithms/insert_commit_data.html" title="Struct insert_commit_data"> <link rel="next" href="slist.html" title="Class template slist"> +<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> @@ -29,8 +30,8 @@ <h2><span class="refentrytitle">Struct template make_slist</span></h2> <p>boost::intrusive::make_slist</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.slist_hpp" title="Header <boost/intrusive/slist.hpp>">boost/intrusive/slist.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.slist_hpp" title="Header <boost/intrusive/slist.hpp>">boost/intrusive/slist.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">struct</span> <a class="link" href="make_slist.html" title="Struct template make_slist">make_slist</a> <span class="special">{</span> @@ -38,18 +39,15 @@ <span class="keyword">typedef</span> <span class="identifier">implementation_defined</span> <a name="boost.intrusive.make_slist.type"></a><span class="identifier">type</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.35.3.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.35.3.4"></a><h2>Description</h2> <p>Helper metafunction to define a <code class="computeroutput">slist</code> that yields to the same type when the same options (either explicitly or implicitly) are used. </p> </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="sgtree_algorithms/insert_commit_data.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.slist_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="slist.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/make_slist_base_hook.html b/doc/html/boost/intrusive/make_slist_base_hook.html index 10f925e5cc..3e09d1356f 100644 --- a/doc/html/boost/intrusive/make_slist_base_hook.html +++ b/doc/html/boost/intrusive/make_slist_base_hook.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.slist_hook_hpp" title="Header <boost/intrusive/slist_hook.hpp>"> <link rel="prev" href="slist.html" title="Class template slist"> <link rel="next" href="make_slist_member_hook.html" title="Struct template make_slist_member_hook"> +<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> @@ -29,8 +30,8 @@ <h2><span class="refentrytitle">Struct template make_slist_base_hook</span></h2> <p>boost::intrusive::make_slist_base_hook</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.slist_hook_hpp" title="Header <boost/intrusive/slist_hook.hpp>">boost/intrusive/slist_hook.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.slist_hook_hpp" title="Header <boost/intrusive/slist_hook.hpp>">boost/intrusive/slist_hook.hpp</a>> </span><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="special">...</span> Options<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="make_slist_base_hook.html" title="Struct template make_slist_base_hook">make_slist_base_hook</a> <span class="special">{</span> @@ -38,18 +39,15 @@ <span class="keyword">typedef</span> <span class="identifier">implementation_defined</span> <a name="boost.intrusive.make_slist_base_hook.type"></a><span class="identifier">type</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.36.3.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.36.3.4"></a><h2>Description</h2> <p>Helper metafunction to define a <code class="computeroutput"><a class="link" href="slist_base_hook.html" title="Class template slist_base_hook">slist_base_hook</a></code> that yields to the same type when the same options (either explicitly or implicitly) are used. </p> </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="slist.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.slist_hook_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_slist_member_hook.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/make_slist_member_hook.html b/doc/html/boost/intrusive/make_slist_member_hook.html index 2286d3dc9d..f693cb7200 100644 --- a/doc/html/boost/intrusive/make_slist_member_hook.html +++ b/doc/html/boost/intrusive/make_slist_member_hook.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.slist_hook_hpp" title="Header <boost/intrusive/slist_hook.hpp>"> <link rel="prev" href="make_slist_base_hook.html" title="Struct template make_slist_base_hook"> <link rel="next" href="slist_base_hook.html" title="Class template slist_base_hook"> +<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> @@ -29,8 +30,8 @@ <h2><span class="refentrytitle">Struct template make_slist_member_hook</span></h2> <p>boost::intrusive::make_slist_member_hook</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.slist_hook_hpp" title="Header <boost/intrusive/slist_hook.hpp>">boost/intrusive/slist_hook.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.slist_hook_hpp" title="Header <boost/intrusive/slist_hook.hpp>">boost/intrusive/slist_hook.hpp</a>> </span><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="special">...</span> Options<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="make_slist_member_hook.html" title="Struct template make_slist_member_hook">make_slist_member_hook</a> <span class="special">{</span> @@ -38,18 +39,15 @@ <span class="keyword">typedef</span> <span class="identifier">implementation_defined</span> <a name="boost.intrusive.make_slist_member_hook.type"></a><span class="identifier">type</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.36.4.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.36.4.4"></a><h2>Description</h2> <p>Helper metafunction to define a <code class="computeroutput"><a class="link" href="slist_member_hook.html" title="Class template slist_member_hook">slist_member_hook</a></code> that yields to the same type when the same options (either explicitly or implicitly) are used. </p> </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="make_slist_base_hook.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.slist_hook_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="slist_base_hook.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/make_splay_multiset.html b/doc/html/boost/intrusive/make_splay_multiset.html index 0b7341bd13..112638b0fd 100644 --- a/doc/html/boost/intrusive/make_splay_multiset.html +++ b/doc/html/boost/intrusive/make_splay_multiset.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.splay_set_hpp" title="Header <boost/intrusive/splay_set.hpp>"> <link rel="prev" href="slist_member_hook.html" title="Class template slist_member_hook"> <link rel="next" href="make_splay_set.html" title="Struct template make_splay_set"> +<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> @@ -29,8 +30,8 @@ <h2><span class="refentrytitle">Struct template make_splay_multiset</span></h2> <p>boost::intrusive::make_splay_multiset</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.splay_set_hpp" title="Header <boost/intrusive/splay_set.hpp>">boost/intrusive/splay_set.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.splay_set_hpp" title="Header <boost/intrusive/splay_set.hpp>">boost/intrusive/splay_set.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">struct</span> <a class="link" href="make_splay_multiset.html" title="Struct template make_splay_multiset">make_splay_multiset</a> <span class="special">{</span> @@ -38,18 +39,15 @@ <span class="keyword">typedef</span> <span class="identifier">implementation_defined</span> <a name="boost.intrusive.make_splay_multiset.type"></a><span class="identifier">type</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.37.3.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.37.3.4"></a><h2>Description</h2> <p>Helper metafunction to define a <code class="computeroutput"><a class="link" href="splay_multiset.html" title="Class template splay_multiset">splay_multiset</a></code> that yields to the same type when the same options (either explicitly or implicitly) are used. </p> </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="slist_member_hook.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.splay_set_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_splay_set.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/make_splay_set.html b/doc/html/boost/intrusive/make_splay_set.html index 143e0027f1..6036da1ef5 100644 --- a/doc/html/boost/intrusive/make_splay_set.html +++ b/doc/html/boost/intrusive/make_splay_set.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.splay_set_hpp" title="Header <boost/intrusive/splay_set.hpp>"> <link rel="prev" href="make_splay_multiset.html" title="Struct template make_splay_multiset"> <link rel="next" href="splay_multiset.html" title="Class template splay_multiset"> +<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> @@ -29,8 +30,8 @@ <h2><span class="refentrytitle">Struct template make_splay_set</span></h2> <p>boost::intrusive::make_splay_set</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.splay_set_hpp" title="Header <boost/intrusive/splay_set.hpp>">boost/intrusive/splay_set.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.splay_set_hpp" title="Header <boost/intrusive/splay_set.hpp>">boost/intrusive/splay_set.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">struct</span> <a class="link" href="make_splay_set.html" title="Struct template make_splay_set">make_splay_set</a> <span class="special">{</span> @@ -38,18 +39,15 @@ <span class="keyword">typedef</span> <span class="identifier">implementation_defined</span> <a name="boost.intrusive.make_splay_set.type"></a><span class="identifier">type</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.37.4.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.37.4.4"></a><h2>Description</h2> <p>Helper metafunction to define a <code class="computeroutput"><a class="link" href="splay_set.html" title="Class template splay_set">splay_set</a></code> that yields to the same type when the same options (either explicitly or implicitly) are used. </p> </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="make_splay_multiset.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.splay_set_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="splay_multiset.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/make_splaytree.html b/doc/html/boost/intrusive/make_splaytree.html index 40861b9b03..1e407bc5af 100644 --- a/doc/html/boost/intrusive/make_splaytree.html +++ b/doc/html/boost/intrusive/make_splaytree.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.splaytree_hpp" title="Header <boost/intrusive/splaytree.hpp>"> <link rel="prev" href="splay_set.html" title="Class template splay_set"> <link rel="next" href="splaytree.html" title="Class template splaytree"> +<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> @@ -29,8 +30,8 @@ <h2><span class="refentrytitle">Struct template make_splaytree</span></h2> <p>boost::intrusive::make_splaytree</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.splaytree_hpp" title="Header <boost/intrusive/splaytree.hpp>">boost/intrusive/splaytree.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.splaytree_hpp" title="Header <boost/intrusive/splaytree.hpp>">boost/intrusive/splaytree.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">struct</span> <a class="link" href="make_splaytree.html" title="Struct template make_splaytree">make_splaytree</a> <span class="special">{</span> @@ -38,18 +39,15 @@ <span class="keyword">typedef</span> <span class="identifier">implementation_defined</span> <a name="boost.intrusive.make_splaytree.type"></a><span class="identifier">type</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.38.3.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.38.3.4"></a><h2>Description</h2> <p>Helper metafunction to define a <code class="computeroutput">splaytree</code> that yields to the same type when the same options (either explicitly or implicitly) are used. </p> </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="splay_set.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.splaytree_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="splaytree.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/make_treap.html b/doc/html/boost/intrusive/make_treap.html index dab27a6dfe..e65b013f0a 100644 --- a/doc/html/boost/intrusive/make_treap.html +++ b/doc/html/boost/intrusive/make_treap.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.treap_hpp" title="Header <boost/intrusive/treap.hpp>"> <link rel="prev" href="splaytree_algorithms.html" title="Class template splaytree_algorithms"> <link rel="next" href="treap.html" title="Class template treap"> +<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> @@ -29,30 +30,27 @@ <h2><span class="refentrytitle">Struct template make_treap</span></h2> <p>boost::intrusive::make_treap</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.treap_hpp" title="Header <boost/intrusive/treap.hpp>">boost/intrusive/treap.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.treap_hpp" title="Header <boost/intrusive/treap.hpp>">boost/intrusive/treap.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">struct</span> <a class="link" href="make_treap.html" title="Struct template make_treap">make_treap</a> <span class="special">{</span> <span class="comment">// types</span> - <span class="keyword">typedef</span> <a class="link" href="pack_options.html" title="Struct template pack_options">pack_options</a><span class="special"><</span> <span class="identifier">treap_defaults</span><span class="special">,</span> <span class="identifier">O1</span><span class="special">,</span> <span class="identifier">O2</span><span class="special">,</span> <span class="identifier">O3</span><span class="special">,</span> <span class="identifier">O4</span><span class="special">,</span> <span class="identifier">O5</span><span class="special">,</span> <span class="identifier">O6</span><span class="special">,</span> <span class="identifier">O7</span> <span class="special">></span><span class="special">::</span><a class="link" href="make_treap.html#boost.intrusive.make_treap.type">type</a> <a name="boost.intrusive.make_treap.packed_options"></a><span class="identifier">packed_options</span><span class="special">;</span> + <span class="keyword">typedef</span> <a class="link" href="pack_options.html" title="Struct template pack_options">pack_options</a><span class="special"><</span> <span class="identifier">treap_defaults</span><span class="special">,</span> <span class="identifier">O1</span><span class="special">,</span> <span class="identifier">O2</span><span class="special">,</span> <span class="identifier">O3</span><span class="special">,</span> <span class="identifier">O4</span><span class="special">,</span> <span class="identifier">O5</span><span class="special">,</span> <span class="identifier">O6</span><span class="special">,</span> <span class="identifier">O7</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> <a name="boost.intrusive.make_treap.packed_options"></a><span class="identifier">packed_options</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.make_treap.value_traits"></a><span class="identifier">value_traits</span><span class="special">;</span> <span class="keyword">typedef</span> <a class="link" href="treap.html" title="Class template treap">treap</a><span class="special"><</span> <span class="identifier">value_traits</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">packed_options</span><span class="special">::</span><span class="identifier">key_of_value</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">packed_options</span><span class="special">::</span><span class="identifier">compare</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">packed_options</span><span class="special">::</span><span class="identifier">priority_of_value</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">packed_options</span><span class="special">::</span><span class="identifier">priority</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">packed_options</span><span class="special">::</span><span class="identifier">size_type</span><span class="special">,</span> <span class="identifier">packed_options</span><span class="special">::</span><span class="identifier">constant_time_size</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">packed_options</span><span class="special">::</span><span class="identifier">header_holder_type</span> <span class="special">></span> <a name="boost.intrusive.make_treap.implementation_defined"></a><span class="identifier">implementation_defined</span><span class="special">;</span> <span class="keyword">typedef</span> <a class="link" href="make_treap.html#boost.intrusive.make_treap.implementation_defined">implementation_defined</a> <a name="boost.intrusive.make_treap.type"></a><span class="identifier">type</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.40.3.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.40.3.4"></a><h2>Description</h2> <p>Helper metafunction to define a <code class="computeroutput">treap</code> that yields to the same type when the same options (either explicitly or implicitly) are used. </p> </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="splaytree_algorithms.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.treap_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="treap.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/make_treap_multiset.html b/doc/html/boost/intrusive/make_treap_multiset.html index fbac6cc477..c49161992e 100644 --- a/doc/html/boost/intrusive/make_treap_multiset.html +++ b/doc/html/boost/intrusive/make_treap_multiset.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.treap_set_hpp" title="Header <boost/intrusive/treap_set.hpp>"> <link rel="prev" href="treap_algorithms/insert_commit_data.html" title="Struct insert_commit_data"> <link rel="next" href="make_treap_set.html" title="Struct template make_treap_set"> +<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> @@ -29,30 +30,27 @@ <h2><span class="refentrytitle">Struct template make_treap_multiset</span></h2> <p>boost::intrusive::make_treap_multiset</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.treap_set_hpp" title="Header <boost/intrusive/treap_set.hpp>">boost/intrusive/treap_set.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.treap_set_hpp" title="Header <boost/intrusive/treap_set.hpp>">boost/intrusive/treap_set.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">struct</span> <a class="link" href="make_treap_multiset.html" title="Struct template make_treap_multiset">make_treap_multiset</a> <span class="special">{</span> <span class="comment">// types</span> - <span class="keyword">typedef</span> <a class="link" href="pack_options.html" title="Struct template pack_options">pack_options</a><span class="special"><</span> <span class="identifier">treap_defaults</span><span class="special">,</span> <span class="identifier">O1</span><span class="special">,</span> <span class="identifier">O2</span><span class="special">,</span> <span class="identifier">O3</span><span class="special">,</span> <span class="identifier">O4</span><span class="special">,</span> <span class="identifier">O5</span><span class="special">,</span> <span class="identifier">O6</span><span class="special">,</span> <span class="identifier">O7</span> <span class="special">></span><span class="special">::</span><a class="link" href="make_treap_multiset.html#boost.intrusive.make_treap_multiset.type">type</a> <a name="boost.intrusive.make_treap_multiset.packed_options"></a><span class="identifier">packed_options</span><span class="special">;</span> + <span class="keyword">typedef</span> <a class="link" href="pack_options.html" title="Struct template pack_options">pack_options</a><span class="special"><</span> <span class="identifier">treap_defaults</span><span class="special">,</span> <span class="identifier">O1</span><span class="special">,</span> <span class="identifier">O2</span><span class="special">,</span> <span class="identifier">O3</span><span class="special">,</span> <span class="identifier">O4</span><span class="special">,</span> <span class="identifier">O5</span><span class="special">,</span> <span class="identifier">O6</span><span class="special">,</span> <span class="identifier">O7</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> <a name="boost.intrusive.make_treap_multiset.packed_options"></a><span class="identifier">packed_options</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.make_treap_multiset.value_traits"></a><span class="identifier">value_traits</span><span class="special">;</span> <span class="keyword">typedef</span> <a class="link" href="treap_multiset.html" title="Class template treap_multiset">treap_multiset</a><span class="special"><</span> <span class="identifier">value_traits</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">packed_options</span><span class="special">::</span><span class="identifier">key_of_value</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">packed_options</span><span class="special">::</span><span class="identifier">compare</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">packed_options</span><span class="special">::</span><span class="identifier">priority_of_value</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">packed_options</span><span class="special">::</span><span class="identifier">priority</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">packed_options</span><span class="special">::</span><span class="identifier">size_type</span><span class="special">,</span> <span class="identifier">packed_options</span><span class="special">::</span><span class="identifier">constant_time_size</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">packed_options</span><span class="special">::</span><span class="identifier">header_holder_type</span> <span class="special">></span> <a name="boost.intrusive.make_treap_multiset.implementation_defined"></a><span class="identifier">implementation_defined</span><span class="special">;</span> <span class="keyword">typedef</span> <a class="link" href="make_treap_multiset.html#boost.intrusive.make_treap_multiset.implementation_defined">implementation_defined</a> <a name="boost.intrusive.make_treap_multiset.type"></a><span class="identifier">type</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.42.3.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.42.3.4"></a><h2>Description</h2> <p>Helper metafunction to define a <code class="computeroutput"><a class="link" href="treap_multiset.html" title="Class template treap_multiset">treap_multiset</a></code> that yields to the same type when the same options (either explicitly or implicitly) are used. </p> </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="treap_algorithms/insert_commit_data.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.treap_set_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_treap_set.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/make_treap_set.html b/doc/html/boost/intrusive/make_treap_set.html index 4dac96f845..9ebcc19ffb 100644 --- a/doc/html/boost/intrusive/make_treap_set.html +++ b/doc/html/boost/intrusive/make_treap_set.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.treap_set_hpp" title="Header <boost/intrusive/treap_set.hpp>"> <link rel="prev" href="make_treap_multiset.html" title="Struct template make_treap_multiset"> <link rel="next" href="treap_multiset.html" title="Class template treap_multiset"> +<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> @@ -29,30 +30,27 @@ <h2><span class="refentrytitle">Struct template make_treap_set</span></h2> <p>boost::intrusive::make_treap_set</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.treap_set_hpp" title="Header <boost/intrusive/treap_set.hpp>">boost/intrusive/treap_set.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.treap_set_hpp" title="Header <boost/intrusive/treap_set.hpp>">boost/intrusive/treap_set.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">struct</span> <a class="link" href="make_treap_set.html" title="Struct template make_treap_set">make_treap_set</a> <span class="special">{</span> <span class="comment">// types</span> - <span class="keyword">typedef</span> <a class="link" href="pack_options.html" title="Struct template pack_options">pack_options</a><span class="special"><</span> <span class="identifier">treap_defaults</span><span class="special">,</span> <span class="identifier">O1</span><span class="special">,</span> <span class="identifier">O2</span><span class="special">,</span> <span class="identifier">O3</span><span class="special">,</span> <span class="identifier">O4</span><span class="special">,</span> <span class="identifier">O5</span><span class="special">,</span> <span class="identifier">O6</span><span class="special">,</span> <span class="identifier">O7</span> <span class="special">></span><span class="special">::</span><a class="link" href="make_treap_set.html#boost.intrusive.make_treap_set.type">type</a> <a name="boost.intrusive.make_treap_set.packed_options"></a><span class="identifier">packed_options</span><span class="special">;</span> + <span class="keyword">typedef</span> <a class="link" href="pack_options.html" title="Struct template pack_options">pack_options</a><span class="special"><</span> <span class="identifier">treap_defaults</span><span class="special">,</span> <span class="identifier">O1</span><span class="special">,</span> <span class="identifier">O2</span><span class="special">,</span> <span class="identifier">O3</span><span class="special">,</span> <span class="identifier">O4</span><span class="special">,</span> <span class="identifier">O5</span><span class="special">,</span> <span class="identifier">O6</span><span class="special">,</span> <span class="identifier">O7</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> <a name="boost.intrusive.make_treap_set.packed_options"></a><span class="identifier">packed_options</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.make_treap_set.value_traits"></a><span class="identifier">value_traits</span><span class="special">;</span> <span class="keyword">typedef</span> <a class="link" href="treap_set.html" title="Class template treap_set">treap_set</a><span class="special"><</span> <span class="identifier">value_traits</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">packed_options</span><span class="special">::</span><span class="identifier">key_of_value</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">packed_options</span><span class="special">::</span><span class="identifier">compare</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">packed_options</span><span class="special">::</span><span class="identifier">priority_of_value</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">packed_options</span><span class="special">::</span><span class="identifier">priority</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">packed_options</span><span class="special">::</span><span class="identifier">size_type</span><span class="special">,</span> <span class="identifier">packed_options</span><span class="special">::</span><span class="identifier">constant_time_size</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">packed_options</span><span class="special">::</span><span class="identifier">header_holder_type</span> <span class="special">></span> <a name="boost.intrusive.make_treap_set.implementation_defined"></a><span class="identifier">implementation_defined</span><span class="special">;</span> <span class="keyword">typedef</span> <a class="link" href="make_treap_set.html#boost.intrusive.make_treap_set.implementation_defined">implementation_defined</a> <a name="boost.intrusive.make_treap_set.type"></a><span class="identifier">type</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.42.4.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.42.4.4"></a><h2>Description</h2> <p>Helper metafunction to define a <code class="computeroutput"><a class="link" href="treap_set.html" title="Class template treap_set">treap_set</a></code> that yields to the same type when the same options (either explicitly or implicitly) are used. </p> </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="make_treap_multiset.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.treap_set_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="treap_multiset.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/make_unordered_multiset.html b/doc/html/boost/intrusive/make_unordered_multiset.html index dc95d7ea83..42338a232b 100644 --- a/doc/html/boost/intrusive/make_unordered_multiset.html +++ b/doc/html/boost/intrusive/make_unordered_multiset.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.unordered_set_hpp" title="Header <boost/intrusive/unordered_set.hpp>"> <link rel="prev" href="trivial_value_traits.html" title="Struct template trivial_value_traits"> <link rel="next" href="make_unordered_set.html" title="Struct template make_unordered_set"> +<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> @@ -29,8 +30,8 @@ <h2><span class="refentrytitle">Struct template make_unordered_multiset</span></h2> <p>boost::intrusive::make_unordered_multiset</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.unordered_set_hpp" title="Header <boost/intrusive/unordered_set.hpp>">boost/intrusive/unordered_set.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.unordered_set_hpp" title="Header <boost/intrusive/unordered_set.hpp>">boost/intrusive/unordered_set.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">struct</span> <a class="link" href="make_unordered_multiset.html" title="Struct template make_unordered_multiset">make_unordered_multiset</a> <span class="special">{</span> @@ -38,18 +39,15 @@ <span class="keyword">typedef</span> <span class="identifier">implementation_defined</span> <a name="boost.intrusive.make_unordered_multiset.type"></a><span class="identifier">type</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.44.3.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.44.3.4"></a><h2>Description</h2> <p>Helper metafunction to define an <code class="computeroutput"><a class="link" href="unordered_multiset.html" title="Class template unordered_multiset">unordered_multiset</a></code> that yields to the same type when the same options (either explicitly or implicitly) are used. </p> </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="trivial_value_traits.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.unordered_set_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_unordered_set.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/make_uno_idm45971703288480.html b/doc/html/boost/intrusive/make_unordered_se_idm55705.html index c18900feb2..78d73e57f5 100644 --- a/doc/html/boost/intrusive/make_uno_idm45971703288480.html +++ b/doc/html/boost/intrusive/make_unordered_se_idm55705.html @@ -8,7 +8,8 @@ <link rel="home" href="../../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset"> <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.unordered_set_hook_hpp" title="Header <boost/intrusive/unordered_set_hook.hpp>"> <link rel="prev" href="unordered_set.html" title="Class template unordered_set"> -<link rel="next" href="make_uno_idm45971703284688.html" title="Struct template make_unordered_set_member_hook"> +<link rel="next" href="make_unordered_se_idm55715.html" title="Struct template make_unordered_set_member_hook"> +<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,38 +22,35 @@ </tr></table> <hr> <div class="spirit-nav"> -<a accesskey="p" href="unordered_set.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.unordered_set_hook_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_uno_idm45971703284688.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +<a accesskey="p" href="unordered_set.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.unordered_set_hook_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_unordered_se_idm55715.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> </div> <div class="refentry"> -<a name="boost.intrusive.make_uno_idm45971703288480"></a><div class="titlepage"></div> +<a name="boost.intrusive.make_unordered_se_idm55705"></a><div class="titlepage"></div> <div class="refnamediv"> <h2><span class="refentrytitle">Struct template make_unordered_set_base_hook</span></h2> <p>boost::intrusive::make_unordered_set_base_hook</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.unordered_set_hook_hpp" title="Header <boost/intrusive/unordered_set_hook.hpp>">boost/intrusive/unordered_set_hook.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.unordered_set_hook_hpp" title="Header <boost/intrusive/unordered_set_hook.hpp>">boost/intrusive/unordered_set_hook.hpp</a>> </span><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="special">...</span> Options<span class="special">></span> -<span class="keyword">struct</span> <a class="link" href="make_uno_idm45971703288480.html" title="Struct template make_unordered_set_base_hook">make_unordered_set_base_hook</a> <span class="special">{</span> +<span class="keyword">struct</span> <a class="link" href="make_unordered_se_idm55705.html" title="Struct template make_unordered_set_base_hook">make_unordered_set_base_hook</a> <span class="special">{</span> <span class="comment">// types</span> - <span class="keyword">typedef</span> <span class="identifier">implementation_defined</span> <a name="boost.intrusive.make_uno_idm45971703288480.type"></a><span class="identifier">type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">implementation_defined</span> <a name="boost.intrusive.make_unordered_se_idm55705.type"></a><span class="identifier">type</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.45.3.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.45.3.4"></a><h2>Description</h2> <p>Helper metafunction to define a <code class="computeroutput"><a class="link" href="unordered_set_base_hook.html" title="Class template unordered_set_base_hook">unordered_set_base_hook</a></code> that yields to the same type when the same options (either explicitly or implicitly) are used. </p> </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="unordered_set.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.unordered_set_hook_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_uno_idm45971703284688.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +<a accesskey="p" href="unordered_set.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.unordered_set_hook_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_unordered_se_idm55715.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> </div> </body> </html> diff --git a/doc/html/boost/intrusive/make_uno_idm45971703284688.html b/doc/html/boost/intrusive/make_unordered_se_idm55715.html index 0dbe671672..4a8cb62e75 100644 --- a/doc/html/boost/intrusive/make_uno_idm45971703284688.html +++ b/doc/html/boost/intrusive/make_unordered_se_idm55715.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.unordered_set_hook_hpp" title="Header <boost/intrusive/unordered_set_hook.hpp>"> -<link rel="prev" href="make_uno_idm45971703288480.html" title="Struct template make_unordered_set_base_hook"> +<link rel="prev" href="make_unordered_se_idm55705.html" title="Struct template make_unordered_set_base_hook"> <link rel="next" href="unordered_set_base_hook.html" title="Class template unordered_set_base_hook"> +<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,38 +22,35 @@ </tr></table> <hr> <div class="spirit-nav"> -<a accesskey="p" href="make_uno_idm45971703288480.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.unordered_set_hook_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="unordered_set_base_hook.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +<a accesskey="p" href="make_unordered_se_idm55705.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.unordered_set_hook_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="unordered_set_base_hook.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> </div> <div class="refentry"> -<a name="boost.intrusive.make_uno_idm45971703284688"></a><div class="titlepage"></div> +<a name="boost.intrusive.make_unordered_se_idm55715"></a><div class="titlepage"></div> <div class="refnamediv"> <h2><span class="refentrytitle">Struct template make_unordered_set_member_hook</span></h2> <p>boost::intrusive::make_unordered_set_member_hook</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.unordered_set_hook_hpp" title="Header <boost/intrusive/unordered_set_hook.hpp>">boost/intrusive/unordered_set_hook.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.unordered_set_hook_hpp" title="Header <boost/intrusive/unordered_set_hook.hpp>">boost/intrusive/unordered_set_hook.hpp</a>> </span><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="special">...</span> Options<span class="special">></span> -<span class="keyword">struct</span> <a class="link" href="make_uno_idm45971703284688.html" title="Struct template make_unordered_set_member_hook">make_unordered_set_member_hook</a> <span class="special">{</span> +<span class="keyword">struct</span> <a class="link" href="make_unordered_se_idm55715.html" title="Struct template make_unordered_set_member_hook">make_unordered_set_member_hook</a> <span class="special">{</span> <span class="comment">// types</span> - <span class="keyword">typedef</span> <span class="identifier">implementation_defined</span> <a name="boost.intrusive.make_uno_idm45971703284688.type"></a><span class="identifier">type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">implementation_defined</span> <a name="boost.intrusive.make_unordered_se_idm55715.type"></a><span class="identifier">type</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.45.4.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.45.4.4"></a><h2>Description</h2> <p>Helper metafunction to define a <code class="computeroutput"><a class="link" href="unordered_set_member_hook.html" title="Class template unordered_set_member_hook">unordered_set_member_hook</a></code> that yields to the same type when the same options (either explicitly or implicitly) are used. </p> </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="make_uno_idm45971703288480.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.unordered_set_hook_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="unordered_set_base_hook.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +<a accesskey="p" href="make_unordered_se_idm55705.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.unordered_set_hook_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="unordered_set_base_hook.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> </div> </body> </html> diff --git a/doc/html/boost/intrusive/make_unordered_set.html b/doc/html/boost/intrusive/make_unordered_set.html index 46d6c2d012..cdca6c0671 100644 --- a/doc/html/boost/intrusive/make_unordered_set.html +++ b/doc/html/boost/intrusive/make_unordered_set.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.unordered_set_hpp" title="Header <boost/intrusive/unordered_set.hpp>"> <link rel="prev" href="make_unordered_multiset.html" title="Struct template make_unordered_multiset"> <link rel="next" href="unordered_multiset.html" title="Class template unordered_multiset"> +<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> @@ -29,8 +30,8 @@ <h2><span class="refentrytitle">Struct template make_unordered_set</span></h2> <p>boost::intrusive::make_unordered_set</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.unordered_set_hpp" title="Header <boost/intrusive/unordered_set.hpp>">boost/intrusive/unordered_set.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.unordered_set_hpp" title="Header <boost/intrusive/unordered_set.hpp>">boost/intrusive/unordered_set.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">struct</span> <a class="link" href="make_unordered_set.html" title="Struct template make_unordered_set">make_unordered_set</a> <span class="special">{</span> @@ -38,18 +39,15 @@ <span class="keyword">typedef</span> <span class="identifier">implementation_defined</span> <a name="boost.intrusive.make_unordered_set.type"></a><span class="identifier">type</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.44.4.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.44.4.4"></a><h2>Description</h2> <p>Helper metafunction to define an <code class="computeroutput"><a class="link" href="unordered_set.html" title="Class template unordered_set">unordered_set</a></code> that yields to the same type when the same options (either explicitly or implicitly) are used. </p> </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="make_unordered_multiset.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.unordered_set_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="unordered_multiset.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/max_poin_idm45971714113872.html b/doc/html/boost/intrusive/max_pointer_plus__idm34926.html index 5147531769..5fa7efc3d2 100644 --- a/doc/html/boost/intrusive/max_poin_idm45971714113872.html +++ b/doc/html/boost/intrusive/max_pointer_plus__idm34926.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.pointer_plus_bits_hpp" title="Header <boost/intrusive/pointer_plus_bits.hpp>"> <link rel="prev" href="max_pointer_plus_bits.html" title="Struct template max_pointer_plus_bits"> <link rel="next" href="pointer_plus_bits.html" title="Struct template pointer_plus_bits"> +<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> @@ -24,33 +25,30 @@ <a accesskey="p" href="max_pointer_plus_bits.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.pointer_plus_bits_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="pointer_plus_bits.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> </div> <div class="refentry"> -<a name="boost.intrusive.max_poin_idm45971714113872"></a><div class="titlepage"></div> +<a name="boost.intrusive.max_pointer_plus__idm34926"></a><div class="titlepage"></div> <div class="refnamediv"> <h2><span class="refentrytitle">Struct template max_pointer_plus_bits<void *, Alignment></span></h2> <p>boost::intrusive::max_pointer_plus_bits<void *, Alignment></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.pointer_plus_bits_hpp" title="Header <boost/intrusive/pointer_plus_bits.hpp>">boost/intrusive/pointer_plus_bits.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.pointer_plus_bits_hpp" title="Header <boost/intrusive/pointer_plus_bits.hpp>">boost/intrusive/pointer_plus_bits.hpp</a>> </span><span class="keyword">template</span><span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> Alignment<span class="special">></span> -<span class="keyword">struct</span> <a class="link" href="max_poin_idm45971714113872.html" title="Struct template max_pointer_plus_bits<void *, Alignment>">max_pointer_plus_bits</a><span class="special"><</span><span class="keyword">void</span> <span class="special">*</span><span class="special">,</span> <span class="identifier">Alignment</span><span class="special">></span> <span class="special">{</span> +<span class="keyword">struct</span> <a class="link" href="max_pointer_plus__idm34926.html" title="Struct template max_pointer_plus_bits<void *, Alignment>">max_pointer_plus_bits</a><span class="special"><</span><span class="keyword">void</span> <span class="special">*</span><span class="special">,</span> <span class="identifier">Alignment</span><span class="special">></span> <span class="special">{</span> <span class="comment">// public data members</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">value</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.24.4.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.24.4.4"></a><h2>Description</h2> <p>This is a specialization for raw pointers. Raw pointers can embed extra bits in the lower bits if the alignment is multiple of 2pow(NumBits). </p> </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="max_pointer_plus_bits.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.pointer_plus_bits_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="pointer_plus_bits.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/max_pointer_plus_bits.html b/doc/html/boost/intrusive/max_pointer_plus_bits.html index d12d94e35f..27e9b60a1b 100644 --- a/doc/html/boost/intrusive/max_pointer_plus_bits.html +++ b/doc/html/boost/intrusive/max_pointer_plus_bits.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.pointer_plus_bits_hpp" title="Header <boost/intrusive/pointer_plus_bits.hpp>"> -<link rel="prev" href="get_pare_idm45971714124112.html" title="Function template get_parent_from_member"> -<link rel="next" href="max_poin_idm45971714113872.html" title="Struct template max_pointer_plus_bits<void *, Alignment>"> +<link rel="prev" href="get_parent_from_m_idm34903.html" title="Function template get_parent_from_member"> +<link rel="next" href="max_pointer_plus__idm34926.html" title="Struct template max_pointer_plus_bits<void *, Alignment>"> +<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="get_pare_idm45971714124112.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.pointer_plus_bits_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="max_poin_idm45971714113872.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +<a accesskey="p" href="get_parent_from_m_idm34903.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.pointer_plus_bits_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="max_pointer_plus__idm34926.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> </div> <div class="refentry"> <a name="boost.intrusive.max_pointer_plus_bits"></a><div class="titlepage"></div> @@ -29,8 +30,8 @@ <h2><span class="refentrytitle">Struct template max_pointer_plus_bits</span></h2> <p>boost::intrusive::max_pointer_plus_bits</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.pointer_plus_bits_hpp" title="Header <boost/intrusive/pointer_plus_bits.hpp>">boost/intrusive/pointer_plus_bits.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.pointer_plus_bits_hpp" title="Header <boost/intrusive/pointer_plus_bits.hpp>">boost/intrusive/pointer_plus_bits.hpp</a>> </span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> VoidPointer<span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> Alignment<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="max_pointer_plus_bits.html" title="Struct template max_pointer_plus_bits">max_pointer_plus_bits</a> <span class="special">{</span> @@ -39,21 +40,18 @@ <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">value</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.24.3.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.24.3.4"></a><h2>Description</h2> <p>This trait class is used to know if a pointer can embed extra bits of information if it's going to be used to point to objects with an alignment of "Alignment" bytes. </p> </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="get_pare_idm45971714124112.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.pointer_plus_bits_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="max_poin_idm45971714113872.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +<a accesskey="p" href="get_parent_from_m_idm34903.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.pointer_plus_bits_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="max_pointer_plus__idm34926.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> </div> </body> </html> diff --git a/doc/html/boost/intrusive/member_hook.html b/doc/html/boost/intrusive/member_hook.html index 0f00b65067..c1a1e72c8f 100644 --- a/doc/html/boost/intrusive/member_hook.html +++ b/doc/html/boost/intrusive/member_hook.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.options_hpp" title="Header <boost/intrusive/options.hpp>"> <link rel="prev" href="link_mode.html" title="Struct template link_mode"> <link rel="next" href="optimize_multikey.html" title="Struct template optimize_multikey"> +<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> @@ -29,26 +30,23 @@ <h2><span class="refentrytitle">Struct template member_hook</span></h2> <p>boost::intrusive::member_hook</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.options_hpp" title="Header <boost/intrusive/options.hpp>">boost/intrusive/options.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.options_hpp" title="Header <boost/intrusive/options.hpp>">boost/intrusive/options.hpp</a>> </span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Parent<span class="special">,</span> <span class="keyword">typename</span> MemberHook<span class="special">,</span> <span class="identifier">MemberHook</span> <span class="identifier">Parent</span><span class="special">::</span><span class="special">*</span> PtrToMember<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="member_hook.html" title="Struct template member_hook">member_hook</a> <span class="special">{</span> <span class="special">}</span><span class="special">;</span></pre></div> <div class="refsect1"> -<a name="id-1.3.20.42.21.19.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.21.21.4"></a><h2>Description</h2> <p>This option setter specifies the member hook the container must use. </p> </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="link_mode.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.options_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="optimize_multikey.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/member_value_traits.html b/doc/html/boost/intrusive/member_value_traits.html index c86d04afff..72685fb95e 100644 --- a/doc/html/boost/intrusive/member_value_traits.html +++ b/doc/html/boost/intrusive/member_value_traits.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.member_value_traits_hpp" title="Header <boost/intrusive/member_value_traits.hpp>"> <link rel="prev" href="make_list_member_hook.html" title="Struct template make_list_member_hook"> <link rel="next" href="base_hook.html" title="Struct template base_hook"> +<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> @@ -29,57 +30,54 @@ <h2><span class="refentrytitle">Struct template member_value_traits</span></h2> <p>boost::intrusive::member_value_traits</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.member_value_traits_hpp" title="Header <boost/intrusive/member_value_traits.hpp>">boost/intrusive/member_value_traits.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.member_value_traits_hpp" title="Header <boost/intrusive/member_value_traits.hpp>">boost/intrusive/member_value_traits.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">typename</span> NodeTraits<span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">NodeTraits</span><span class="special">::</span><span class="identifier">node</span> <span class="identifier">T</span><span class="special">::</span><span class="special">*</span> PtrToMember<span class="special">,</span> <span class="identifier">link_mode_type</span> LinkMode <span class="special">=</span> <span class="identifier">safe_link</span><span class="special">></span> <span class="keyword">struct</span> <a class="link" href="member_value_traits.html" title="Struct template member_value_traits">member_value_traits</a> <span class="special">{</span> <span class="comment">// types</span> - <span class="keyword">typedef</span> <span class="identifier">NodeTraits</span> <a name="boost.intrusive.member_value_traits.node_traits"></a><span class="identifier">node_traits</span><span class="special">;</span> - <span class="keyword">typedef</span> <span class="identifier">T</span> <a name="boost.intrusive.member_value_traits.value_type"></a><span class="identifier">value_type</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.member_value_traits.node"></a><span class="identifier">node</span><span class="special">;</span> - <span class="keyword">typedef</span> <span class="identifier">node_traits</span><span class="special">::</span><span class="identifier">node_ptr</span> <a name="boost.intrusive.member_value_traits.node_ptr"></a><span class="identifier">node_ptr</span><span class="special">;</span> - <span class="keyword">typedef</span> <span class="identifier">node_traits</span><span class="special">::</span><span class="identifier">const_node_ptr</span> <a name="boost.intrusive.member_value_traits.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> <a name="boost.intrusive.member_value_traits.node_ptr_traits"></a><span class="identifier">node_ptr_traits</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="keyword">template</span> <span class="identifier">rebind_pointer</span><span class="special"><</span> <span class="identifier">T</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> <a name="boost.intrusive.member_value_traits.pointer"></a><span class="identifier">pointer</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="keyword">template</span> <span class="identifier">rebind_pointer</span><span class="special"><</span> <span class="keyword">const</span> <span class="identifier">T</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> <a name="boost.intrusive.member_value_traits.const_pointer"></a><span class="identifier">const_pointer</span><span class="special">;</span> - <span class="keyword">typedef</span> <span class="identifier">value_type</span> <span class="special">&</span> <a name="boost.intrusive.member_value_traits.reference"></a><span class="identifier">reference</span><span class="special">;</span> - <span class="keyword">typedef</span> <span class="keyword">const</span> <span class="identifier">value_type</span> <span class="special">&</span> <a name="boost.intrusive.member_value_traits.const_reference"></a><span class="identifier">const_reference</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">NodeTraits</span> <a name="boost.intrusive.member_value_traits.node_traits"></a><span class="identifier">node_traits</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">T</span> <a name="boost.intrusive.member_value_traits.value_type"></a><span class="identifier">value_type</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.member_value_traits.node"></a><span class="identifier">node</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">node_traits</span><span class="special">::</span><span class="identifier">node_ptr</span> <a name="boost.intrusive.member_value_traits.node_ptr"></a><span class="identifier">node_ptr</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">node_traits</span><span class="special">::</span><span class="identifier">const_node_ptr</span> <a name="boost.intrusive.member_value_traits.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> <a name="boost.intrusive.member_value_traits.node_ptr_traits"></a><span class="identifier">node_ptr_traits</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="keyword">template</span> <span class="identifier">rebind_pointer</span><span class="special"><</span> <span class="identifier">T</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> <a name="boost.intrusive.member_value_traits.pointer"></a><span class="identifier">pointer</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="keyword">template</span> <span class="identifier">rebind_pointer</span><span class="special"><</span> <span class="identifier">constT</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> <a name="boost.intrusive.member_value_traits.const_pointer"></a><span class="identifier">const_pointer</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">value_type</span> <span class="special">&</span> <a name="boost.intrusive.member_value_traits.reference"></a><span class="identifier">reference</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="keyword">const</span> <span class="identifier">value_type</span> <span class="special">&</span> <a name="boost.intrusive.member_value_traits.const_reference"></a><span class="identifier">const_reference</span><span class="special">;</span> - <span class="comment">// <a class="link" href="member_value_traits.html#idm45971714224176-bb">public static functions</a></span> - <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="member_value_traits.html#idm45971714223616-bb"><span class="identifier">to_node_ptr</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_node_ptr</span> <a class="link" href="member_value_traits.html#idm45971714221536-bb"><span class="identifier">to_node_ptr</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">pointer</span> <a class="link" href="member_value_traits.html#idm45971714219456-bb"><span class="identifier">to_value_ptr</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="identifier">const_pointer</span> <a class="link" href="member_value_traits.html#idm45971714217376-bb"><span class="identifier">to_value_ptr</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="comment">// <a class="link" href="member_value_traits.html#idm34644-bb">public static functions</a></span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="member_value_traits.html#idm34645-bb"><span class="identifier">to_node_ptr</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_node_ptr</span> <a class="link" href="member_value_traits.html#idm34649-bb"><span class="identifier">to_node_ptr</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">pointer</span> <a class="link" href="member_value_traits.html#idm34653-bb"><span class="identifier">to_value_ptr</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">const_pointer</span> <a class="link" href="member_value_traits.html#idm34657-bb"><span class="identifier">to_value_ptr</span></a><span class="special">(</span><span class="identifier">const_node_ptr</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="identifier">link_mode_type</span> <span class="identifier">link_mode</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.20.3.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.20.3.4"></a><h2>Description</h2> <p>This value traits template is used to create value traits from user defined node traits where value_traits::value_type will store a node_traits::node </p> <div class="refsect2"> -<a name="id-1.3.20.42.20.3.4.3"></a><h3> -<a name="idm45971714224176-bb"></a><code class="computeroutput">member_value_traits</code> public static functions</h3> +<a name="id-1.3.18.42.20.3.4.3"></a><h3> +<a name="idm34644-bb"></a><code class="computeroutput">member_value_traits</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">node_ptr</span> <a name="idm45971714223616-bb"></a><span class="identifier">to_node_ptr</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></li> -<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">const_node_ptr</span> <a name="idm45971714221536-bb"></a><span class="identifier">to_node_ptr</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></li> -<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">pointer</span> <a name="idm45971714219456-bb"></a><span class="identifier">to_value_ptr</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span> n<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> -<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">const_pointer</span> <a name="idm45971714217376-bb"></a><span class="identifier">to_value_ptr</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span> n<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">node_ptr</span> <a name="idm34645-bb"></a><span class="identifier">to_node_ptr</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></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">const_node_ptr</span> <a name="idm34649-bb"></a><span class="identifier">to_node_ptr</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></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">pointer</span> <a name="idm34653-bb"></a><span class="identifier">to_value_ptr</span><span class="special">(</span><span class="identifier">node_ptr</span> n<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">const_pointer</span> <a name="idm34657-bb"></a><span class="identifier">to_value_ptr</span><span class="special">(</span><span class="identifier">const_node_ptr</span> n<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> </ol></div> </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="make_list_member_hook.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.member_value_traits_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="base_hook.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/multiset.html b/doc/html/boost/intrusive/multiset.html index 61f59a75eb..7b31504814 100644 --- a/doc/html/boost/intrusive/multiset.html +++ b/doc/html/boost/intrusive/multiset.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.set_hpp" title="Header <boost/intrusive/set.hpp>"> <link rel="prev" href="make_set.html" title="Struct template make_set"> <link rel="next" href="set.html" title="Class template set"> +<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> @@ -29,8 +30,8 @@ <h2><span class="refentrytitle">Class template multiset</span></h2> <p>boost::intrusive::multiset</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.set_hpp" title="Header <boost/intrusive/set.hpp>">boost/intrusive/set.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.set_hpp" title="Header <boost/intrusive/set.hpp>">boost/intrusive/set.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="multiset.html" title="Class template multiset">multiset</a> <span class="special">{</span> @@ -60,430 +61,364 @@ <span class="keyword">typedef</span> <span class="identifier">implementation_defined</span><span class="special">::</span><span class="identifier">node_algorithms</span> <a name="boost.intrusive.multiset.node_algorithms"></a><span class="identifier">node_algorithms</span><span class="special">;</span> <span class="comment">// <a class="link" href="multiset.html#boost.intrusive.multisetconstruct-copy-destruct">construct/copy/destruct</a></span> - <a class="link" href="multiset.html#idm45971712534320-bb"><span class="identifier">multiset</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">explicit</span> <a class="link" href="multiset.html#idm45971712531168-bb"><span class="identifier">multiset</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span><span class="special">,</span> + <a class="link" href="multiset.html#idm37935-bb"><span class="identifier">multiset</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">explicit</span> <a class="link" href="multiset.html#idm37943-bb"><span class="identifier">multiset</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_compare</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="multiset.html#idm45971712526048-bb"><span class="identifier">multiset</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="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> <span class="special">=</span> <span class="identifier">key_compare</span><span class="special">(</span><span class="special">)</span><span class="special">,</span> + <a class="link" href="multiset.html#idm37949-bb"><span class="identifier">multiset</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="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> <span class="special">=</span> <span class="identifier">key_compare</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="multiset.html#idm45971712517584-bb"><span class="identifier">multiset</span></a><span class="special">(</span><a class="link" href="multiset.html" title="Class template multiset">multiset</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> - <a class="link" href="multiset.html" title="Class template multiset">multiset</a> <span class="special">&</span> <a class="link" href="multiset.html#idm45971712513280-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><a class="link" href="multiset.html" title="Class template multiset">multiset</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> - <a class="link" href="multiset.html#idm45971712510464-bb"><span class="special">~</span><span class="identifier">multiset</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="multiset.html#idm37962-bb"><span class="identifier">multiset</span></a><span class="special">(</span><a class="link" href="multiset.html" title="Class template multiset">multiset</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="multiset.html" title="Class template multiset">multiset</a> <span class="special">&</span> <a class="link" href="multiset.html#idm37973-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><a class="link" href="multiset.html" title="Class template multiset">multiset</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="multiset.html#idm37982-bb"><span class="special">~</span><span class="identifier">multiset</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> - <span class="comment">// <a class="link" href="multiset.html#idm45971712973824-bb">public member functions</a></span> - <span class="identifier">iterator</span> <a class="link" href="multiset.html#idm45971712973264-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="multiset.html#idm45971712969424-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="multiset.html#idm45971712965584-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="multiset.html#idm45971712961744-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="multiset.html#idm45971712957904-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="multiset.html#idm45971712954064-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">reverse_iterator</span> <a class="link" href="multiset.html#idm45971712950224-bb"><span class="identifier">rbegin</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="identifier">const_reverse_iterator</span> <a class="link" href="multiset.html#idm45971712946368-bb"><span class="identifier">rbegin</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_reverse_iterator</span> <a class="link" href="multiset.html#idm45971712942512-bb"><span class="identifier">crbegin</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">reverse_iterator</span> <a class="link" href="multiset.html#idm45971712938656-bb"><span class="identifier">rend</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="identifier">const_reverse_iterator</span> <a class="link" href="multiset.html#idm45971712934800-bb"><span class="identifier">rend</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_reverse_iterator</span> <a class="link" href="multiset.html#idm45971712930944-bb"><span class="identifier">crend</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="multiset.html#idm45971712927088-bb"><span class="identifier">root</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="multiset.html#idm45971712923216-bb"><span class="identifier">root</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="multiset.html#idm45971712919344-bb"><span class="identifier">croot</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">key_compare</span> <a class="link" href="multiset.html#idm45971712915472-bb"><span class="identifier">key_comp</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">value_compare</span> <a class="link" href="multiset.html#idm45971712911616-bb"><span class="identifier">value_comp</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="multiset.html#idm45971712907744-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="multiset.html#idm45971712903920-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="multiset.html#idm45971712899984-bb"><span class="identifier">swap</span></a><span class="special">(</span><a class="link" href="multiset.html" title="Class template multiset">multiset</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="comment">// <a class="link" href="multiset.html#idm37140-bb">public member functions</a></span> + <span class="identifier">iterator</span> <a class="link" href="multiset.html#idm37141-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="multiset.html#idm37150-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="multiset.html#idm37159-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="multiset.html#idm37168-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="multiset.html#idm37177-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="multiset.html#idm37186-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">reverse_iterator</span> <a class="link" href="multiset.html#idm37195-bb"><span class="identifier">rbegin</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">const_reverse_iterator</span> <a class="link" href="multiset.html#idm37204-bb"><span class="identifier">rbegin</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_reverse_iterator</span> <a class="link" href="multiset.html#idm37213-bb"><span class="identifier">crbegin</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">reverse_iterator</span> <a class="link" href="multiset.html#idm37222-bb"><span class="identifier">rend</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">const_reverse_iterator</span> <a class="link" href="multiset.html#idm37231-bb"><span class="identifier">rend</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_reverse_iterator</span> <a class="link" href="multiset.html#idm37240-bb"><span class="identifier">crend</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="multiset.html#idm37249-bb"><span class="identifier">root</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="multiset.html#idm37258-bb"><span class="identifier">root</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="multiset.html#idm37267-bb"><span class="identifier">croot</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">key_compare</span> <a class="link" href="multiset.html#idm37276-bb"><span class="identifier">key_comp</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">value_compare</span> <a class="link" href="multiset.html#idm37285-bb"><span class="identifier">value_comp</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="multiset.html#idm37294-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="multiset.html#idm37303-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="multiset.html#idm37312-bb"><span class="identifier">swap</span></a><span class="special">(</span><a class="link" href="multiset.html" title="Class template multiset">multiset</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="multiset.html#idm45971712895440-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="multiset.html" title="Class template multiset">multiset</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="multiset.html#idm37324-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="multiset.html" title="Class template multiset">multiset</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="multiset.html#idm45971712886384-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><a class="link" href="multiset.html" title="Class template multiset">multiset</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="multiset.html#idm45971712876576-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="identifier">reference</span><span class="special">)</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="multiset.html#idm45971712870416-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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="multiset.html#idm45971712863392-bb"><span class="identifier">insert</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">iterator</span> <a class="link" href="multiset.html#idm45971712855552-bb"><span class="identifier">insert_before</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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">void</span> <a class="link" href="multiset.html#idm45971712848320-bb"><span class="identifier">push_back</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">void</span> <a class="link" href="multiset.html#idm45971712841760-bb"><span class="identifier">push_front</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">iterator</span> <a class="link" href="multiset.html#idm45971712835200-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="identifier">iterator</span> <a class="link" href="multiset.html#idm45971712829712-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="multiset.html#idm45971712823472-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">void</span> <a class="link" href="multiset.html#idm37346-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><a class="link" href="multiset.html" title="Class template multiset">multiset</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="multiset.html#idm37370-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="identifier">reference</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="multiset.html#idm37374-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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="multiset.html#idm37380-bb"><span class="identifier">insert</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">iterator</span> <a class="link" href="multiset.html#idm37399-bb"><span class="identifier">insert_before</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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">void</span> <a class="link" href="multiset.html#idm37416-bb"><span class="identifier">push_back</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">void</span> <a class="link" href="multiset.html#idm37431-bb"><span class="identifier">push_front</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">iterator</span> <a class="link" href="multiset.html#idm37446-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="identifier">iterator</span> <a class="link" href="multiset.html#idm37450-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="multiset.html#idm37456-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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">size_type</span> <a class="link" href="multiset.html#idm45971712817424-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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">size_type</span> <a class="link" href="multiset.html#idm37460-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">KeyTypeKeyCompare</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="identifier">iterator</span> <a class="link" href="multiset.html#idm45971712807328-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="identifier">iterator</span> <a class="link" href="multiset.html#idm37484-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="identifier">iterator</span> <a class="link" href="multiset.html#idm45971712799424-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="identifier">iterator</span> <a class="link" href="multiset.html#idm37492-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="multiset.html#idm45971712790768-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="multiset.html#idm37502-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> KeyTypeKeyCompare<span class="special">,</span> <span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="identifier">size_type</span> <a class="link" href="multiset.html#idm45971712782240-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">KeyTypeKeyCompare</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="multiset.html#idm45971712770016-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="multiset.html#idm45971712765152-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="multiset.html#idm45971712758848-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="identifier">size_type</span> <a class="link" href="multiset.html#idm37510-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">KeyTypeKeyCompare</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="multiset.html#idm37539-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="multiset.html#idm37550-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="multiset.html#idm37564-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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">size_type</span> <a class="link" href="multiset.html#idm45971712753776-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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="multiset.html#idm45971712744720-bb"><span class="identifier">lower_bound</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="multiset.html#idm37568-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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="multiset.html#idm37589-bb"><span class="identifier">lower_bound</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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a class="link" href="multiset.html#idm45971712739968-bb"><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> - <span class="identifier">const_iterator</span> <a class="link" href="multiset.html#idm45971712733120-bb"><span class="identifier">lower_bound</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="multiset.html#idm37593-bb"><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">const_iterator</span> <a class="link" href="multiset.html#idm37602-bb"><span class="identifier">lower_bound</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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">const_iterator</span> <a class="link" href="multiset.html#idm45971712728096-bb"><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="multiset.html#idm45971712720976-bb"><span class="identifier">upper_bound</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="multiset.html#idm37606-bb"><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="multiset.html#idm37615-bb"><span class="identifier">upper_bound</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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a class="link" href="multiset.html#idm45971712716224-bb"><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> - <span class="identifier">const_iterator</span> <a class="link" href="multiset.html#idm45971712707520-bb"><span class="identifier">upper_bound</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="multiset.html#idm37619-bb"><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">const_iterator</span> <a class="link" href="multiset.html#idm37640-bb"><span class="identifier">upper_bound</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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">const_iterator</span> <a class="link" href="multiset.html#idm45971712702496-bb"><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="multiset.html#idm45971712693520-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">const_iterator</span> <a class="link" href="multiset.html#idm37644-bb"><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="multiset.html#idm37665-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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a class="link" href="multiset.html#idm45971712688784-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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> - <span class="identifier">const_iterator</span> <a class="link" href="multiset.html#idm45971712680048-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="multiset.html#idm37669-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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">const_iterator</span> <a class="link" href="multiset.html#idm37690-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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">const_iterator</span> <a class="link" href="multiset.html#idm45971712675040-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">KeyTypeKeyCompare</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="multiset.html#idm45971712666032-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="multiset.html#idm37694-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">KeyTypeKeyCompare</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="multiset.html#idm37715-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> KeyTypeKeyCompare<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="multiset.html#idm45971712661200-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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="multiset.html#idm37719-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">KeyTypeKeyCompare</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="multiset.html#idm45971712652368-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="multiset.html#idm37740-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> KeyTypeKeyCompare<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="multiset.html#idm45971712647248-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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <a class="link" href="multiset.html#idm37744-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">KeyTypeKeyCompare</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="multiset.html#idm45971712638128-bb"><span class="identifier">bounded_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="identifier">key_type</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="multiset.html#idm37765-bb"><span class="identifier">bounded_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="identifier">key_type</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</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> KeyTypeKeyCompare<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="multiset.html#idm45971712625696-bb"><span class="identifier">bounded_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="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> + <a class="link" href="multiset.html#idm37775-bb"><span class="identifier">bounded_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="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</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="multiset.html#idm45971712608896-bb"><span class="identifier">bounded_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="identifier">key_type</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <a class="link" href="multiset.html#idm37817-bb"><span class="identifier">bounded_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="identifier">key_type</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</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> KeyTypeKeyCompare<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="multiset.html#idm45971712596176-bb"><span class="identifier">bounded_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="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> + <a class="link" href="multiset.html#idm37827-bb"><span class="identifier">bounded_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="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="multiset.html#idm45971712579088-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="multiset.html#idm45971712573600-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">pointer</span> <a class="link" href="multiset.html#idm45971712568112-bb"><span class="identifier">unlink_leftmost_without_rebalance</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="multiset.html#idm45971712563200-bb"><span class="identifier">replace_node</span></a><span class="special">(</span><span class="identifier">iterator</span><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">void</span> <a class="link" href="multiset.html#idm45971712555936-bb"><span class="identifier">remove_node</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">template</span><span class="special"><</span><span class="keyword">class</span> <span class="special">...</span> Options2<span class="special">></span> <span class="keyword">void</span> <a class="link" href="multiset.html#idm45971712550096-bb"><span class="identifier">merge</span></a><span class="special">(</span><a class="link" href="multiset.html" title="Class template multiset">multiset</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</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">class</span> <span class="special">...</span> Options2<span class="special">></span> <span class="keyword">void</span> <a class="link" href="multiset.html#idm45971712542288-bb"><span class="identifier">merge</span></a><span class="special">(</span><a class="link" href="set.html" title="Class template set">set</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="multiset.html#idm37869-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="multiset.html#idm37873-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">pointer</span> <a class="link" href="multiset.html#idm37877-bb"><span class="identifier">unlink_leftmost_without_rebalance</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="multiset.html#idm37888-bb"><span class="identifier">replace_node</span></a><span class="special">(</span><span class="identifier">iterator</span><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">void</span> <a class="link" href="multiset.html#idm37905-bb"><span class="identifier">remove_node</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">template</span><span class="special"><</span><span class="keyword">class</span> <span class="special">...</span> Options2<span class="special">></span> <span class="keyword">void</span> <a class="link" href="multiset.html#idm37919-bb"><span class="identifier">merge</span></a><span class="special">(</span><a class="link" href="multiset.html" title="Class template multiset">multiset</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</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">class</span> <span class="special">...</span> Options2<span class="special">></span> <span class="keyword">void</span> <a class="link" href="multiset.html#idm37927-bb"><span class="identifier">merge</span></a><span class="special">(</span><a class="link" href="set.html" title="Class template set">set</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> - <span class="comment">// <a class="link" href="multiset.html#idm45971712506560-bb">public static functions</a></span> - <span class="keyword">static</span> <a class="link" href="multiset.html" title="Class template multiset">multiset</a> <span class="special">&</span> <a class="link" href="multiset.html#idm45971712506000-bb"><span class="identifier">container_from_end_iterator</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="multiset.html" title="Class template multiset">multiset</a> <span class="special">&</span> <a class="link" href="multiset.html#idm45971712499984-bb"><span class="identifier">container_from_end_iterator</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">static</span> <a class="link" href="multiset.html" title="Class template multiset">multiset</a> <span class="special">&</span> <a class="link" href="multiset.html#idm45971712493808-bb"><span class="identifier">container_from_iterator</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="multiset.html" title="Class template multiset">multiset</a> <span class="special">&</span> <a class="link" href="multiset.html#idm45971712487840-bb"><span class="identifier">container_from_iterator</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">static</span> <span class="identifier">iterator</span> <a class="link" href="multiset.html#idm45971712481712-bb"><span class="identifier">s_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_iterator</span> <a class="link" href="multiset.html#idm45971712474624-bb"><span class="identifier">s_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="keyword">void</span> <a class="link" href="multiset.html#idm45971712467536-bb"><span class="identifier">init_node</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="comment">// <a class="link" href="multiset.html#idm37991-bb">public static functions</a></span> + <span class="keyword">static</span> <a class="link" href="multiset.html" title="Class template multiset">multiset</a> <span class="special">&</span> <a class="link" href="multiset.html#idm37992-bb"><span class="identifier">container_from_end_iterator</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="multiset.html" title="Class template multiset">multiset</a> <span class="special">&</span> <a class="link" href="multiset.html#idm37997-bb"><span class="identifier">container_from_end_iterator</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">static</span> <a class="link" href="multiset.html" title="Class template multiset">multiset</a> <span class="special">&</span> <a class="link" href="multiset.html#idm38002-bb"><span class="identifier">container_from_iterator</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="multiset.html" title="Class template multiset">multiset</a> <span class="special">&</span> <a class="link" href="multiset.html#idm38007-bb"><span class="identifier">container_from_iterator</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">static</span> <span class="identifier">iterator</span> <a class="link" href="multiset.html#idm38012-bb"><span class="identifier">s_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_iterator</span> <a class="link" href="multiset.html#idm38016-bb"><span class="identifier">s_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="keyword">void</span> <a class="link" href="multiset.html#idm38020-bb"><span class="identifier">init_node</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="comment">// public data members</span> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">bool</span> <span class="identifier">constant_time_size</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.30.5.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.30.5.4"></a><h2>Description</h2> <p>The class template multiset is an intrusive container, that mimics most of the interface of std::multiset as described in the C++ standard.</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> <p>The container supports the following options: <code class="computeroutput">base_hook<>/member_hook<>/value_traits<></code>, <code class="computeroutput">constant_time_size<></code>, <code class="computeroutput">size_type<></code> and <code class="computeroutput">compare<></code>. </p> <div class="refsect2"> -<a name="id-1.3.20.42.30.5.4.5"></a><h3> +<a name="id-1.3.18.42.30.5.4.5"></a><h3> <a name="boost.intrusive.multisetconstruct-copy-destruct"></a><code class="computeroutput">multiset</code> public construct/copy/destruct</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> <li class="listitem"> -<pre class="literallayout"><a name="idm45971712534320-bb"></a><span class="identifier">multiset</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm37935-bb"></a><span class="identifier">multiset</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Constructs an empty container.</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 constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor of the key_compare object throws. Basic guarantee. </p> +<p><span class="bold"><strong>Throws</strong></span>: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor of the key_compare object throws. Basic guarantee. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="keyword">explicit</span> <a name="idm37943-bb"></a><span class="identifier">multiset</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> cmp<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></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="idm37949-bb"></a><span class="identifier">multiset</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="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> cmp <span class="special">=</span> <span class="identifier">key_compare</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></li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">explicit</span> <a name="idm45971712531168-bb"></a><span class="identifier">multiset</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> cmp<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> -<p><span class="bold"><strong>Effects</strong></span>: Constructs an empty container with given comparison and traits.</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 constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor of the key_compare object throws. Basic guarantee. </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> - <a name="idm45971712526048-bb"></a><span class="identifier">multiset</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="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> cmp <span class="special">=</span> <span class="identifier">key_compare</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> -<p><span class="bold"><strong>Requires</strong></span>: Dereferencing iterator must yield an lvalue of type value_type. cmp must be a comparison function that induces a strict weak ordering.</p> -<p><span class="bold"><strong>Effects</strong></span>: Constructs an empty container and inserts elements from [b, e).</p> -<p><span class="bold"><strong>Complexity</strong></span>: Linear in N if [b, e) is already sorted using comp and otherwise N * log N, where N is the distance between first and last.</p> -<p><span class="bold"><strong>Throws</strong></span>: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor/operator() of the key_compare object throws. Basic guarantee. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><a name="idm45971712517584-bb"></a><span class="identifier">multiset</span><span class="special">(</span><a class="link" href="multiset.html" title="Class template multiset">multiset</a> <span class="special">&&</span> x<span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm37962-bb"></a><span class="identifier">multiset</span><span class="special">(</span><a class="link" href="multiset.html" title="Class template multiset">multiset</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 comparison object and value traits are move constructed and nodes belonging to x (except the node representing the "end") 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 the comparison objet throws. </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 the comparison objet throws. </p> </li> <li class="listitem"> -<pre class="literallayout"><a class="link" href="multiset.html" title="Class template multiset">multiset</a> <span class="special">&</span> <a name="idm45971712513280-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><a class="link" href="multiset.html" title="Class template multiset">multiset</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> +<pre class="literallayout"><a class="link" href="multiset.html" title="Class template multiset">multiset</a> <span class="special">&</span> <a name="idm37973-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><a class="link" href="multiset.html" title="Class template multiset">multiset</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="idm45971712510464-bb"></a><span class="special">~</span><span class="identifier">multiset</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm37982-bb"></a><span class="special">~</span><span class="identifier">multiset</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 set are not deleted (i.e. no destructors are called), but the nodes according to the <code class="computeroutput"><a class="link" href="value_traits.html" title="Struct template value_traits">value_traits</a></code> template parameter are reinitialized and thus can be reused.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to elements contained in *this.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> </ol></div> </div> <div class="refsect2"> -<a name="id-1.3.20.42.30.5.4.6"></a><h3> -<a name="idm45971712973824-bb"></a><code class="computeroutput">multiset</code> public member functions</h3> +<a name="id-1.3.18.42.30.5.4.6"></a><h3> +<a name="idm37140-bb"></a><code class="computeroutput">multiset</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="idm45971712973264-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="idm37141-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971712969424-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="idm37150-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971712965584-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="idm37159-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971712961744-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="idm37168-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971712957904-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="idm37177-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971712954064-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="idm37186-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">reverse_iterator</span> <a name="idm45971712950224-bb"></a><span class="identifier">rbegin</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">reverse_iterator</span> <a name="idm37195-bb"></a><span class="identifier">rbegin</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 a reverse_iterator pointing to the beginning of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45971712946368-bb"></a><span class="identifier">rbegin</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_reverse_iterator</span> <a name="idm37204-bb"></a><span class="identifier">rbegin</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_reverse_iterator pointing to the beginning of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45971712942512-bb"></a><span class="identifier">crbegin</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_reverse_iterator</span> <a name="idm37213-bb"></a><span class="identifier">crbegin</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_reverse_iterator pointing to the beginning of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">reverse_iterator</span> <a name="idm45971712938656-bb"></a><span class="identifier">rend</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">reverse_iterator</span> <a name="idm37222-bb"></a><span class="identifier">rend</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 a reverse_iterator pointing to the end of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45971712934800-bb"></a><span class="identifier">rend</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_reverse_iterator</span> <a name="idm37231-bb"></a><span class="identifier">rend</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_reverse_iterator pointing to the end of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45971712930944-bb"></a><span class="identifier">crend</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_reverse_iterator</span> <a name="idm37240-bb"></a><span class="identifier">crend</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_reverse_iterator pointing to the end of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971712927088-bb"></a><span class="identifier">root</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="idm37249-bb"></a><span class="identifier">root</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 a iterator pointing to the root node of the container or end() if not present.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971712923216-bb"></a><span class="identifier">root</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="idm37258-bb"></a><span class="identifier">root</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 root node of the container or cend() if not present.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971712919344-bb"></a><span class="identifier">croot</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="idm37267-bb"></a><span class="identifier">croot</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 root node of the container or cend() if not present.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">key_compare</span> <a name="idm45971712915472-bb"></a><span class="identifier">key_comp</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_compare</span> <a name="idm37276-bb"></a><span class="identifier">key_comp</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_compare object used by the container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: If key_compare copy-constructor throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If key_compare copy-constructor throws. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">value_compare</span> <a name="idm45971712911616-bb"></a><span class="identifier">value_comp</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">value_compare</span> <a name="idm37285-bb"></a><span class="identifier">value_comp</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 value_compare object used by the container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: If value_compare copy-constructor throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If value_compare copy-constructor throws. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">bool</span> <a name="idm45971712907744-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="idm37294-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>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971712903920-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="idm37303-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to elements contained in *this if constant-time size option is disabled. Constant time otherwise.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971712899984-bb"></a><span class="identifier">swap</span><span class="special">(</span><a class="link" href="multiset.html" title="Class template multiset">multiset</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="idm37312-bb"></a><span class="identifier">swap</span><span class="special">(</span><a class="link" href="multiset.html" title="Class template multiset">multiset</a> <span class="special">&</span> other<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Swaps the contents of two containers.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comparison functor's swap call throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If the comparison functor's swap call throws. </p> </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="idm45971712895440-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="multiset.html" title="Class template multiset">multiset</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="idm37324-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="multiset.html" title="Class template multiset">multiset</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 equivalent to the original nodes.</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. Copies the predicate from the source container.</p> <p>If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to erased plus inserted elements.</p> -<p><span class="bold"><strong>Throws</strong></span>: If cloner throws or predicate copy assignment throws. Basic guarantee. </p> +<p><span class="bold"><strong>Throws</strong></span>: If cloner throws or predicate copy assignment throws. Basic guarantee. </p> </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="idm45971712886384-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><a class="link" href="multiset.html" title="Class template multiset">multiset</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="idm37346-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><a class="link" href="multiset.html" title="Class template multiset">multiset</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 equivalent to the original nodes.</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. Copies the predicate from the source container.</p> <p>If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to erased plus inserted elements.</p> <p><span class="bold"><strong>Throws</strong></span>: If cloner throws or predicate copy assignment throws. Basic guarantee.</p> -<p><span class="bold"><strong>Note</strong></span>: This version can modify the source container, useful to implement move semantics. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971712876576-bb"></a><span class="identifier">insert</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 value into the container before the upper bound.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Average complexity for insert element is at most logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the internal key_compare ordering function throws. Strong guarantee.</p> -<p><span class="bold"><strong>Note</strong></span>: Does not affect the validity of iterators and references. No copy-constructors are called. </p> +<p><span class="bold"><strong>Note</strong></span>: This version can modify the source container, useful to implement move semantics. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm37370-bb"></a><span class="identifier">insert</span><span class="special">(</span><span class="identifier">reference</span> value<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm37374-bb"></a><span class="identifier">insert</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<span class="special">,</span> <span class="identifier">reference</span> value<span class="special">)</span><span class="special">;</span></pre></li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971712870416-bb"></a><span class="identifier">insert</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<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, and "hint" must be a valid iterator.</p> -<p><span class="bold"><strong>Effects</strong></span>: Inserts x into the container, using "hint" as a hint to where it will be inserted. If "hint" is the upper_bound the insertion takes constant time (two comparisons in the worst case)</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic in general, but it is amortized constant time if t is inserted immediately before hint.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the internal key_compare ordering function throws. Strong guarantee.</p> -<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="idm45971712863392-bb"></a><span class="identifier">insert</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="idm37380-bb"></a><span class="identifier">insert</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>: Inserts a each element of a range into the container before the upper bound of the key of each element.</p> <p><span class="bold"><strong>Complexity</strong></span>: Insert range is in general O(N * log(N)), where N is the size of the range. However, it is linear in N if the range is already sorted by value_comp().</p> <p><span class="bold"><strong>Throws</strong></span>: If the comparison functor call throws.</p> -<p><span class="bold"><strong>Note</strong></span>: Does not affect the validity of iterators and references. No copy-constructors are called. </p> +<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">iterator</span> <a name="idm45971712855552-bb"></a><span class="identifier">insert_before</span><span class="special">(</span><span class="identifier">const_iterator</span> pos<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="idm37399-bb"></a><span class="identifier">insert_before</span><span class="special">(</span><span class="identifier">const_iterator</span> pos<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, "pos" must be a valid iterator (or end) and must be the succesor of value once inserted according to the predicate</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts x into the container before "pos".</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if "pos" is not the successor of "value" container ordering invariant will be broken. This is a low-level function to be used only for performance reasons by advanced users. </p> +<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if "pos" is not the successor of "value" container ordering invariant will be broken. This is a low-level function to be used only for performance reasons by advanced users. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971712848320-bb"></a><span class="identifier">push_back</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">void</span> <a name="idm37416-bb"></a><span class="identifier">push_back</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 it must be no less than the greatest inserted key</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts x into the container in the last position.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if value is less than the greatest inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users. </p> +<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if value is less than the greatest inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971712841760-bb"></a><span class="identifier">push_front</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">void</span> <a name="idm37431-bb"></a><span class="identifier">push_front</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 it must be no greater than the minimum inserted key</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts x into the container in the first position.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if value is greater than the minimum inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971712835200-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 complexity for erase element is constant time.</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">iterator</span> <a name="idm45971712829712-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 complexity for erase range is at most O(log(size() + N)), where N is the number of elements in the range.</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="idm45971712823472-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>: O(log(size() + N).</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> +<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if value is greater than the minimum inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm37446-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm37450-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">size_type</span> <a name="idm37456-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></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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971712817424-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <span class="identifier">size_type</span> <a name="idm37460-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Erases all the elements with the given key. according to the comparison functor "comp".</p> <p><span class="bold"><strong>Returns</strong></span>: The number of erased elements.</p> <p><span class="bold"><strong>Complexity</strong></span>: O(log(size() + N).</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="identifier">iterator</span> <a name="idm45971712807328-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 complexity for erase element is constant time.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<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">template</span><span class="special"><</span><span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="identifier">iterator</span> <a name="idm45971712799424-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> -<p><span class="bold"><strong>Complexity</strong></span>: Average complexity for erase range is at most O(log(size() + N)), where N is the number of elements in the range.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<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">template</span><span class="special"><</span><span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971712790768-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> -<p><span class="bold"><strong>Complexity</strong></span>: O(log(size() + N).</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> +<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="identifier">iterator</span> <a name="idm37484-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></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">iterator</span> <a name="idm37492-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></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="idm37502-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></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> KeyTypeKeyCompare<span class="special">,</span> <span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971712782240-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">KeyTypeKeyCompare</span> comp<span class="special">,</span> + <span class="identifier">size_type</span> <a name="idm37510-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">KeyTypeKeyCompare</span> comp<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>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk) and nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Requires</strong></span>: Disposer::operator()(pointer) shouldn't throw.</p> @@ -491,168 +426,102 @@ <p><span class="bold"><strong>Returns</strong></span>: The number of erased elements.</p> <p><span class="bold"><strong>Complexity</strong></span>: O(log(size() + N).</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: Invalidates the iterators to the erased elements. </p> +<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="idm45971712770016-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="idm37539-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> +<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="idm45971712765152-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="idm37550-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>Effects</strong></span>: Erases all of the elements calling disposer(p) for each node to be erased. <span class="bold"><strong>Complexity</strong></span>: Average complexity for is at most O(log(size() + N)), where N is the number of elements in the container.</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. Calls N times to disposer functor. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">size_type</span> <a name="idm45971712758848-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>: Logarithmic to the number of elements contained plus lineal to number of objects with the given value.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Note</strong></span>: Invalidates the iterators (but not the references) to the erased elements. Calls N times to disposer functor. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">size_type</span> <a name="idm37564-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></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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971712753776-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> + <span class="identifier">size_type</span> <a name="idm37568-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns the number of contained elements with the given key</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic to the number of elements contained plus lineal to number of objects with the given key.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> </li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971712744720-bb"></a><span class="identifier">lower_bound</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 an iterator to the first element whose key is not less than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> 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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a name="idm45971712739968-bb"></a><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Effects</strong></span>: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971712733120-bb"></a><span class="identifier">lower_bound</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 an iterator to the first element whose key is not less than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> 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> KeyTypeKeyCompare<span class="special">></span> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm37589-bb"></a><span class="identifier">lower_bound</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></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> KeyTypeKeyCompare<span class="special">></span> + <span class="identifier">iterator</span> <a name="idm37593-bb"></a><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm37602-bb"></a><span class="identifier">lower_bound</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></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> KeyTypeKeyCompare<span class="special">></span> <span class="identifier">const_iterator</span> - <a name="idm45971712728096-bb"></a><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Effects</strong></span>: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971712720976-bb"></a><span class="identifier">upper_bound</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 an iterator to the first element whose key is greater than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> -</li> + <a name="idm37606-bb"></a><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm37615-bb"></a><span class="identifier">upper_bound</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></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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a name="idm45971712716224-bb"></a><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <span class="identifier">iterator</span> <a name="idm37619-bb"></a><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns an iterator to the first element whose key is greater than k according to comp or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971712707520-bb"></a><span class="identifier">upper_bound</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 an iterator to the first element whose key is greater than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm37640-bb"></a><span class="identifier">upper_bound</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></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> KeyTypeKeyCompare<span class="special">></span> <span class="identifier">const_iterator</span> - <a name="idm45971712702496-bb"></a><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> + <a name="idm37644-bb"></a><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns an iterator to the first element whose key is greater than k according to comp or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971712693520-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 whose key is k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm37665-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></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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a name="idm45971712688784-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <span class="identifier">iterator</span> <a name="idm37669-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Finds an iterator to the first element whose key is k or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971712680048-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 an iterator to the first element whose key is k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm37690-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></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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">const_iterator</span> <a name="idm45971712675040-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> + <span class="identifier">const_iterator</span> <a name="idm37694-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Finds an iterator to the first element whose key is k or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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="idm45971712666032-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>: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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="idm37715-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></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> KeyTypeKeyCompare<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="idm45971712661200-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <a name="idm37719-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">></span> -<a name="idm45971712652368-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>: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">></span> +<a name="idm37740-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></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> KeyTypeKeyCompare<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="idm45971712647248-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> + <a name="idm37744-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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="idm45971712638128-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> upper_key<span class="special">,</span> - <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: <code class="computeroutput">upper_key</code> shall not precede <code class="computeroutput">lower_key</code> according to key_compare. [key_comp()(upper_key, lower_key) shall be false]</p> -<p>If <code class="computeroutput">lower_key</code> is equivalent to <code class="computeroutput">upper_key</code> [!key_comp()(upper_key, lower_key) && !key_comp()(lower_key, upper_key)] then ('left_closed' || 'right_closed') must be false.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns an a pair with the following criteria:</p> -<p>first = lower_bound(lower_key) if left_closed, upper_bound(lower_key) otherwise</p> -<p>second = upper_bound(upper_key) if right_closed, lower_bound(upper_key) otherwise</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws.</p> -<p><span class="bold"><strong>Note</strong></span>: This function can be more efficient than calling upper_bound and lower_bound for lower_value and upper_value.</p> -<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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="idm37765-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> upper_key<span class="special">,</span> + <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span><span class="special">;</span></pre></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> KeyTypeKeyCompare<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="idm45971712625696-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> + <a name="idm37775-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span> comp<span class="special">,</span> <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: <code class="computeroutput">lower_key</code> is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, lower_key) if left_closed is true, with respect to !comp(lower_key, nk) otherwise.</p> <p><code class="computeroutput">upper_key</code> is a value such that <code class="computeroutput">*this</code> is partitioned with respect to !comp(upper_key, nk) if right_closed is true, with respect to comp(nk, upper_key) otherwise.</p> @@ -664,26 +533,15 @@ <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> <p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws.</p> <p><span class="bold"><strong>Note</strong></span>: This function can be more efficient than calling upper_bound and lower_bound for lower_key and upper_key.</p> -<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </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">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">></span> -<a name="idm45971712608896-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> upper_key<span class="special">,</span> - <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: <code class="computeroutput">upper_key</code> shall not precede <code class="computeroutput">lower_key</code> according to key_compare. [key_comp()(upper_key, lower_key) shall be false]</p> -<p>If <code class="computeroutput">lower_key</code> is equivalent to <code class="computeroutput">upper_key</code> [!key_comp()(upper_key, lower_key) && !key_comp()(lower_key, upper_key)] then ('left_closed' || 'right_closed') must be false.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns an a pair with the following criteria:</p> -<p>first = lower_bound(lower_key) if left_closed, upper_bound(lower_key) otherwise</p> -<p>second = upper_bound(upper_key) if right_closed, lower_bound(upper_key) otherwise</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws.</p> -<p><span class="bold"><strong>Note</strong></span>: This function can be more efficient than calling upper_bound and lower_bound for lower_value and upper_value.</p> -<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </p> +<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </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">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">></span> +<a name="idm37817-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> upper_key<span class="special">,</span> + <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></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> KeyTypeKeyCompare<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="idm45971712596176-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> + <a name="idm37827-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span> comp<span class="special">,</span> <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: <code class="computeroutput">lower_key</code> is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, lower_key) if left_closed is true, with respect to !comp(lower_key, nk) otherwise.</p> <p><code class="computeroutput">upper_key</code> is a value such that <code class="computeroutput">*this</code> is partitioned with respect to !comp(upper_key, nk) if right_closed is true, with respect to comp(nk, upper_key) otherwise.</p> @@ -695,132 +553,58 @@ <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> <p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws.</p> <p><span class="bold"><strong>Note</strong></span>: This function can be more efficient than calling upper_bound and lower_bound for lower_key and upper_key.</p> -<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </p> +<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm37869-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm37873-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></li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971712579088-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 set of appropriate type. Otherwise the behavior is undefined.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns: a valid iterator i belonging to the set 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_iterator</span> <a name="idm45971712573600-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 set of appropriate type. Otherwise the behavior is undefined.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns: a valid const_iterator i belonging to the set 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">pointer</span> <a name="idm45971712568112-bb"></a><span class="identifier">unlink_leftmost_without_rebalance</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">pointer</span> <a name="idm37877-bb"></a><span class="identifier">unlink_leftmost_without_rebalance</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>: Unlinks the leftmost node from the container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Average complexity is constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Notes</strong></span>: This function breaks the container and the container can only be used for more unlink_leftmost_without_rebalance calls. This function is normally used to achieve a step by step controlled destruction of the container. </p> +<p><span class="bold"><strong>Notes</strong></span>: This function breaks the container and the container can only be used for more unlink_leftmost_without_rebalance calls. This function is normally used to achieve a step by step controlled destruction of the container. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971712563200-bb"></a><span class="identifier">replace_node</span><span class="special">(</span><span class="identifier">iterator</span> replace_this<span class="special">,</span> <span class="identifier">reference</span> with_this<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">void</span> <a name="idm37888-bb"></a><span class="identifier">replace_node</span><span class="special">(</span><span class="identifier">iterator</span> replace_this<span class="special">,</span> <span class="identifier">reference</span> with_this<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: replace_this must be a valid iterator of *this and with_this must not be inserted in any container.</p> <p><span class="bold"><strong>Effects</strong></span>: Replaces replace_this in its position in the container with with_this. The container does not need to be rebalanced.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: This function will break container ordering invariants if with_this is not equivalent to *replace_this according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing or comparison is needed. </p> +<p><span class="bold"><strong>Note</strong></span>: This function will break container ordering invariants if with_this is not equivalent to *replace_this according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing or comparison is needed. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971712555936-bb"></a><span class="identifier">remove_node</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">void</span> <a name="idm37905-bb"></a><span class="identifier">remove_node</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>Effects</strong></span>: removes "value" from the container.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic time.</p> <p><span class="bold"><strong>Note</strong></span>: This static function is only usable with non-constant time size containers that have stateless comparison functors.</p> -<p>If the user calls this function with a constant time size container or stateful comparison functor a compilation error will be issued. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="special">...</span> Options2<span class="special">></span> <span class="keyword">void</span> <a name="idm45971712550096-bb"></a><span class="identifier">merge</span><span class="special">(</span><a class="link" href="multiset.html" title="Class template multiset">multiset</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span> source<span class="special">)</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: "source" container's Options can only can differ in the comparison function from *this.</p> -<p><span class="bold"><strong>Effects</strong></span>: Extracts each element in source and insert it into a using the comparison object of *this.</p> -<p><span class="bold"><strong>Postcondition</strong></span>: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing unless the comparison object throws.</p> -<p><span class="bold"><strong>Complexity</strong></span>: N log(a.size() + N) (N has the value source.size()) </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="special">...</span> Options2<span class="special">></span> <span class="keyword">void</span> <a name="idm45971712542288-bb"></a><span class="identifier">merge</span><span class="special">(</span><a class="link" href="set.html" title="Class template set">set</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span> source<span class="special">)</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: "source" container's Options can only can differ in the comparison function from *this.</p> -<p><span class="bold"><strong>Effects</strong></span>: Extracts each element in source and insert it into a using the comparison object of *this.</p> -<p><span class="bold"><strong>Postcondition</strong></span>: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing unless the comparison object throws.</p> -<p><span class="bold"><strong>Complexity</strong></span>: N log(a.size() + N) (N has the value source.size()) </p> +<p>If the user calls this function with a constant time size container or stateful comparison functor a compilation error will be issued. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="special">...</span> Options2<span class="special">></span> <span class="keyword">void</span> <a name="idm37919-bb"></a><span class="identifier">merge</span><span class="special">(</span><a class="link" href="multiset.html" title="Class template multiset">multiset</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span> source<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="special">...</span> Options2<span class="special">></span> <span class="keyword">void</span> <a name="idm37927-bb"></a><span class="identifier">merge</span><span class="special">(</span><a class="link" href="set.html" title="Class template set">set</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span> source<span class="special">)</span><span class="special">;</span></pre></li> </ol></div> </div> <div class="refsect2"> -<a name="id-1.3.20.42.30.5.4.7"></a><h3> -<a name="idm45971712506560-bb"></a><code class="computeroutput">multiset</code> public static functions</h3> +<a name="id-1.3.18.42.30.5.4.7"></a><h3> +<a name="idm37991-bb"></a><code class="computeroutput">multiset</code> public static functions</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <a class="link" href="multiset.html" title="Class template multiset">multiset</a> <span class="special">&</span> <a name="idm45971712506000-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Precondition</strong></span>: end_iterator must be a valid end iterator of the container.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the container associated to the end iterator</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Constant. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="multiset.html" title="Class template multiset">multiset</a> <span class="special">&</span> -<a name="idm45971712499984-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">const_iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Precondition</strong></span>: end_iterator must be a valid end iterator of the container.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the container associated to the end iterator</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Constant. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <a class="link" href="multiset.html" title="Class template multiset">multiset</a> <span class="special">&</span> <a name="idm45971712493808-bb"></a><span class="identifier">container_from_iterator</span><span class="special">(</span><span class="identifier">iterator</span> it<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Precondition</strong></span>: it must be a valid iterator of the container.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the container associated to the iterator</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="multiset.html" title="Class template multiset">multiset</a> <span class="special">&</span> <a name="idm45971712487840-bb"></a><span class="identifier">container_from_iterator</span><span class="special">(</span><span class="identifier">const_iterator</span> it<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Precondition</strong></span>: it must be a valid iterator of the container.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the container associated to the iterator</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="identifier">iterator</span> <a name="idm45971712481712-bb"></a><span class="identifier">s_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 set of appropriate type. Otherwise the behavior is undefined.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns: a valid iterator i belonging to the set 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> -<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">const_iterator</span> <a name="idm45971712474624-bb"></a><span class="identifier">s_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 set of appropriate type. Otherwise the behavior is undefined.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns: a valid iterator i belonging to the set 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> -<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="keyword">void</span> <a name="idm45971712467536-bb"></a><span class="identifier">init_node</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 shall not be in a container.</p> -<p><span class="bold"><strong>Effects</strong></span>: init_node puts the hook of a value in a well-known default state.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> -<p><span class="bold"><strong>Note</strong></span>: This function puts the hook in the well-known default state used by auto_unlink and safe hooks. </p> -</li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <a class="link" href="multiset.html" title="Class template multiset">multiset</a> <span class="special">&</span> <a name="idm37992-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="multiset.html" title="Class template multiset">multiset</a> <span class="special">&</span> +<a name="idm37997-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">const_iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <a class="link" href="multiset.html" title="Class template multiset">multiset</a> <span class="special">&</span> <a name="idm38002-bb"></a><span class="identifier">container_from_iterator</span><span class="special">(</span><span class="identifier">iterator</span> it<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="multiset.html" title="Class template multiset">multiset</a> <span class="special">&</span> <a name="idm38007-bb"></a><span class="identifier">container_from_iterator</span><span class="special">(</span><span class="identifier">const_iterator</span> it<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">iterator</span> <a name="idm38012-bb"></a><span class="identifier">s_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></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">const_iterator</span> <a name="idm38016-bb"></a><span class="identifier">s_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></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm38020-bb"></a><span class="identifier">init_node</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></li> </ol></div> </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="make_set.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.set_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="set.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/node_cast_adaptor.html b/doc/html/boost/intrusive/node_cast_adaptor.html new file mode 100644 index 0000000000..20c9c99765 --- /dev/null +++ b/doc/html/boost/intrusive/node_cast_adaptor.html @@ -0,0 +1,81 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>Struct template node_cast_adaptor</title> +<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css"> +<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="make_hashtable.html" title="Struct template make_hashtable"> +<link rel="next" href="node_functions.html" title="Struct template node_functions"> +<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> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td> +<td align="center"><a href="../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="make_hashtable.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="node_functions.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.intrusive.node_cast_adaptor"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Struct template node_cast_adaptor</span></h2> +<p>boost::intrusive::node_cast_adaptor</p> +</div> +<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> F<span class="special">,</span> <span class="keyword">typename</span> SlistNodePtr<span class="special">,</span> <span class="keyword">typename</span> NodePtr<span class="special">></span> +<span class="keyword">struct</span> <a class="link" href="node_cast_adaptor.html" title="Struct template node_cast_adaptor">node_cast_adaptor</a> <span class="special">{</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span> <a name="boost.intrusive.node_cast_adaptor.base_t"></a><span class="identifier">base_t</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">SlistNodePtr</span> <span class="special">></span><span class="special">::</span><span class="identifier">element_type</span> <a name="boost.intrusive.node_cast_adaptor.slist_node"></a><span class="identifier">slist_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">NodePtr</span> <span class="special">></span><span class="special">::</span><span class="identifier">element_type</span> <a name="boost.intrusive.node_cast_adaptor.node"></a><span class="identifier">node</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="node_cast_adaptor.html#boost.intrusive.node_cast_adaptorconstruct-copy-destruct">construct/copy/destruct</a></span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> ConvertibleToF<span class="special">,</span> <span class="keyword">typename</span> RealValuTraits<span class="special">></span> + <a class="link" href="node_cast_adaptor.html#idm32626-bb"><span class="identifier">node_cast_adaptor</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ConvertibleToF</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">RealValuTraits</span> <span class="special">*</span><span class="special">)</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="node_cast_adaptor.html#idm32617-bb">public member functions</a></span> + <span class="identifier">base_t</span><span class="special">::</span><span class="identifier">node_ptr</span> <a class="link" href="node_cast_adaptor.html#idm32618-bb"><span class="keyword">operator</span><span class="special">(</span><span class="special">)</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">slist_node</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="node_cast_adaptor.html#idm32622-bb"><span class="keyword">operator</span><span class="special">(</span><span class="special">)</span></a><span class="special">(</span><span class="identifier">SlistNodePtr</span><span class="special">)</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="id-1.3.18.42.14.35.4"></a><h2>Description</h2> +<div class="refsect2"> +<a name="id-1.3.18.42.14.35.4.2"></a><h3> +<a name="boost.intrusive.node_cast_adaptorconstruct-copy-destruct"></a><code class="computeroutput">node_cast_adaptor</code> + public + construct/copy/destruct</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> ConvertibleToF<span class="special">,</span> <span class="keyword">typename</span> RealValuTraits<span class="special">></span> + <a name="idm32626-bb"></a><span class="identifier">node_cast_adaptor</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ConvertibleToF</span> <span class="special">&</span> c2f<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">RealValuTraits</span> <span class="special">*</span> traits<span class="special">)</span><span class="special">;</span></pre></li></ol></div> +</div> +<div class="refsect2"> +<a name="id-1.3.18.42.14.35.4.3"></a><h3> +<a name="idm32617-bb"></a><code class="computeroutput">node_cast_adaptor</code> public member functions</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"><pre class="literallayout"><span class="identifier">base_t</span><span class="special">::</span><span class="identifier">node_ptr</span> <a name="idm32618-bb"></a><span class="keyword">operator</span><span class="special">(</span><span class="special">)</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">slist_node</span> <span class="special">&</span> to_clone<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">void</span> <a name="idm32622-bb"></a><span class="keyword">operator</span><span class="special">(</span><span class="special">)</span><span class="special">(</span><span class="identifier">SlistNodePtr</span> to_clone<span class="special">)</span><span class="special">;</span></pre></li> +</ol></div> +</div> +</div> +</div> +<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> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="make_hashtable.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="node_functions.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/doc/html/boost/intrusive/node_functions.html b/doc/html/boost/intrusive/node_functions.html new file mode 100644 index 0000000000..5faadcebb5 --- /dev/null +++ b/doc/html/boost/intrusive/node_functions.html @@ -0,0 +1,69 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>Struct template node_functions</title> +<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css"> +<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="node_cast_adaptor.html" title="Struct template node_cast_adaptor"> +<link rel="next" href="optimize_multikey_is_true.html" title="Struct template optimize_multikey_is_true"> +<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> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td> +<td align="center"><a href="../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="node_cast_adaptor.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="optimize_multikey_is_true.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.intrusive.node_functions"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Struct template node_functions</span></h2> +<p>boost::intrusive::node_functions</p> +</div> +<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> NodeTraits<span class="special">></span> +<span class="keyword">struct</span> <a class="link" href="node_functions.html" title="Struct template node_functions">node_functions</a> <span class="special">{</span> + + <span class="comment">// <a class="link" href="node_functions.html#idm32637-bb">public static functions</a></span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="../interprocess/named_upgradable_mutex.html#idm32638-bb"><span class="identifier">store_hash</span></a><span class="special">(</span><span class="keyword">typename</span> <span class="identifier">NodeTraits</span><span class="special">::</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">,</span> + <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="node_functions.html#idm32647-bb"><span class="identifier">store_hash</span></a><span class="special">(</span><span class="keyword">typename</span> <span class="identifier">NodeTraits</span><span class="special">::</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">,</span> + <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="id-1.3.18.42.14.36.4"></a><h2>Description</h2> +<div class="refsect2"> +<a name="id-1.3.18.42.14.36.4.2"></a><h3> +<a name="idm32637-bb"></a><code class="computeroutput">node_functions</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="keyword">void</span> <a name="idm32638-bb"></a><span class="identifier">store_hash</span><span class="special">(</span><span class="keyword">typename</span> <span class="identifier">NodeTraits</span><span class="special">::</span><span class="identifier">node_ptr</span> p<span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> h<span class="special">,</span> + <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm32647-bb"></a><span class="identifier">store_hash</span><span class="special">(</span><span class="keyword">typename</span> <span class="identifier">NodeTraits</span><span class="special">::</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">,</span> + <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span></pre></li> +</ol></div> +</div> +</div> +</div> +<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> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="node_cast_adaptor.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="optimize_multikey_is_true.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/doc/html/boost/intrusive/optimize_multikey.html b/doc/html/boost/intrusive/optimize_multikey.html index 454a60200a..2dc746697e 100644 --- a/doc/html/boost/intrusive/optimize_multikey.html +++ b/doc/html/boost/intrusive/optimize_multikey.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.options_hpp" title="Header <boost/intrusive/options.hpp>"> <link rel="prev" href="member_hook.html" title="Struct template member_hook"> <link rel="next" href="optimize_size.html" title="Struct template optimize_size"> +<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> @@ -29,25 +30,22 @@ <h2><span class="refentrytitle">Struct template optimize_multikey</span></h2> <p>boost::intrusive::optimize_multikey</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.options_hpp" title="Header <boost/intrusive/options.hpp>">boost/intrusive/options.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.options_hpp" title="Header <boost/intrusive/options.hpp>">boost/intrusive/options.hpp</a>> </span><span class="keyword">template</span><span class="special"><</span><span class="keyword">bool</span> Enabled<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="optimize_multikey.html" title="Struct template optimize_multikey">optimize_multikey</a> <span class="special">{</span> <span class="special">}</span><span class="special">;</span></pre></div> <div class="refsect1"> -<a name="id-1.3.20.42.21.20.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.21.22.4"></a><h2>Description</h2> <p>This option setter specifies if the unordered hook should offer room to store another link to another node with the same key. Storing this link will speed up lookups and insertions on <a class="link" href="unordered_multiset.html" title="Class template unordered_multiset">unordered_multiset</a> containers with a great number of elements with the same key. </p> </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="member_hook.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.options_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="optimize_size.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/optimize_multikey_is_true.html b/doc/html/boost/intrusive/optimize_multikey_is_true.html new file mode 100644 index 0000000000..584d29fbda --- /dev/null +++ b/doc/html/boost/intrusive/optimize_multikey_is_true.html @@ -0,0 +1,75 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>Struct template optimize_multikey_is_true</title> +<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css"> +<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="node_functions.html" title="Struct template node_functions"> +<link rel="next" href="optimize_multikey_is_true/two_or_three.html" title="Struct template two_or_three"> +<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> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td> +<td align="center"><a href="../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="node_functions.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="optimize_multikey_is_true/two_or_three.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.intrusive.optimize_multikey_is_true"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Struct template optimize_multikey_is_true</span></h2> +<p>boost::intrusive::optimize_multikey_is_true</p> +</div> +<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">struct</span> <a class="link" href="optimize_multikey_is_true.html" title="Struct template optimize_multikey_is_true">optimize_multikey_is_true</a> <span class="special">{</span> + <span class="comment">// member classes/structs/unions</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">bool</span> Add<span class="special">></span> + <span class="keyword">struct</span> <a class="link" href="optimize_multikey_is_true/two_or_three.html" title="Struct template two_or_three">two_or_three</a> <span class="special">{</span> + + <span class="comment">// public data members</span> + <span class="emphasis"><em><span class="identifier">unspecified</span></em></span> <span class="identifier">_</span><span class="special">;</span> + <span class="special">}</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="optimize_multikey_is_true.html#idm32668-bb">public static functions</a></span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> U<span class="special">></span> <span class="keyword">static</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span> <a class="link" href="optimize_multikey_is_true.html#idm32669-bb"><span class="identifier">test</span></a><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> U<span class="special">></span> <span class="keyword">static</span> <span class="identifier">two_or_three</span><span class="special"><</span> <span class="identifier">U</span><span class="special">::</span><span class="identifier">optimize_multikey</span> <span class="special">></span> <a class="link" href="optimize_multikey_is_true.html#idm32676-bb"><span class="identifier">test</span></a><span class="special">(</span><span class="keyword">int</span><span class="special">)</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">value</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="id-1.3.18.42.14.37.4"></a><h2>Description</h2> +<div class="refsect2"> +<a name="id-1.3.18.42.14.37.4.2"></a><h3> +<a name="idm32668-bb"></a><code class="computeroutput">optimize_multikey_is_true</code> public static functions</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> U<span class="special">></span> <span class="keyword">static</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span> <a name="idm32669-bb"></a><span class="identifier">test</span><span class="special">(</span><span class="special">...</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> U<span class="special">></span> <span class="keyword">static</span> <span class="identifier">two_or_three</span><span class="special"><</span> <span class="identifier">U</span><span class="special">::</span><span class="identifier">optimize_multikey</span> <span class="special">></span> <a name="idm32676-bb"></a><span class="identifier">test</span><span class="special">(</span><span class="keyword">int</span><span class="special">)</span><span class="special">;</span></pre></li> +</ol></div> +</div> +</div> +</div> +<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> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="node_functions.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="optimize_multikey_is_true/two_or_three.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/doc/html/boost/intrusive/optimize_multikey_is_true/two_or_three.html b/doc/html/boost/intrusive/optimize_multikey_is_true/two_or_three.html new file mode 100644 index 0000000000..47e53dc2ac --- /dev/null +++ b/doc/html/boost/intrusive/optimize_multikey_is_true/two_or_three.html @@ -0,0 +1,54 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>Struct template two_or_three</title> +<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css"> +<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="../optimize_multikey_is_true.html#id-1.3.18.42.14.37.4" title="Description"> +<link rel="prev" href="../optimize_multikey_is_true.html" title="Struct template optimize_multikey_is_true"> +<link rel="next" href="../store_hash_is_true.html" title="Struct template store_hash_is_true"> +<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> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td> +<td align="center"><a href="../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../optimize_multikey_is_true.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../optimize_multikey_is_true.html#id-1.3.18.42.14.37.4"><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="../store_hash_is_true.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.intrusive.optimize_multikey_is_true.two_or_three"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Struct template two_or_three</span></h2> +<p>boost::intrusive::optimize_multikey_is_true::two_or_three</p> +</div> +<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">bool</span> Add<span class="special">></span> +<span class="keyword">struct</span> <a class="link" href="two_or_three.html" title="Struct template two_or_three">two_or_three</a> <span class="special">{</span> + + <span class="comment">// public data members</span> + <span class="emphasis"><em><span class="identifier">unspecified</span></em></span> <span class="identifier">_</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +</div> +<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> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../optimize_multikey_is_true.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../optimize_multikey_is_true.html#id-1.3.18.42.14.37.4"><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="../store_hash_is_true.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/doc/html/boost/intrusive/optimize_size.html b/doc/html/boost/intrusive/optimize_size.html index 2173d8681c..2e1393926b 100644 --- a/doc/html/boost/intrusive/optimize_size.html +++ b/doc/html/boost/intrusive/optimize_size.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.options_hpp" title="Header <boost/intrusive/options.hpp>"> <link rel="prev" href="optimize_multikey.html" title="Struct template optimize_multikey"> <link rel="next" href="power_2_buckets.html" title="Struct template power_2_buckets"> +<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> @@ -29,25 +30,22 @@ <h2><span class="refentrytitle">Struct template optimize_size</span></h2> <p>boost::intrusive::optimize_size</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.options_hpp" title="Header <boost/intrusive/options.hpp>">boost/intrusive/options.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.options_hpp" title="Header <boost/intrusive/options.hpp>">boost/intrusive/options.hpp</a>> </span><span class="keyword">template</span><span class="special"><</span><span class="keyword">bool</span> Enabled<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="optimize_size.html" title="Struct template optimize_size">optimize_size</a> <span class="special">{</span> <span class="special">}</span><span class="special">;</span></pre></div> <div class="refsect1"> -<a name="id-1.3.20.42.21.21.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.21.23.4"></a><h2>Description</h2> <p>This option setter specifies if the hook should be optimized for size instead of for speed. </p> </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="optimize_multikey.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.options_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="power_2_buckets.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/pack_options.html b/doc/html/boost/intrusive/pack_options.html index da7637401f..71aff0b0cf 100644 --- a/doc/html/boost/intrusive/pack_options.html +++ b/doc/html/boost/intrusive/pack_options.html @@ -8,7 +8,8 @@ <link rel="home" href="../../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset"> <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.pack_options_hpp" title="Header <boost/intrusive/pack_options.hpp>"> <link rel="prev" href="void_pointer.html" title="Struct template void_pointer"> -<link rel="next" href="../../BOOST_IN_idm45971714142672.html" title="Macro BOOST_INTRUSIVE_OPTION_TYPE"> +<link rel="next" href="../../BOOST_INTRUSIVE_O_idm34861.html" title="Macro BOOST_INTRUSIVE_OPTION_TYPE"> +<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="void_pointer.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.pack_options_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="../../BOOST_IN_idm45971714142672.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +<a accesskey="p" href="void_pointer.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.pack_options_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="../../BOOST_INTRUSIVE_O_idm34861.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> </div> <div class="refentry"> <a name="boost.intrusive.pack_options"></a><div class="titlepage"></div> @@ -29,8 +30,8 @@ <h2><span class="refentrytitle">Struct template pack_options</span></h2> <p>boost::intrusive::pack_options</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.pack_options_hpp" title="Header <boost/intrusive/pack_options.hpp>">boost/intrusive/pack_options.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.pack_options_hpp" title="Header <boost/intrusive/pack_options.hpp>">boost/intrusive/pack_options.hpp</a>> </span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> DefaultOptions<span class="special">,</span> <span class="keyword">class</span> <span class="special">...</span> Options<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="pack_options.html" title="Struct template pack_options">pack_options</a> <span class="special">{</span> @@ -38,7 +39,7 @@ <span class="keyword">typedef</span> <span class="identifier">unspecified_type</span> <a name="boost.intrusive.pack_options.type"></a><span class="identifier">type</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.22.4.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.22.4.4"></a><h2>Description</h2> <p>This class is a utility that takes:</p> <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> <li class="listitem"><p>a default options class defining initial static constant and typedefs</p></li> @@ -74,17 +75,14 @@ <p>If an option is specified in the default options argument and later redefined as an option, the last definition will prevail. </p> </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="void_pointer.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.pack_options_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="../../BOOST_IN_idm45971714142672.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +<a accesskey="p" href="void_pointer.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.pack_options_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="../../BOOST_INTRUSIVE_O_idm34861.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> </div> </body> </html> diff --git a/doc/html/boost/intrusive/pointer_has_rebind.html b/doc/html/boost/intrusive/pointer_has_rebind.html index 4072c6c907..06c834ee0f 100644 --- a/doc/html/boost/intrusive/pointer_has_rebind.html +++ b/doc/html/boost/intrusive/pointer_has_rebind.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.pointer_rebind_hpp" title="Header <boost/intrusive/pointer_rebind.hpp>"> -<link rel="prev" href="pointer__idm45971714106800.html" title="Struct template pointer_plus_bits<T *, NumBits>"> +<link rel="prev" href="pointer_plus_bits_idm34945.html" title="Struct template pointer_plus_bits<T *, NumBits>"> <link rel="next" href="pointer_has_rebind/any.html" title="Struct template any"> +<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="pointer__idm45971714106800.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.pointer_rebind_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="pointer_has_rebind/any.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +<a accesskey="p" href="pointer_plus_bits_idm34945.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.pointer_rebind_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="pointer_has_rebind/any.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> </div> <div class="refentry"> <a name="boost.intrusive.pointer_has_rebind"></a><div class="titlepage"></div> @@ -29,8 +30,8 @@ <h2><span class="refentrytitle">Struct template pointer_has_rebind</span></h2> <p>boost::intrusive::pointer_has_rebind</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.pointer_rebind_hpp" title="Header <boost/intrusive/pointer_rebind.hpp>">boost/intrusive/pointer_rebind.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.pointer_rebind_hpp" title="Header <boost/intrusive/pointer_rebind.hpp>">boost/intrusive/pointer_rebind.hpp</a>> </span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Ptr<span class="special">,</span> <span class="keyword">typename</span> U<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="pointer_has_rebind.html" title="Struct template pointer_has_rebind">pointer_has_rebind</a> <span class="special">{</span> @@ -38,40 +39,37 @@ <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> V<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="pointer_has_rebind/any.html" title="Struct template any">any</a> <span class="special">{</span> <span class="comment">// <a class="link" href="pointer_has_rebind/any.html#boost.intrusive.pointer_has_rebind.anyconstruct-copy-destruct">construct/copy/destruct</a></span> - <a class="link" href="pointer_has_rebind/any.html#idm45971714084928-bb"><span class="identifier">any</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">V</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="pointer_has_rebind/any.html#idm34991-bb"><span class="identifier">any</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">V</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> <span class="special">}</span><span class="special">;</span> - <span class="comment">// <a class="link" href="pointer_has_rebind.html#idm45971714082832-bb">public static functions</a></span> + <span class="comment">// <a class="link" href="pointer_has_rebind.html#idm34996-bb">public static functions</a></span> <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> X<span class="special">></span> - <span class="keyword">static</span> <span class="keyword">char</span> <a class="link" href="pointer_has_rebind.html#idm45971714082272-bb"><span class="identifier">test</span></a><span class="special">(</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">X</span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">rebind</span><span class="special"><</span> <span class="identifier">U</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> X<span class="special">></span> <span class="keyword">static</span> <span class="keyword">int</span> <a class="link" href="pointer_has_rebind.html#idm45971714078912-bb"><span class="identifier">test</span></a><span class="special">(</span><span class="identifier">any</span><span class="special"><</span> <span class="keyword">int</span> <span class="special">></span><span class="special">,</span> <span class="keyword">void</span> <span class="special">*</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">char</span> <a class="link" href="pointer_has_rebind.html#idm34997-bb"><span class="identifier">test</span></a><span class="special">(</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">X</span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">rebind</span><span class="special"><</span> <span class="identifier">U</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> X<span class="special">></span> <span class="keyword">static</span> <span class="keyword">int</span> <a class="link" href="pointer_has_rebind.html#idm35005-bb"><span class="identifier">test</span></a><span class="special">(</span><span class="identifier">any</span><span class="special"><</span> <span class="keyword">int</span> <span class="special">></span><span class="special">,</span> <span class="keyword">void</span> <span class="special">*</span><span class="special">)</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">value</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.25.3.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.25.3.4"></a><h2>Description</h2> <div class="refsect2"> -<a name="id-1.3.20.42.25.3.4.2"></a><h3> -<a name="idm45971714082832-bb"></a><code class="computeroutput">pointer_has_rebind</code> public static functions</h3> +<a name="id-1.3.18.42.25.3.4.2"></a><h3> +<a name="idm34996-bb"></a><code class="computeroutput">pointer_has_rebind</code> public static functions</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> -<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> X<span class="special">></span> <span class="keyword">static</span> <span class="keyword">char</span> <a name="idm45971714082272-bb"></a><span class="identifier">test</span><span class="special">(</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">X</span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">rebind</span><span class="special"><</span> <span class="identifier">U</span> <span class="special">></span> <span class="special">*</span><span class="special">)</span><span class="special">;</span></pre></li> -<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> X<span class="special">></span> <span class="keyword">static</span> <span class="keyword">int</span> <a name="idm45971714078912-bb"></a><span class="identifier">test</span><span class="special">(</span><span class="identifier">any</span><span class="special"><</span> <span class="keyword">int</span> <span class="special">></span><span class="special">,</span> <span class="keyword">void</span> <span class="special">*</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> X<span class="special">></span> <span class="keyword">static</span> <span class="keyword">char</span> <a name="idm34997-bb"></a><span class="identifier">test</span><span class="special">(</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">X</span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">rebind</span><span class="special"><</span> <span class="identifier">U</span> <span class="special">></span> <span class="special">*</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> X<span class="special">></span> <span class="keyword">static</span> <span class="keyword">int</span> <a name="idm35005-bb"></a><span class="identifier">test</span><span class="special">(</span><span class="identifier">any</span><span class="special"><</span> <span class="keyword">int</span> <span class="special">></span><span class="special">,</span> <span class="keyword">void</span> <span class="special">*</span><span class="special">)</span><span class="special">;</span></pre></li> </ol></div> </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="pointer__idm45971714106800.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.pointer_rebind_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="pointer_has_rebind/any.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +<a accesskey="p" href="pointer_plus_bits_idm34945.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.pointer_rebind_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="pointer_has_rebind/any.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> </div> </body> </html> diff --git a/doc/html/boost/intrusive/pointer_has_rebind/any.html b/doc/html/boost/intrusive/pointer_has_rebind/any.html index d04d71e287..69a177b74e 100644 --- a/doc/html/boost/intrusive/pointer_has_rebind/any.html +++ b/doc/html/boost/intrusive/pointer_has_rebind/any.html @@ -6,9 +6,10 @@ <link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css"> <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="../pointer_has_rebind.html#id-1.3.20.42.25.3.4" title="Description"> +<link rel="up" href="../pointer_has_rebind.html#id-1.3.18.42.25.3.4" title="Description"> <link rel="prev" href="../pointer_has_rebind.html" title="Struct template pointer_has_rebind"> <link rel="next" href="../pointer_has_rebind_other.html" title="Struct template pointer_has_rebind_other"> +<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="../pointer_has_rebind.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../pointer_has_rebind.html#id-1.3.20.42.25.3.4"><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="../pointer_has_rebind_other.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a> +<a accesskey="p" href="../pointer_has_rebind.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../pointer_has_rebind.html#id-1.3.18.42.25.3.4"><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="../pointer_has_rebind_other.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a> </div> <div class="refentry"> <a name="boost.intrusive.pointer_has_rebind.any"></a><div class="titlepage"></div> @@ -29,37 +30,34 @@ <h2><span class="refentrytitle">Struct template any</span></h2> <p>boost::intrusive::pointer_has_rebind::any</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.pointer_rebind_hpp" title="Header <boost/intrusive/pointer_rebind.hpp>">boost/intrusive/pointer_rebind.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.pointer_rebind_hpp" title="Header <boost/intrusive/pointer_rebind.hpp>">boost/intrusive/pointer_rebind.hpp</a>> </span> <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> V<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="any.html" title="Struct template any">any</a> <span class="special">{</span> <span class="comment">// <a class="link" href="any.html#boost.intrusive.pointer_has_rebind.anyconstruct-copy-destruct">construct/copy/destruct</a></span> - <a class="link" href="any.html#idm45971714084928-bb"><span class="identifier">any</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">V</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="any.html#idm34991-bb"><span class="identifier">any</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">V</span> <span class="special">&</span><span class="special">)</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.25.3.4.3.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.25.3.4.3.4"></a><h2>Description</h2> <div class="refsect2"> -<a name="id-1.3.20.42.25.3.4.3.4.2"></a><h3> +<a name="id-1.3.18.42.25.3.4.3.4.2"></a><h3> <a name="boost.intrusive.pointer_has_rebind.anyconstruct-copy-destruct"></a><code class="computeroutput">any</code> public construct/copy/destruct</h3> -<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><pre class="literallayout"><a name="idm45971714084928-bb"></a><span class="identifier">any</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">V</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span></pre></li></ol></div> +<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><pre class="literallayout"><a name="idm34991-bb"></a><span class="identifier">any</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">V</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span></pre></li></ol></div> </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="../pointer_has_rebind.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../pointer_has_rebind.html#id-1.3.20.42.25.3.4"><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="../pointer_has_rebind_other.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a> +<a accesskey="p" href="../pointer_has_rebind.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../pointer_has_rebind.html#id-1.3.18.42.25.3.4"><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="../pointer_has_rebind_other.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a> </div> </body> </html> diff --git a/doc/html/boost/intrusive/pointer_has_rebind_other.html b/doc/html/boost/intrusive/pointer_has_rebind_other.html index a7c7477e58..0d8aa2e6d1 100644 --- a/doc/html/boost/intrusive/pointer_has_rebind_other.html +++ b/doc/html/boost/intrusive/pointer_has_rebind_other.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.pointer_rebind_hpp" title="Header <boost/intrusive/pointer_rebind.hpp>"> <link rel="prev" href="pointer_has_rebind/any.html" title="Struct template any"> <link rel="next" href="pointer_has_rebind_other/any.html" title="Struct template any"> +<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> @@ -29,8 +30,8 @@ <h2><span class="refentrytitle">Struct template pointer_has_rebind_other</span></h2> <p>boost::intrusive::pointer_has_rebind_other</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.pointer_rebind_hpp" title="Header <boost/intrusive/pointer_rebind.hpp>">boost/intrusive/pointer_rebind.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.pointer_rebind_hpp" title="Header <boost/intrusive/pointer_rebind.hpp>">boost/intrusive/pointer_rebind.hpp</a>> </span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Ptr<span class="special">,</span> <span class="keyword">typename</span> U<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="pointer_has_rebind_other.html" title="Struct template pointer_has_rebind_other">pointer_has_rebind_other</a> <span class="special">{</span> @@ -38,38 +39,35 @@ <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> V<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="pointer_has_rebind_other/any.html" title="Struct template any">any</a> <span class="special">{</span> <span class="comment">// <a class="link" href="pointer_has_rebind_other/any.html#boost.intrusive.pointer_has_rebind_other.anyconstruct-copy-destruct">construct/copy/destruct</a></span> - <a class="link" href="pointer_has_rebind_other/any.html#idm45971714071616-bb"><span class="identifier">any</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">V</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="pointer_has_rebind_other/any.html#idm35021-bb"><span class="identifier">any</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">V</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> <span class="special">}</span><span class="special">;</span> - <span class="comment">// <a class="link" href="pointer_has_rebind_other.html#idm45971714069520-bb">public static functions</a></span> + <span class="comment">// <a class="link" href="pointer_has_rebind_other.html#idm35026-bb">public static functions</a></span> <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> X<span class="special">></span> - <span class="keyword">static</span> <span class="keyword">char</span> <a class="link" href="pointer_has_rebind_other.html#idm45971714068960-bb"><span class="identifier">test</span></a><span class="special">(</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">X</span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">rebind</span><span class="special"><</span> <span class="identifier">U</span> <span class="special">></span><span class="special">::</span><span class="identifier">other</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> X<span class="special">></span> <span class="keyword">static</span> <span class="keyword">int</span> <a class="link" href="pointer_has_rebind_other.html#idm45971714065584-bb"><span class="identifier">test</span></a><span class="special">(</span><span class="identifier">any</span><span class="special"><</span> <span class="keyword">int</span> <span class="special">></span><span class="special">,</span> <span class="keyword">void</span> <span class="special">*</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">char</span> <a class="link" href="pointer_has_rebind_other.html#idm35027-bb"><span class="identifier">test</span></a><span class="special">(</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">X</span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">rebind</span><span class="special"><</span> <span class="identifier">U</span> <span class="special">></span><span class="special">::</span><span class="identifier">other</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> X<span class="special">></span> <span class="keyword">static</span> <span class="keyword">int</span> <a class="link" href="pointer_has_rebind_other.html#idm35035-bb"><span class="identifier">test</span></a><span class="special">(</span><span class="identifier">any</span><span class="special"><</span> <span class="keyword">int</span> <span class="special">></span><span class="special">,</span> <span class="keyword">void</span> <span class="special">*</span><span class="special">)</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">value</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.25.4.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.25.4.4"></a><h2>Description</h2> <div class="refsect2"> -<a name="id-1.3.20.42.25.4.4.2"></a><h3> -<a name="idm45971714069520-bb"></a><code class="computeroutput">pointer_has_rebind_other</code> public static functions</h3> +<a name="id-1.3.18.42.25.4.4.2"></a><h3> +<a name="idm35026-bb"></a><code class="computeroutput">pointer_has_rebind_other</code> public static functions</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> <li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> X<span class="special">></span> - <span class="keyword">static</span> <span class="keyword">char</span> <a name="idm45971714068960-bb"></a><span class="identifier">test</span><span class="special">(</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">X</span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">rebind</span><span class="special"><</span> <span class="identifier">U</span> <span class="special">></span><span class="special">::</span><span class="identifier">other</span> <span class="special">*</span><span class="special">)</span><span class="special">;</span></pre></li> -<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> X<span class="special">></span> <span class="keyword">static</span> <span class="keyword">int</span> <a name="idm45971714065584-bb"></a><span class="identifier">test</span><span class="special">(</span><span class="identifier">any</span><span class="special"><</span> <span class="keyword">int</span> <span class="special">></span><span class="special">,</span> <span class="keyword">void</span> <span class="special">*</span><span class="special">)</span><span class="special">;</span></pre></li> + <span class="keyword">static</span> <span class="keyword">char</span> <a name="idm35027-bb"></a><span class="identifier">test</span><span class="special">(</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">X</span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">rebind</span><span class="special"><</span> <span class="identifier">U</span> <span class="special">></span><span class="special">::</span><span class="identifier">other</span> <span class="special">*</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> X<span class="special">></span> <span class="keyword">static</span> <span class="keyword">int</span> <a name="idm35035-bb"></a><span class="identifier">test</span><span class="special">(</span><span class="identifier">any</span><span class="special"><</span> <span class="keyword">int</span> <span class="special">></span><span class="special">,</span> <span class="keyword">void</span> <span class="special">*</span><span class="special">)</span><span class="special">;</span></pre></li> </ol></div> </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="pointer_has_rebind/any.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.pointer_rebind_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="pointer_has_rebind_other/any.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/pointer_has_rebind_other/any.html b/doc/html/boost/intrusive/pointer_has_rebind_other/any.html index 418570c8fa..0dd8c19f97 100644 --- a/doc/html/boost/intrusive/pointer_has_rebind_other/any.html +++ b/doc/html/boost/intrusive/pointer_has_rebind_other/any.html @@ -6,9 +6,10 @@ <link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css"> <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="../pointer_has_rebind_other.html#id-1.3.20.42.25.4.4" title="Description"> +<link rel="up" href="../pointer_has_rebind_other.html#id-1.3.18.42.25.4.4" title="Description"> <link rel="prev" href="../pointer_has_rebind_other.html" title="Struct template pointer_has_rebind_other"> <link rel="next" href="../pointer_rebind.html" title="Struct template pointer_rebind"> +<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="../pointer_has_rebind_other.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../pointer_has_rebind_other.html#id-1.3.20.42.25.4.4"><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="../pointer_rebind.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a> +<a accesskey="p" href="../pointer_has_rebind_other.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../pointer_has_rebind_other.html#id-1.3.18.42.25.4.4"><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="../pointer_rebind.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a> </div> <div class="refentry"> <a name="boost.intrusive.pointer_has_rebind_other.any"></a><div class="titlepage"></div> @@ -29,37 +30,34 @@ <h2><span class="refentrytitle">Struct template any</span></h2> <p>boost::intrusive::pointer_has_rebind_other::any</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.pointer_rebind_hpp" title="Header <boost/intrusive/pointer_rebind.hpp>">boost/intrusive/pointer_rebind.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.pointer_rebind_hpp" title="Header <boost/intrusive/pointer_rebind.hpp>">boost/intrusive/pointer_rebind.hpp</a>> </span> <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> V<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="any.html" title="Struct template any">any</a> <span class="special">{</span> <span class="comment">// <a class="link" href="any.html#boost.intrusive.pointer_has_rebind_other.anyconstruct-copy-destruct">construct/copy/destruct</a></span> - <a class="link" href="any.html#idm45971714071616-bb"><span class="identifier">any</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">V</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="any.html#idm35021-bb"><span class="identifier">any</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">V</span> <span class="special">&</span><span class="special">)</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.25.4.4.3.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.25.4.4.3.4"></a><h2>Description</h2> <div class="refsect2"> -<a name="id-1.3.20.42.25.4.4.3.4.2"></a><h3> +<a name="id-1.3.18.42.25.4.4.3.4.2"></a><h3> <a name="boost.intrusive.pointer_has_rebind_other.anyconstruct-copy-destruct"></a><code class="computeroutput">any</code> public construct/copy/destruct</h3> -<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><pre class="literallayout"><a name="idm45971714071616-bb"></a><span class="identifier">any</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">V</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span></pre></li></ol></div> +<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><pre class="literallayout"><a name="idm35021-bb"></a><span class="identifier">any</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">V</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span></pre></li></ol></div> </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="../pointer_has_rebind_other.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../pointer_has_rebind_other.html#id-1.3.20.42.25.4.4"><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="../pointer_rebind.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a> +<a accesskey="p" href="../pointer_has_rebind_other.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../pointer_has_rebind_other.html#id-1.3.18.42.25.4.4"><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="../pointer_rebind.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a> </div> </body> </html> diff --git a/doc/html/boost/intrusive/pointer_plus_bits.html b/doc/html/boost/intrusive/pointer_plus_bits.html index be030de27e..c478d1376e 100644 --- a/doc/html/boost/intrusive/pointer_plus_bits.html +++ b/doc/html/boost/intrusive/pointer_plus_bits.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.pointer_plus_bits_hpp" title="Header <boost/intrusive/pointer_plus_bits.hpp>"> -<link rel="prev" href="max_poin_idm45971714113872.html" title="Struct template max_pointer_plus_bits<void *, Alignment>"> -<link rel="next" href="pointer__idm45971714106800.html" title="Struct template pointer_plus_bits<T *, NumBits>"> +<link rel="prev" href="max_pointer_plus__idm34926.html" title="Struct template max_pointer_plus_bits<void *, Alignment>"> +<link rel="next" href="pointer_plus_bits_idm34945.html" title="Struct template pointer_plus_bits<T *, NumBits>"> +<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="max_poin_idm45971714113872.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.pointer_plus_bits_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="pointer__idm45971714106800.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +<a accesskey="p" href="max_pointer_plus__idm34926.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.pointer_plus_bits_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="pointer_plus_bits_idm34945.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> </div> <div class="refentry"> <a name="boost.intrusive.pointer_plus_bits"></a><div class="titlepage"></div> @@ -29,29 +30,26 @@ <h2><span class="refentrytitle">Struct template pointer_plus_bits</span></h2> <p>boost::intrusive::pointer_plus_bits</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.pointer_plus_bits_hpp" title="Header <boost/intrusive/pointer_plus_bits.hpp>">boost/intrusive/pointer_plus_bits.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.pointer_plus_bits_hpp" title="Header <boost/intrusive/pointer_plus_bits.hpp>">boost/intrusive/pointer_plus_bits.hpp</a>> </span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Pointer<span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> NumBits<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="pointer_plus_bits.html" title="Struct template pointer_plus_bits">pointer_plus_bits</a> <span class="special">{</span> <span class="special">}</span><span class="special">;</span></pre></div> <div class="refsect1"> -<a name="id-1.3.20.42.24.5.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.24.5.4"></a><h2>Description</h2> <p>This is class that is supposed to have static methods to embed extra bits of information in a pointer. This is a declaration and there is no default implementation, because operations to embed the bits change with every pointer type.</p> <p>An implementation that detects that a pointer type whose has_pointer_plus_bits<>::value is non-zero can make use of these operations to embed the bits in the pointer. </p> </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="max_poin_idm45971714113872.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.pointer_plus_bits_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="pointer__idm45971714106800.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +<a accesskey="p" href="max_pointer_plus__idm34926.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.pointer_plus_bits_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="pointer_plus_bits_idm34945.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> </div> </body> </html> diff --git a/doc/html/boost/intrusive/pointer__idm45971714106800.html b/doc/html/boost/intrusive/pointer_plus_bits_idm34945.html index f3e422f40d..5eaec73889 100644 --- a/doc/html/boost/intrusive/pointer__idm45971714106800.html +++ b/doc/html/boost/intrusive/pointer_plus_bits_idm34945.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.pointer_plus_bits_hpp" title="Header <boost/intrusive/pointer_plus_bits.hpp>"> <link rel="prev" href="pointer_plus_bits.html" title="Struct template pointer_plus_bits"> <link rel="next" href="pointer_has_rebind.html" title="Struct template pointer_has_rebind"> +<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> @@ -24,51 +25,48 @@ <a accesskey="p" href="pointer_plus_bits.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.pointer_plus_bits_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="pointer_has_rebind.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> </div> <div class="refentry"> -<a name="boost.intrusive.pointer__idm45971714106800"></a><div class="titlepage"></div> +<a name="boost.intrusive.pointer_plus_bits_idm34945"></a><div class="titlepage"></div> <div class="refnamediv"> <h2><span class="refentrytitle">Struct template pointer_plus_bits<T *, NumBits></span></h2> <p>boost::intrusive::pointer_plus_bits<T *, NumBits></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.pointer_plus_bits_hpp" title="Header <boost/intrusive/pointer_plus_bits.hpp>">boost/intrusive/pointer_plus_bits.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.pointer_plus_bits_hpp" title="Header <boost/intrusive/pointer_plus_bits.hpp>">boost/intrusive/pointer_plus_bits.hpp</a>> </span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T<span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> NumBits<span class="special">></span> -<span class="keyword">struct</span> <a class="link" href="pointer__idm45971714106800.html" title="Struct template pointer_plus_bits<T *, NumBits>">pointer_plus_bits</a><span class="special"><</span><span class="identifier">T</span> <span class="special">*</span><span class="special">,</span> <span class="identifier">NumBits</span><span class="special">></span> <span class="special">{</span> +<span class="keyword">struct</span> <a class="link" href="pointer_plus_bits_idm34945.html" title="Struct template pointer_plus_bits<T *, NumBits>">pointer_plus_bits</a><span class="special"><</span><span class="identifier">T</span> <span class="special">*</span><span class="special">,</span> <span class="identifier">NumBits</span><span class="special">></span> <span class="special">{</span> <span class="comment">// types</span> - <span class="keyword">typedef</span> <span class="identifier">T</span> <span class="special">*</span> <a name="boost.intrusive.pointer__idm45971714106800.pointer"></a><span class="identifier">pointer</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">T</span> <span class="special">*</span> <a name="boost.intrusive.pointer_plus_bits_idm34945.pointer"></a><span class="identifier">pointer</span><span class="special">;</span> - <span class="comment">// <a class="link" href="pointer__idm45971714106800.html#idm45971714101488-bb">public static functions</a></span> - <span class="keyword">static</span> <span class="identifier">pointer</span> <a class="link" href="pointer__idm45971714106800.html#idm45971714100928-bb"><span class="identifier">get_pointer</span></a><span class="special">(</span><span class="identifier">pointer</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="pointer__idm45971714106800.html#idm45971714098848-bb"><span class="identifier">set_pointer</span></a><span class="special">(</span><span class="identifier">pointer</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">pointer</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a class="link" href="pointer__idm45971714106800.html#idm45971714096080-bb"><span class="identifier">get_bits</span></a><span class="special">(</span><span class="identifier">pointer</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="pointer__idm45971714106800.html#idm45971714094000-bb"><span class="identifier">set_bits</span></a><span class="special">(</span><span class="identifier">pointer</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="comment">// <a class="link" href="pointer_plus_bits_idm34945.html#idm34959-bb">public static functions</a></span> + <span class="keyword">static</span> <span class="identifier">pointer</span> <a class="link" href="pointer_plus_bits_idm34945.html#idm34960-bb"><span class="identifier">get_pointer</span></a><span class="special">(</span><span class="identifier">pointer</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="pointer_plus_bits_idm34945.html#idm34964-bb"><span class="identifier">set_pointer</span></a><span class="special">(</span><span class="identifier">pointer</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">pointer</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a class="link" href="pointer_plus_bits_idm34945.html#idm34970-bb"><span class="identifier">get_bits</span></a><span class="special">(</span><span class="identifier">pointer</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="pointer_plus_bits_idm34945.html#idm34974-bb"><span class="identifier">set_bits</span></a><span class="special">(</span><span class="identifier">pointer</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</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="identifier">uintptr_t</span> <span class="identifier">Mask</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.24.6.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.24.6.4"></a><h2>Description</h2> <p>This is the specialization to embed extra bits of information in a raw pointer. The extra bits are stored in the lower bits of the pointer. </p> <div class="refsect2"> -<a name="id-1.3.20.42.24.6.4.3"></a><h3> -<a name="idm45971714101488-bb"></a><code class="computeroutput">pointer_plus_bits</code> public static functions</h3> +<a name="id-1.3.18.42.24.6.4.3"></a><h3> +<a name="idm34959-bb"></a><code class="computeroutput">pointer_plus_bits</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">pointer</span> <a name="idm45971714100928-bb"></a><span class="identifier">get_pointer</span><span class="special">(</span><span class="identifier">pointer</span> n<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> -<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971714098848-bb"></a><span class="identifier">set_pointer</span><span class="special">(</span><span class="identifier">pointer</span> <span class="special">&</span> n<span class="special">,</span> <span class="identifier">pointer</span> p<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> -<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a name="idm45971714096080-bb"></a><span class="identifier">get_bits</span><span class="special">(</span><span class="identifier">pointer</span> n<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> -<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971714094000-bb"></a><span class="identifier">set_bits</span><span class="special">(</span><span class="identifier">pointer</span> <span class="special">&</span> n<span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> c<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">pointer</span> <a name="idm34960-bb"></a><span class="identifier">get_pointer</span><span class="special">(</span><span class="identifier">pointer</span> n<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm34964-bb"></a><span class="identifier">set_pointer</span><span class="special">(</span><span class="identifier">pointer</span> <span class="special">&</span> n<span class="special">,</span> <span class="identifier">pointer</span> p<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a name="idm34970-bb"></a><span class="identifier">get_bits</span><span class="special">(</span><span class="identifier">pointer</span> n<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm34974-bb"></a><span class="identifier">set_bits</span><span class="special">(</span><span class="identifier">pointer</span> <span class="special">&</span> n<span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> c<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> </ol></div> </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="pointer_plus_bits.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.pointer_plus_bits_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="pointer_has_rebind.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/pointer_rebind.html b/doc/html/boost/intrusive/pointer_rebind.html index eca06156f3..f9d1d3e8b7 100644 --- a/doc/html/boost/intrusive/pointer_rebind.html +++ b/doc/html/boost/intrusive/pointer_rebind.html @@ -8,7 +8,8 @@ <link rel="home" href="../../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset"> <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.pointer_rebind_hpp" title="Header <boost/intrusive/pointer_rebind.hpp>"> <link rel="prev" href="pointer_has_rebind_other/any.html" title="Struct template any"> -<link rel="next" href="pointer__idm45971714059328.html" title="Struct template pointer_rebind<T *, U>"> +<link rel="next" href="pointer_rebind_T__idm35049.html" title="Struct template pointer_rebind<T *, U>"> +<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="pointer_has_rebind_other/any.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.pointer_rebind_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="pointer__idm45971714059328.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +<a accesskey="p" href="pointer_has_rebind_other/any.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.pointer_rebind_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="pointer_rebind_T__idm35049.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> </div> <div class="refentry"> <a name="boost.intrusive.pointer_rebind"></a><div class="titlepage"></div> @@ -29,25 +30,22 @@ <h2><span class="refentrytitle">Struct template pointer_rebind</span></h2> <p>boost::intrusive::pointer_rebind — defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) </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.pointer_rebind_hpp" title="Header <boost/intrusive/pointer_rebind.hpp>">boost/intrusive/pointer_rebind.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.pointer_rebind_hpp" title="Header <boost/intrusive/pointer_rebind.hpp>">boost/intrusive/pointer_rebind.hpp</a>> </span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Ptr<span class="special">,</span> <span class="keyword">typename</span> U<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="pointer_rebind.html" title="Struct template pointer_rebind">pointer_rebind</a> <span class="special">:</span> <span class="keyword">public</span> boost::intrusive::pointer_rebinder< Ptr, U, pointer_rebind_mode< Ptr, U >::mode > <span class="special">{</span> <span class="special">}</span><span class="special">;</span></pre></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="pointer_has_rebind_other/any.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.pointer_rebind_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="pointer__idm45971714059328.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +<a accesskey="p" href="pointer_has_rebind_other/any.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.pointer_rebind_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="pointer_rebind_T__idm35049.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> </div> </body> </html> diff --git a/doc/html/boost/intrusive/pointer__idm45971714059328.html b/doc/html/boost/intrusive/pointer_rebind_T__idm35049.html index a4329afc8e..ba1357cecd 100644 --- a/doc/html/boost/intrusive/pointer__idm45971714059328.html +++ b/doc/html/boost/intrusive/pointer_rebind_T__idm35049.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.pointer_rebind_hpp" title="Header <boost/intrusive/pointer_rebind.hpp>"> <link rel="prev" href="pointer_rebind.html" title="Struct template pointer_rebind"> <link rel="next" href="pointer_rebind_mode.html" title="Struct template pointer_rebind_mode"> +<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> @@ -24,28 +25,25 @@ <a accesskey="p" href="pointer_rebind.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.pointer_rebind_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="pointer_rebind_mode.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> </div> <div class="refentry"> -<a name="boost.intrusive.pointer__idm45971714059328"></a><div class="titlepage"></div> +<a name="boost.intrusive.pointer_rebind_T__idm35049"></a><div class="titlepage"></div> <div class="refnamediv"> <h2><span class="refentrytitle">Struct template pointer_rebind<T *, U></span></h2> <p>boost::intrusive::pointer_rebind<T *, U></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.pointer_rebind_hpp" title="Header <boost/intrusive/pointer_rebind.hpp>">boost/intrusive/pointer_rebind.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.pointer_rebind_hpp" title="Header <boost/intrusive/pointer_rebind.hpp>">boost/intrusive/pointer_rebind.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">typename</span> U<span class="special">></span> -<span class="keyword">struct</span> <a class="link" href="pointer__idm45971714059328.html" title="Struct template pointer_rebind<T *, U>">pointer_rebind</a><span class="special"><</span><span class="identifier">T</span> <span class="special">*</span><span class="special">,</span> <span class="identifier">U</span><span class="special">></span> <span class="special">{</span> +<span class="keyword">struct</span> <a class="link" href="pointer_rebind_T__idm35049.html" title="Struct template pointer_rebind<T *, U>">pointer_rebind</a><span class="special"><</span><span class="identifier">T</span> <span class="special">*</span><span class="special">,</span> <span class="identifier">U</span><span class="special">></span> <span class="special">{</span> <span class="comment">// types</span> - <span class="keyword">typedef</span> <span class="identifier">U</span> <span class="special">*</span> <a name="boost.intrusive.pointer__idm45971714059328.type"></a><span class="identifier">type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">U</span> <span class="special">*</span> <a name="boost.intrusive.pointer_rebind_T__idm35049.type"></a><span class="identifier">type</span><span class="special">;</span> <span class="special">}</span><span class="special">;</span></pre></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="pointer_rebind.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.pointer_rebind_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="pointer_rebind_mode.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/pointer_rebind_mode.html b/doc/html/boost/intrusive/pointer_rebind_mode.html index 250d00dada..9e92f4082d 100644 --- a/doc/html/boost/intrusive/pointer_rebind_mode.html +++ b/doc/html/boost/intrusive/pointer_rebind_mode.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.pointer_rebind_hpp" title="Header <boost/intrusive/pointer_rebind.hpp>"> -<link rel="prev" href="pointer__idm45971714059328.html" title="Struct template pointer_rebind<T *, U>"> +<link rel="prev" href="pointer_rebind_T__idm35049.html" title="Struct template pointer_rebind<T *, U>"> <link rel="next" href="pointer_rebinder.html" title="Struct template pointer_rebinder"> +<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="pointer__idm45971714059328.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.pointer_rebind_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="pointer_rebinder.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +<a accesskey="p" href="pointer_rebind_T__idm35049.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.pointer_rebind_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="pointer_rebinder.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> </div> <div class="refentry"> <a name="boost.intrusive.pointer_rebind_mode"></a><div class="titlepage"></div> @@ -29,8 +30,8 @@ <h2><span class="refentrytitle">Struct template pointer_rebind_mode</span></h2> <p>boost::intrusive::pointer_rebind_mode</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.pointer_rebind_hpp" title="Header <boost/intrusive/pointer_rebind.hpp>">boost/intrusive/pointer_rebind.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.pointer_rebind_hpp" title="Header <boost/intrusive/pointer_rebind.hpp>">boost/intrusive/pointer_rebind.hpp</a>> </span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Ptr<span class="special">,</span> <span class="keyword">typename</span> U<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="pointer_rebind_mode.html" title="Struct template pointer_rebind_mode">pointer_rebind_mode</a> <span class="special">{</span> @@ -41,17 +42,14 @@ <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">unsigned</span> <span class="keyword">int</span> <span class="identifier">mode</span><span class="special">;</span> <span class="special">}</span><span class="special">;</span></pre></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="pointer__idm45971714059328.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.pointer_rebind_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="pointer_rebinder.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +<a accesskey="p" href="pointer_rebind_T__idm35049.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.pointer_rebind_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="pointer_rebinder.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> </div> </body> </html> diff --git a/doc/html/boost/intrusive/pointer_rebinder.html b/doc/html/boost/intrusive/pointer_rebinder.html index 86653e1c76..0f17c61e16 100644 --- a/doc/html/boost/intrusive/pointer_rebinder.html +++ b/doc/html/boost/intrusive/pointer_rebinder.html @@ -8,7 +8,8 @@ <link rel="home" href="../../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset"> <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.pointer_rebind_hpp" title="Header <boost/intrusive/pointer_rebind.hpp>"> <link rel="prev" href="pointer_rebind_mode.html" title="Struct template pointer_rebind_mode"> -<link rel="next" href="pointer__idm45971714048144.html" title="Struct template pointer_rebinder<Ptr, U, 1u>"> +<link rel="next" href="pointer_rebinder__idm35074.html" title="Struct template pointer_rebinder<Ptr, U, 1u>"> +<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="pointer_rebind_mode.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.pointer_rebind_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="pointer__idm45971714048144.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +<a accesskey="p" href="pointer_rebind_mode.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.pointer_rebind_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="pointer_rebinder__idm35074.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> </div> <div class="refentry"> <a name="boost.intrusive.pointer_rebinder"></a><div class="titlepage"></div> @@ -29,24 +30,21 @@ <h2><span class="refentrytitle">Struct template pointer_rebinder</span></h2> <p>boost::intrusive::pointer_rebinder</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.pointer_rebind_hpp" title="Header <boost/intrusive/pointer_rebind.hpp>">boost/intrusive/pointer_rebind.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.pointer_rebind_hpp" title="Header <boost/intrusive/pointer_rebind.hpp>">boost/intrusive/pointer_rebind.hpp</a>> </span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Ptr<span class="special">,</span> <span class="keyword">typename</span> U<span class="special">,</span> <span class="keyword">unsigned</span> <span class="keyword">int</span> RebindMode<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="pointer_rebinder.html" title="Struct template pointer_rebinder">pointer_rebinder</a> <span class="special">{</span> <span class="special">}</span><span class="special">;</span></pre></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="pointer_rebind_mode.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.pointer_rebind_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="pointer__idm45971714048144.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +<a accesskey="p" href="pointer_rebind_mode.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.pointer_rebind_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="pointer_rebinder__idm35074.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> </div> </body> </html> diff --git a/doc/html/boost/intrusive/pointer__idm45971714048144.html b/doc/html/boost/intrusive/pointer_rebinder__idm35074.html index 6480584a56..5ba84eff6a 100644 --- a/doc/html/boost/intrusive/pointer__idm45971714048144.html +++ b/doc/html/boost/intrusive/pointer_rebinder__idm35074.html @@ -8,7 +8,8 @@ <link rel="home" href="../../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset"> <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.pointer_rebind_hpp" title="Header <boost/intrusive/pointer_rebind.hpp>"> <link rel="prev" href="pointer_rebinder.html" title="Struct template pointer_rebinder"> -<link rel="next" href="pointer__idm45971714044480.html" title="Struct template pointer_rebinder<Ptr, U, 2u>"> +<link rel="next" href="pointer_rebinder__idm35084.html" title="Struct template pointer_rebinder<Ptr, U, 2u>"> +<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,34 +22,31 @@ </tr></table> <hr> <div class="spirit-nav"> -<a accesskey="p" href="pointer_rebinder.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.pointer_rebind_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="pointer__idm45971714044480.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +<a accesskey="p" href="pointer_rebinder.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.pointer_rebind_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="pointer_rebinder__idm35084.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> </div> <div class="refentry"> -<a name="boost.intrusive.pointer__idm45971714048144"></a><div class="titlepage"></div> +<a name="boost.intrusive.pointer_rebinder__idm35074"></a><div class="titlepage"></div> <div class="refnamediv"> <h2><span class="refentrytitle">Struct template pointer_rebinder<Ptr, U, 1u></span></h2> <p>boost::intrusive::pointer_rebinder<Ptr, U, 1u></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.pointer_rebind_hpp" title="Header <boost/intrusive/pointer_rebind.hpp>">boost/intrusive/pointer_rebind.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.pointer_rebind_hpp" title="Header <boost/intrusive/pointer_rebind.hpp>">boost/intrusive/pointer_rebind.hpp</a>> </span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Ptr<span class="special">,</span> <span class="keyword">typename</span> U<span class="special">></span> -<span class="keyword">struct</span> <a class="link" href="pointer__idm45971714048144.html" title="Struct template pointer_rebinder<Ptr, U, 1u>">pointer_rebinder</a><span class="special"><</span><span class="identifier">Ptr</span><span class="special">,</span> <span class="identifier">U</span><span class="special">,</span> <span class="number">1u</span><span class="special">></span> <span class="special">{</span> +<span class="keyword">struct</span> <a class="link" href="pointer_rebinder__idm35074.html" title="Struct template pointer_rebinder<Ptr, U, 1u>">pointer_rebinder</a><span class="special"><</span><span class="identifier">Ptr</span><span class="special">,</span> <span class="identifier">U</span><span class="special">,</span> <span class="number">1u</span><span class="special">></span> <span class="special">{</span> <span class="comment">// types</span> - <span class="keyword">typedef</span> <span class="identifier">Ptr</span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">rebind</span><span class="special"><</span> <span class="identifier">U</span> <span class="special">></span> <a name="boost.intrusive.pointer__idm45971714048144.type"></a><span class="identifier">type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">Ptr</span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">rebind</span><span class="special"><</span> <span class="identifier">U</span> <span class="special">></span> <a name="boost.intrusive.pointer_rebinder__idm35074.type"></a><span class="identifier">type</span><span class="special">;</span> <span class="special">}</span><span class="special">;</span></pre></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="pointer_rebinder.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.pointer_rebind_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="pointer__idm45971714044480.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +<a accesskey="p" href="pointer_rebinder.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.pointer_rebind_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="pointer_rebinder__idm35084.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> </div> </body> </html> diff --git a/doc/html/boost/intrusive/pointer__idm45971714044480.html b/doc/html/boost/intrusive/pointer_rebinder__idm35084.html index 27e056e6a0..2138533312 100644 --- a/doc/html/boost/intrusive/pointer__idm45971714044480.html +++ b/doc/html/boost/intrusive/pointer_rebinder__idm35084.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.pointer_rebind_hpp" title="Header <boost/intrusive/pointer_rebind.hpp>"> -<link rel="prev" href="pointer__idm45971714048144.html" title="Struct template pointer_rebinder<Ptr, U, 1u>"> -<link rel="next" href="pointer__idm45971714040816.html" title="Struct template pointer_rebinder<Ptr< A >, U, 0u>"> +<link rel="prev" href="pointer_rebinder__idm35074.html" title="Struct template pointer_rebinder<Ptr, U, 1u>"> +<link rel="next" href="pointer_rebinder__idm35094.html" title="Struct template pointer_rebinder<Ptr< A >, U, 0u>"> +<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,34 +22,31 @@ </tr></table> <hr> <div class="spirit-nav"> -<a accesskey="p" href="pointer__idm45971714048144.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.pointer_rebind_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="pointer__idm45971714040816.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +<a accesskey="p" href="pointer_rebinder__idm35074.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.pointer_rebind_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="pointer_rebinder__idm35094.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> </div> <div class="refentry"> -<a name="boost.intrusive.pointer__idm45971714044480"></a><div class="titlepage"></div> +<a name="boost.intrusive.pointer_rebinder__idm35084"></a><div class="titlepage"></div> <div class="refnamediv"> <h2><span class="refentrytitle">Struct template pointer_rebinder<Ptr, U, 2u></span></h2> <p>boost::intrusive::pointer_rebinder<Ptr, U, 2u></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.pointer_rebind_hpp" title="Header <boost/intrusive/pointer_rebind.hpp>">boost/intrusive/pointer_rebind.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.pointer_rebind_hpp" title="Header <boost/intrusive/pointer_rebind.hpp>">boost/intrusive/pointer_rebind.hpp</a>> </span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Ptr<span class="special">,</span> <span class="keyword">typename</span> U<span class="special">></span> -<span class="keyword">struct</span> <a class="link" href="pointer__idm45971714044480.html" title="Struct template pointer_rebinder<Ptr, U, 2u>">pointer_rebinder</a><span class="special"><</span><span class="identifier">Ptr</span><span class="special">,</span> <span class="identifier">U</span><span class="special">,</span> <span class="number">2u</span><span class="special">></span> <span class="special">{</span> +<span class="keyword">struct</span> <a class="link" href="pointer_rebinder__idm35084.html" title="Struct template pointer_rebinder<Ptr, U, 2u>">pointer_rebinder</a><span class="special"><</span><span class="identifier">Ptr</span><span class="special">,</span> <span class="identifier">U</span><span class="special">,</span> <span class="number">2u</span><span class="special">></span> <span class="special">{</span> <span class="comment">// types</span> - <span class="keyword">typedef</span> <span class="identifier">Ptr</span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">rebind</span><span class="special"><</span> <span class="identifier">U</span> <span class="special">></span><span class="special">::</span><span class="identifier">other</span> <a name="boost.intrusive.pointer__idm45971714044480.type"></a><span class="identifier">type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">Ptr</span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">rebind</span><span class="special"><</span> <span class="identifier">U</span> <span class="special">></span><span class="special">::</span><span class="identifier">other</span> <a name="boost.intrusive.pointer_rebinder__idm35084.type"></a><span class="identifier">type</span><span class="special">;</span> <span class="special">}</span><span class="special">;</span></pre></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="pointer__idm45971714048144.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.pointer_rebind_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="pointer__idm45971714040816.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +<a accesskey="p" href="pointer_rebinder__idm35074.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.pointer_rebind_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="pointer_rebinder__idm35094.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> </div> </body> </html> diff --git a/doc/html/boost/intrusive/pointer__idm45971714040816.html b/doc/html/boost/intrusive/pointer_rebinder__idm35094.html index ad69173f29..c5110a971b 100644 --- a/doc/html/boost/intrusive/pointer__idm45971714040816.html +++ b/doc/html/boost/intrusive/pointer_rebinder__idm35094.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.pointer_rebind_hpp" title="Header <boost/intrusive/pointer_rebind.hpp>"> -<link rel="prev" href="pointer__idm45971714044480.html" title="Struct template pointer_rebinder<Ptr, U, 2u>"> -<link rel="next" href="pointer__idm45971714036320.html" title="Struct template pointer_rebinder<Ptr< A, An... >, U, 0u>"> +<link rel="prev" href="pointer_rebinder__idm35084.html" title="Struct template pointer_rebinder<Ptr, U, 2u>"> +<link rel="next" href="pointer_rebinder__idm35106.html" title="Struct template pointer_rebinder<Ptr< A, An... >, U, 0u>"> +<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,34 +22,31 @@ </tr></table> <hr> <div class="spirit-nav"> -<a accesskey="p" href="pointer__idm45971714044480.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.pointer_rebind_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="pointer__idm45971714036320.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +<a accesskey="p" href="pointer_rebinder__idm35084.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.pointer_rebind_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="pointer_rebinder__idm35106.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> </div> <div class="refentry"> -<a name="boost.intrusive.pointer__idm45971714040816"></a><div class="titlepage"></div> +<a name="boost.intrusive.pointer_rebinder__idm35094"></a><div class="titlepage"></div> <div class="refnamediv"> <h2><span class="refentrytitle">Struct template pointer_rebinder<Ptr< A >, U, 0u></span></h2> <p>boost::intrusive::pointer_rebinder<Ptr< A >, U, 0u></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.pointer_rebind_hpp" title="Header <boost/intrusive/pointer_rebind.hpp>">boost/intrusive/pointer_rebind.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.pointer_rebind_hpp" title="Header <boost/intrusive/pointer_rebind.hpp>">boost/intrusive/pointer_rebind.hpp</a>> </span><span class="keyword">template</span><span class="special"><</span><span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="special">></span> <span class="keyword">class</span> Ptr<span class="special">,</span> <span class="keyword">typename</span> A<span class="special">,</span> <span class="keyword">typename</span> U<span class="special">></span> -<span class="keyword">struct</span> <a class="link" href="pointer__idm45971714040816.html" title="Struct template pointer_rebinder<Ptr< A >, U, 0u>">pointer_rebinder</a><span class="special"><</span><span class="identifier">Ptr</span><span class="special"><</span> <span class="identifier">A</span> <span class="special">></span><span class="special">,</span> <span class="identifier">U</span><span class="special">,</span> <span class="number">0u</span><span class="special">></span> <span class="special">{</span> +<span class="keyword">struct</span> <a class="link" href="pointer_rebinder__idm35094.html" title="Struct template pointer_rebinder<Ptr< A >, U, 0u>">pointer_rebinder</a><span class="special"><</span><span class="identifier">Ptr</span><span class="special"><</span> <span class="identifier">A</span> <span class="special">></span><span class="special">,</span> <span class="identifier">U</span><span class="special">,</span> <span class="number">0u</span><span class="special">></span> <span class="special">{</span> <span class="comment">// types</span> - <span class="keyword">typedef</span> <span class="identifier">Ptr</span><span class="special"><</span> <span class="identifier">U</span> <span class="special">></span> <a name="boost.intrusive.pointer__idm45971714040816.type"></a><span class="identifier">type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">Ptr</span><span class="special"><</span> <span class="identifier">U</span> <span class="special">></span> <a name="boost.intrusive.pointer_rebinder__idm35094.type"></a><span class="identifier">type</span><span class="special">;</span> <span class="special">}</span><span class="special">;</span></pre></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="pointer__idm45971714044480.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.pointer_rebind_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="pointer__idm45971714036320.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +<a accesskey="p" href="pointer_rebinder__idm35084.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.pointer_rebind_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="pointer_rebinder__idm35106.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> </div> </body> </html> diff --git a/doc/html/boost/intrusive/pointer__idm45971714036320.html b/doc/html/boost/intrusive/pointer_rebinder__idm35106.html index 6eb55f2739..635366b27b 100644 --- a/doc/html/boost/intrusive/pointer__idm45971714036320.html +++ b/doc/html/boost/intrusive/pointer_rebinder__idm35106.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.pointer_rebind_hpp" title="Header <boost/intrusive/pointer_rebind.hpp>"> -<link rel="prev" href="pointer__idm45971714040816.html" title="Struct template pointer_rebinder<Ptr< A >, U, 0u>"> +<link rel="prev" href="pointer_rebinder__idm35094.html" title="Struct template pointer_rebinder<Ptr< A >, U, 0u>"> <link rel="next" href="pointer_traits.html" title="Struct template pointer_traits"> +<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,35 +22,32 @@ </tr></table> <hr> <div class="spirit-nav"> -<a accesskey="p" href="pointer__idm45971714040816.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.pointer_rebind_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="pointer_traits.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +<a accesskey="p" href="pointer_rebinder__idm35094.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.pointer_rebind_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="pointer_traits.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> </div> <div class="refentry"> -<a name="boost.intrusive.pointer__idm45971714036320"></a><div class="titlepage"></div> +<a name="boost.intrusive.pointer_rebinder__idm35106"></a><div class="titlepage"></div> <div class="refnamediv"> <h2><span class="refentrytitle">Struct template pointer_rebinder<Ptr< A, An... >, U, 0u></span></h2> <p>boost::intrusive::pointer_rebinder<Ptr< A, An... >, U, 0u></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.pointer_rebind_hpp" title="Header <boost/intrusive/pointer_rebind.hpp>">boost/intrusive/pointer_rebind.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.pointer_rebind_hpp" title="Header <boost/intrusive/pointer_rebind.hpp>">boost/intrusive/pointer_rebind.hpp</a>> </span><span class="keyword">template</span><span class="special"><</span><span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span><span class="special">,</span> <span class="keyword">class</span><span class="special">...</span> <span class="special">></span> <span class="keyword">class</span> Ptr<span class="special">,</span> <span class="keyword">typename</span> A<span class="special">,</span> <span class="keyword">class</span><span class="special">...</span> An<span class="special">,</span> <span class="keyword">typename</span> U<span class="special">></span> -<span class="keyword">struct</span> <a class="link" href="pointer__idm45971714036320.html" title="Struct template pointer_rebinder<Ptr< A, An... >, U, 0u>">pointer_rebinder</a><span class="special"><</span><span class="identifier">Ptr</span><span class="special"><</span> <span class="identifier">A</span><span class="special">,</span> <span class="identifier">An</span><span class="special">...</span> <span class="special">></span><span class="special">,</span> <span class="identifier">U</span><span class="special">,</span> <span class="number">0u</span><span class="special">></span> <span class="special">{</span> +<span class="keyword">struct</span> <a class="link" href="pointer_rebinder__idm35106.html" title="Struct template pointer_rebinder<Ptr< A, An... >, U, 0u>">pointer_rebinder</a><span class="special"><</span><span class="identifier">Ptr</span><span class="special"><</span> <span class="identifier">A</span><span class="special">,</span> <span class="identifier">An</span><span class="special">...</span> <span class="special">></span><span class="special">,</span> <span class="identifier">U</span><span class="special">,</span> <span class="number">0u</span><span class="special">></span> <span class="special">{</span> <span class="comment">// types</span> - <span class="keyword">typedef</span> <span class="identifier">Ptr</span><span class="special"><</span> <span class="identifier">U</span><span class="special">,</span> <span class="identifier">An</span><span class="special">...</span> <span class="special">></span> <a name="boost.intrusive.pointer__idm45971714036320.type"></a><span class="identifier">type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">Ptr</span><span class="special"><</span> <span class="identifier">U</span><span class="special">,</span> <span class="identifier">An</span><span class="special">...</span> <span class="special">></span> <a name="boost.intrusive.pointer_rebinder__idm35106.type"></a><span class="identifier">type</span><span class="special">;</span> <span class="special">}</span><span class="special">;</span></pre></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="pointer__idm45971714040816.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.pointer_rebind_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="pointer_traits.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +<a accesskey="p" href="pointer_rebinder__idm35094.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.pointer_rebind_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="pointer_traits.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> </div> </body> </html> diff --git a/doc/html/boost/intrusive/pointer_traits.html b/doc/html/boost/intrusive/pointer_traits.html index cc59c76f04..8258e1d4c2 100644 --- a/doc/html/boost/intrusive/pointer_traits.html +++ b/doc/html/boost/intrusive/pointer_traits.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.pointer_traits_hpp" title="Header <boost/intrusive/pointer_traits.hpp>"> -<link rel="prev" href="pointer__idm45971714036320.html" title="Struct template pointer_rebinder<Ptr< A, An... >, U, 0u>"> -<link rel="next" href="pointer__idm45971713987008.html" title="Struct template pointer_traits<T *>"> +<link rel="prev" href="pointer_rebinder__idm35106.html" title="Struct template pointer_rebinder<Ptr< A, An... >, U, 0u>"> +<link rel="next" href="pointer_traits_T_idm35219.html" title="Struct template pointer_traits<T *>"> +<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="pointer__idm45971714036320.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.pointer_traits_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="pointer__idm45971713987008.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +<a accesskey="p" href="pointer_rebinder__idm35106.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.pointer_traits_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="pointer_traits_T_idm35219.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> </div> <div class="refentry"> <a name="boost.intrusive.pointer_traits"></a><div class="titlepage"></div> @@ -29,8 +30,8 @@ <h2><span class="refentrytitle">Struct template pointer_traits</span></h2> <p>boost::intrusive::pointer_traits</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.pointer_traits_hpp" title="Header <boost/intrusive/pointer_traits.hpp>">boost/intrusive/pointer_traits.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.pointer_traits_hpp" title="Header <boost/intrusive/pointer_traits.hpp>">boost/intrusive/pointer_traits.hpp</a>> </span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Ptr<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="pointer_traits.html" title="Struct template pointer_traits">pointer_traits</a> <span class="special">{</span> @@ -41,22 +42,22 @@ <span class="keyword">typedef</span> <span class="identifier">unspecified</span> <a class="link" href="pointer_traits.html#boost.intrusive.pointer_traits.rebind"><span class="identifier">rebind</span></a><span class="special">;</span> <span class="keyword">typedef</span> <span class="identifier">unspecified_type</span> <a class="link" href="pointer_traits.html#boost.intrusive.pointer_traits.reference"><span class="identifier">reference</span></a><span class="special">;</span> - <span class="comment">// <a class="link" href="pointer_traits.html#idm45971714012640-bb">public static functions</a></span> - <span class="keyword">static</span> <span class="identifier">pointer</span> <a class="link" href="pointer_traits.html#idm45971714012080-bb"><span class="identifier">pointer_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="comment">// <a class="link" href="pointer_traits.html#idm35163-bb">public static functions</a></span> + <span class="keyword">static</span> <span class="identifier">pointer</span> <a class="link" href="pointer_traits.html#idm35164-bb"><span class="identifier">pointer_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">template</span><span class="special"><</span><span class="keyword">typename</span> UPtr<span class="special">></span> - <span class="keyword">static</span> <span class="identifier">pointer</span> <a class="link" href="pointer_traits.html#idm45971714006560-bb"><span class="identifier">static_cast_from</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">UPtr</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">pointer</span> <a class="link" href="pointer_traits.html#idm35176-bb"><span class="identifier">static_cast_from</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">UPtr</span> <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> UPtr<span class="special">></span> - <span class="keyword">static</span> <span class="identifier">pointer</span> <a class="link" href="pointer_traits.html#idm45971714000240-bb"><span class="identifier">const_cast_from</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">UPtr</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">pointer</span> <a class="link" href="pointer_traits.html#idm35190-bb"><span class="identifier">const_cast_from</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">UPtr</span> <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> UPtr<span class="special">></span> - <span class="keyword">static</span> <span class="identifier">pointer</span> <a class="link" href="pointer_traits.html#idm45971713993920-bb"><span class="identifier">dynamic_cast_from</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">UPtr</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">pointer</span> <a class="link" href="pointer_traits.html#idm35204-bb"><span class="identifier">dynamic_cast_from</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">UPtr</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</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.26.3.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.26.3.4"></a><h2>Description</h2> <p><a class="link" href="pointer_traits.html" title="Struct template pointer_traits">pointer_traits</a> is the implementation of C++11 std::pointer_traits class with some extensions like castings.</p> <p><a class="link" href="pointer_traits.html" title="Struct template pointer_traits">pointer_traits</a> supplies a uniform interface to certain attributes of pointer-like types.</p> <p><span class="bold"><strong>Note</strong></span>: When defining a custom family of pointers or references to be used with BI library, make sure the public static conversion functions accessed through the <code class="computeroutput"><a class="link" href="pointer_traits.html" title="Struct template pointer_traits">pointer_traits</a></code> interface (<code class="computeroutput">*_cast_from</code> and <code class="computeroutput">pointer_to</code>) can properly convert between const and nonconst referred member types <span class="bold"><strong>without the use of implicit constructor calls</strong></span>. It is suggested these conversions be implemented as function templates, where the template argument is the type of the object being converted from. </p> <div class="refsect2"> -<a name="id-1.3.20.42.26.3.4.5"></a><h3> +<a name="id-1.3.18.42.26.3.4.5"></a><h3> <a name="boost.intrusive.pointer_traitstypes"></a><code class="computeroutput">pointer_traits</code> public types</h3> @@ -92,32 +93,32 @@ </ol></div> </div> <div class="refsect2"> -<a name="id-1.3.20.42.26.3.4.6"></a><h3> -<a name="idm45971714012640-bb"></a><code class="computeroutput">pointer_traits</code> public static functions</h3> +<a name="id-1.3.18.42.26.3.4.6"></a><h3> +<a name="idm35163-bb"></a><code class="computeroutput">pointer_traits</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">pointer</span> <a name="idm45971714012080-bb"></a><span class="identifier">pointer_to</span><span class="special">(</span><span class="identifier">reference</span> r<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">pointer</span> <a name="idm35164-bb"></a><span class="identifier">pointer_to</span><span class="special">(</span><span class="identifier">reference</span> r<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Remark</strong></span>: If element_type is (possibly cv-qualified) void, r type is unspecified; otherwise, it is element_type &.</p> <p><span class="bold"><strong>Returns</strong></span>: A dereferenceable pointer to r obtained by calling Ptr::pointer_to(reference). Non-standard extension: If such function does not exist, returns pointer(addressof(r));</p> <p><span class="bold"><strong>Note</strong></span>: For non-conforming compilers only the existence of a member function called <code class="computeroutput">pointer_to</code> is checked. </p> </li> <li class="listitem"> <pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> UPtr<span class="special">></span> - <span class="keyword">static</span> <span class="identifier">pointer</span> <a name="idm45971714006560-bb"></a><span class="identifier">static_cast_from</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">UPtr</span> <span class="special">&</span> uptr<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> + <span class="keyword">static</span> <span class="identifier">pointer</span> <a name="idm35176-bb"></a><span class="identifier">static_cast_from</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">UPtr</span> <span class="special">&</span> uptr<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Remark</strong></span>: Non-standard extension.</p> <p><span class="bold"><strong>Returns</strong></span>: A dereferenceable pointer to r obtained by calling the static template function Ptr::static_cast_from(UPpr/const UPpr &). If such function does not exist, returns pointer_to(static_cast<element_type&>(*uptr))</p> <p><span class="bold"><strong>Note</strong></span>: For non-conforming compilers only the existence of a member function called <code class="computeroutput">static_cast_from</code> is checked. </p> </li> <li class="listitem"> <pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> UPtr<span class="special">></span> - <span class="keyword">static</span> <span class="identifier">pointer</span> <a name="idm45971714000240-bb"></a><span class="identifier">const_cast_from</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">UPtr</span> <span class="special">&</span> uptr<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> + <span class="keyword">static</span> <span class="identifier">pointer</span> <a name="idm35190-bb"></a><span class="identifier">const_cast_from</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">UPtr</span> <span class="special">&</span> uptr<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Remark</strong></span>: Non-standard extension.</p> <p><span class="bold"><strong>Returns</strong></span>: A dereferenceable pointer to r obtained by calling the static template function Ptr::const_cast_from<UPtr>(UPpr/const UPpr &). If such function does not exist, returns pointer_to(const_cast<element_type&>(*uptr))</p> <p><span class="bold"><strong>Note</strong></span>: For non-conforming compilers only the existence of a member function called <code class="computeroutput">const_cast_from</code> is checked. </p> </li> <li class="listitem"> <pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> UPtr<span class="special">></span> - <span class="keyword">static</span> <span class="identifier">pointer</span> <a name="idm45971713993920-bb"></a><span class="identifier">dynamic_cast_from</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">UPtr</span> <span class="special">&</span> uptr<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> + <span class="keyword">static</span> <span class="identifier">pointer</span> <a name="idm35204-bb"></a><span class="identifier">dynamic_cast_from</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">UPtr</span> <span class="special">&</span> uptr<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Remark</strong></span>: Non-standard extension.</p> <p><span class="bold"><strong>Returns</strong></span>: A dereferenceable pointer to r obtained by calling the static template function Ptr::dynamic_cast_from<UPtr>(UPpr/const UPpr &). If such function does not exist, returns pointer_to(<span class="emphasis"><em>dynamic_cast<element_type</em></span>>(&*uptr))</p> <p><span class="bold"><strong>Note</strong></span>: For non-conforming compilers only the existence of a member function called <code class="computeroutput">dynamic_cast_from</code> is checked. </p> @@ -126,17 +127,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="pointer__idm45971714036320.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.pointer_traits_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="pointer__idm45971713987008.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +<a accesskey="p" href="pointer_rebinder__idm35106.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.pointer_traits_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="pointer_traits_T_idm35219.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> </div> </body> </html> diff --git a/doc/html/boost/intrusive/pointer__idm45971713987008.html b/doc/html/boost/intrusive/pointer_traits_T_idm35219.html index 09d37a272c..a62fcb487a 100644 --- a/doc/html/boost/intrusive/pointer__idm45971713987008.html +++ b/doc/html/boost/intrusive/pointer_traits_T_idm35219.html @@ -8,7 +8,8 @@ <link rel="home" href="../../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset"> <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.pointer_traits_hpp" title="Header <boost/intrusive/pointer_traits.hpp>"> <link rel="prev" href="pointer_traits.html" title="Struct template pointer_traits"> -<link rel="next" href="pointer__idm45971713987008/rebind_pointer.html" title="Struct template rebind_pointer"> +<link rel="next" href="pointer_traits_T_idm35219/rebind_pointer.html" title="Struct template rebind_pointer"> +<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,50 +22,51 @@ </tr></table> <hr> <div class="spirit-nav"> -<a accesskey="p" href="pointer_traits.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.pointer_traits_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="pointer__idm45971713987008/rebind_pointer.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +<a accesskey="p" href="pointer_traits.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.pointer_traits_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="pointer_traits_T_idm35219/rebind_pointer.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> </div> <div class="refentry"> -<a name="boost.intrusive.pointer__idm45971713987008"></a><div class="titlepage"></div> +<a name="boost.intrusive.pointer_traits_T_idm35219"></a><div class="titlepage"></div> <div class="refnamediv"> <h2><span class="refentrytitle">Struct template pointer_traits<T *></span></h2> <p>boost::intrusive::pointer_traits<T *></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.pointer_traits_hpp" title="Header <boost/intrusive/pointer_traits.hpp>">boost/intrusive/pointer_traits.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.pointer_traits_hpp" title="Header <boost/intrusive/pointer_traits.hpp>">boost/intrusive/pointer_traits.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">struct</span> <a class="link" href="pointer__idm45971713987008.html" title="Struct template pointer_traits<T *>">pointer_traits</a><span class="special"><</span><span class="identifier">T</span> <span class="special">*</span><span class="special">></span> <span class="special">{</span> - <span class="comment">// <a class="link" href="pointer__idm45971713987008.html#boost.intrusive.pointer__idm45971713987008types">types</a></span> - <span class="keyword">typedef</span> <span class="identifier">T</span> <a name="boost.intrusive.pointer__idm45971713987008.element_type"></a><span class="identifier">element_type</span><span class="special">;</span> - <span class="keyword">typedef</span> <span class="identifier">T</span> <span class="special">*</span> <a name="boost.intrusive.pointer__idm45971713987008.pointer"></a><span class="identifier">pointer</span><span class="special">;</span> - <span class="keyword">typedef</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ptrdiff_t</span> <a name="boost.intrusive.pointer__idm45971713987008.difference_type"></a><span class="identifier">difference_type</span><span class="special">;</span> - <span class="keyword">typedef</span> <span class="identifier">T</span> <span class="special">&</span> <a name="boost.intrusive.pointer__idm45971713987008.reference"></a><span class="identifier">reference</span><span class="special">;</span> - <span class="keyword">typedef</span> <span class="identifier">U</span> <span class="special">*</span> <a class="link" href="pointer__idm45971713987008.html#boost.intrusive.pointer__idm45971713987008.rebind"><span class="identifier">rebind</span></a><span class="special">;</span> +<span class="keyword">struct</span> <a class="link" href="pointer_traits_T_idm35219.html" title="Struct template pointer_traits<T *>">pointer_traits</a><span class="special"><</span><span class="identifier">T</span> <span class="special">*</span><span class="special">></span> <span class="special">{</span> + <span class="comment">// <a class="link" href="pointer_traits_T_idm35219.html#boost.intrusive.pointer_traits_T_idm35219types">types</a></span> + <span class="keyword">typedef</span> <span class="identifier">T</span> <a name="boost.intrusive.pointer_traits_T_idm35219.element_type"></a><span class="identifier">element_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">T</span> <span class="special">*</span> <a name="boost.intrusive.pointer_traits_T_idm35219.pointer"></a><span class="identifier">pointer</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ptrdiff_t</span> <a name="boost.intrusive.pointer_traits_T_idm35219.difference_type"></a><span class="identifier">difference_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a name="boost.intrusive.pointer_traits_T_idm35219.size_type"></a><span class="identifier">size_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">T</span> <span class="special">&</span> <a name="boost.intrusive.pointer_traits_T_idm35219.reference"></a><span class="identifier">reference</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">U</span> <span class="special">*</span> <a class="link" href="pointer_traits_T_idm35219.html#boost.intrusive.pointer_traits_T_idm35219.rebind"><span class="identifier">rebind</span></a><span class="special">;</span> <span class="comment">// member classes/structs/unions</span> <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> U<span class="special">></span> - <span class="keyword">struct</span> <a class="link" href="pointer__idm45971713987008/rebind_pointer.html" title="Struct template rebind_pointer">rebind_pointer</a> <span class="special">{</span> + <span class="keyword">struct</span> <a class="link" href="pointer_traits_T_idm35219/rebind_pointer.html" title="Struct template rebind_pointer">rebind_pointer</a> <span class="special">{</span> <span class="comment">// types</span> - <span class="keyword">typedef</span> <span class="identifier">U</span> <span class="special">*</span> <a class="link" href="pointer__idm45971713987008/rebind_pointer.html#boost.intrusive.pointer__idm45971713987008.rebind_pointer.type"><span class="identifier">type</span></a><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">U</span> <span class="special">*</span> <a class="link" href="pointer_traits_T_idm35219/rebind_pointer.html#boost.intrusive.pointer_traits_T_idm35219.rebind_pointer.type"><span class="identifier">type</span></a><span class="special">;</span> <span class="special">}</span><span class="special">;</span> - <span class="comment">// <a class="link" href="pointer__idm45971713987008.html#idm45971713976352-bb">public static functions</a></span> - <span class="keyword">static</span> <span class="identifier">pointer</span> <a class="link" href="pointer__idm45971713987008.html#idm45971713975792-bb"><span class="identifier">pointer_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">template</span><span class="special"><</span><span class="keyword">typename</span> U<span class="special">></span> <span class="keyword">static</span> <span class="identifier">pointer</span> <a class="link" href="pointer__idm45971713987008.html#idm45971713972736-bb"><span class="identifier">static_cast_from</span></a><span class="special">(</span><span class="identifier">U</span> <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> U<span class="special">></span> <span class="keyword">static</span> <span class="identifier">pointer</span> <a class="link" href="pointer__idm45971713987008.html#idm45971713968816-bb"><span class="identifier">const_cast_from</span></a><span class="special">(</span><span class="identifier">U</span> <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> U<span class="special">></span> <span class="keyword">static</span> <span class="identifier">pointer</span> <a class="link" href="pointer__idm45971713987008.html#idm45971713964896-bb"><span class="identifier">dynamic_cast_from</span></a><span class="special">(</span><span class="identifier">U</span> <span class="special">*</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="comment">// <a class="link" href="pointer_traits_T_idm35219.html#idm35249-bb">public static functions</a></span> + <span class="keyword">static</span> <span class="identifier">pointer</span> <a class="link" href="pointer_traits_T_idm35219.html#idm35250-bb"><span class="identifier">pointer_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">template</span><span class="special"><</span><span class="keyword">typename</span> U<span class="special">></span> <span class="keyword">static</span> <span class="identifier">pointer</span> <a class="link" href="pointer_traits_T_idm35219.html#idm35257-bb"><span class="identifier">static_cast_from</span></a><span class="special">(</span><span class="identifier">U</span> <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> U<span class="special">></span> <span class="keyword">static</span> <span class="identifier">pointer</span> <a class="link" href="pointer_traits_T_idm35219.html#idm35266-bb"><span class="identifier">const_cast_from</span></a><span class="special">(</span><span class="identifier">U</span> <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> U<span class="special">></span> <span class="keyword">static</span> <span class="identifier">pointer</span> <a class="link" href="pointer_traits_T_idm35219.html#idm35275-bb"><span class="identifier">dynamic_cast_from</span></a><span class="special">(</span><span class="identifier">U</span> <span class="special">*</span><span class="special">)</span> <span class="keyword">noexcept</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.26.4.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.26.4.4"></a><h2>Description</h2> <p>Specialization of <a class="link" href="pointer_traits.html" title="Struct template pointer_traits">pointer_traits</a> for raw pointers </p> <div class="refsect2"> -<a name="id-1.3.20.42.26.4.4.3"></a><h3> -<a name="boost.intrusive.pointer__idm45971713987008types"></a><code class="computeroutput">pointer_traits</code> +<a name="id-1.3.18.42.26.4.4.3"></a><h3> +<a name="boost.intrusive.pointer_traits_T_idm35219types"></a><code class="computeroutput">pointer_traits</code> public types</h3> <div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"> <p> -<span class="keyword">typedef</span> <span class="identifier">U</span> <span class="special">*</span> <a name="boost.intrusive.pointer__idm45971713987008.rebind"></a><span class="identifier">rebind</span><span class="special">;</span></p> +<span class="keyword">typedef</span> <span class="identifier">U</span> <span class="special">*</span> <a name="boost.intrusive.pointer_traits_T_idm35219.rebind"></a><span class="identifier">rebind</span><span class="special">;</span></p> <pre class="programlisting"><span class="identifier">U</span> <span class="special">*</span></pre> <p>For portable code for C++03 and C++11, </p> <pre class="programlisting"><span class="keyword">typename</span> <span class="identifier">rebind_pointer</span><span class="special"><</span><span class="identifier">U</span><span class="special">></span><span class="special">::</span><span class="identifier">type</span></pre> @@ -72,40 +74,37 @@ </li></ol></div> </div> <div class="refsect2"> -<a name="id-1.3.20.42.26.4.4.4"></a><h3> -<a name="idm45971713976352-bb"></a><code class="computeroutput">pointer_traits</code> public static functions</h3> +<a name="id-1.3.18.42.26.4.4.4"></a><h3> +<a name="idm35249-bb"></a><code class="computeroutput">pointer_traits</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">pointer</span> <a name="idm45971713975792-bb"></a><span class="identifier">pointer_to</span><span class="special">(</span><span class="identifier">reference</span> r<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">pointer</span> <a name="idm35250-bb"></a><span class="identifier">pointer_to</span><span class="special">(</span><span class="identifier">reference</span> r<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Returns</strong></span>: addressof(r) </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> U<span class="special">></span> <span class="keyword">static</span> <span class="identifier">pointer</span> <a name="idm45971713972736-bb"></a><span class="identifier">static_cast_from</span><span class="special">(</span><span class="identifier">U</span> <span class="special">*</span> uptr<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> U<span class="special">></span> <span class="keyword">static</span> <span class="identifier">pointer</span> <a name="idm35257-bb"></a><span class="identifier">static_cast_from</span><span class="special">(</span><span class="identifier">U</span> <span class="special">*</span> uptr<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Returns</strong></span>: static_cast<pointer>(uptr) </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> U<span class="special">></span> <span class="keyword">static</span> <span class="identifier">pointer</span> <a name="idm45971713968816-bb"></a><span class="identifier">const_cast_from</span><span class="special">(</span><span class="identifier">U</span> <span class="special">*</span> uptr<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> U<span class="special">></span> <span class="keyword">static</span> <span class="identifier">pointer</span> <a name="idm35266-bb"></a><span class="identifier">const_cast_from</span><span class="special">(</span><span class="identifier">U</span> <span class="special">*</span> uptr<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Returns</strong></span>: const_cast<pointer>(uptr) </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> U<span class="special">></span> <span class="keyword">static</span> <span class="identifier">pointer</span> <a name="idm45971713964896-bb"></a><span class="identifier">dynamic_cast_from</span><span class="special">(</span><span class="identifier">U</span> <span class="special">*</span> uptr<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> U<span class="special">></span> <span class="keyword">static</span> <span class="identifier">pointer</span> <a name="idm35275-bb"></a><span class="identifier">dynamic_cast_from</span><span class="special">(</span><span class="identifier">U</span> <span class="special">*</span> uptr<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Returns</strong></span>: dynamic_cast<pointer>(uptr) </p> </li> </ol></div> </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="pointer_traits.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.pointer_traits_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="pointer__idm45971713987008/rebind_pointer.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +<a accesskey="p" href="pointer_traits.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.pointer_traits_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="pointer_traits_T_idm35219/rebind_pointer.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> </div> </body> </html> diff --git a/doc/html/boost/intrusive/pointer__idm45971713987008/rebind_pointer.html b/doc/html/boost/intrusive/pointer_traits_T_idm35219/rebind_pointer.html index be41bb07fd..7a9aa9283c 100644 --- a/doc/html/boost/intrusive/pointer__idm45971713987008/rebind_pointer.html +++ b/doc/html/boost/intrusive/pointer_traits_T_idm35219/rebind_pointer.html @@ -6,9 +6,10 @@ <link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css"> <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="../pointer__idm45971713987008.html#id-1.3.20.42.26.4.4" title="Description"> -<link rel="prev" href="../pointer__idm45971713987008.html" title="Struct template pointer_traits<T *>"> +<link rel="up" href="../pointer_traits_T_idm35219.html#id-1.3.18.42.26.4.4" title="Description"> +<link rel="prev" href="../pointer_traits_T_idm35219.html" title="Struct template pointer_traits<T *>"> <link rel="next" href="../priority_compare.html" title="Struct template priority_compare"> +<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,35 +22,32 @@ </tr></table> <hr> <div class="spirit-nav"> -<a accesskey="p" href="../pointer__idm45971713987008.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../pointer__idm45971713987008.html#id-1.3.20.42.26.4.4"><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="../priority_compare.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a> +<a accesskey="p" href="../pointer_traits_T_idm35219.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../pointer_traits_T_idm35219.html#id-1.3.18.42.26.4.4"><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="../priority_compare.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a> </div> <div class="refentry"> -<a name="boost.intrusive.pointer__idm45971713987008.rebind_pointer"></a><div class="titlepage"></div> +<a name="boost.intrusive.pointer_traits_T_idm35219.rebind_pointer"></a><div class="titlepage"></div> <div class="refnamediv"> <h2><span class="refentrytitle">Struct template rebind_pointer</span></h2> <p>boost::intrusive::pointer_traits<T *>::rebind_pointer</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.pointer_traits_hpp" title="Header <boost/intrusive/pointer_traits.hpp>">boost/intrusive/pointer_traits.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.pointer_traits_hpp" title="Header <boost/intrusive/pointer_traits.hpp>">boost/intrusive/pointer_traits.hpp</a>> </span> <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> U<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="rebind_pointer.html" title="Struct template rebind_pointer">rebind_pointer</a> <span class="special">{</span> <span class="comment">// types</span> - <span class="keyword">typedef</span> <span class="identifier">U</span> <span class="special">*</span> <a name="boost.intrusive.pointer__idm45971713987008.rebind_pointer.type"></a><span class="identifier">type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">U</span> <span class="special">*</span> <a name="boost.intrusive.pointer_traits_T_idm35219.rebind_pointer.type"></a><span class="identifier">type</span><span class="special">;</span> <span class="special">}</span><span class="special">;</span></pre></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="../pointer__idm45971713987008.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../pointer__idm45971713987008.html#id-1.3.20.42.26.4.4"><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="../priority_compare.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a> +<a accesskey="p" href="../pointer_traits_T_idm35219.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../pointer_traits_T_idm35219.html#id-1.3.18.42.26.4.4"><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="../priority_compare.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a> </div> </body> </html> diff --git a/doc/html/boost/intrusive/power_2_buckets.html b/doc/html/boost/intrusive/power_2_buckets.html index 153c492884..0062395ff2 100644 --- a/doc/html/boost/intrusive/power_2_buckets.html +++ b/doc/html/boost/intrusive/power_2_buckets.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.options_hpp" title="Header <boost/intrusive/options.hpp>"> <link rel="prev" href="optimize_size.html" title="Struct template optimize_size"> <link rel="next" href="priority.html" title="Struct template priority"> +<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> @@ -29,25 +30,22 @@ <h2><span class="refentrytitle">Struct template power_2_buckets</span></h2> <p>boost::intrusive::power_2_buckets</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.options_hpp" title="Header <boost/intrusive/options.hpp>">boost/intrusive/options.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.options_hpp" title="Header <boost/intrusive/options.hpp>">boost/intrusive/options.hpp</a>> </span><span class="keyword">template</span><span class="special"><</span><span class="keyword">bool</span> Enabled<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="power_2_buckets.html" title="Struct template power_2_buckets">power_2_buckets</a> <span class="special">{</span> <span class="special">}</span><span class="special">;</span></pre></div> <div class="refsect1"> -<a name="id-1.3.20.42.21.22.4"></a><h2>Description</h2> -<p>This option setter specifies if the bucket array will be always power of two. This allows using masks instead of the default modulo operation to determine the bucket number from the hash value, leading to better performance. In debug mode, if power of two buckets mode is activated, the bucket length will be checked with assertions. </p> +<a name="id-1.3.18.42.21.24.4"></a><h2>Description</h2> +<p>This option setter specifies if the length of the bucket array provided by the user will always be power of two. This allows using masks instead of the default modulo operation to determine the bucket number from the hash value, leading to better performance. In debug mode, the provided bucket array length will be checked with assertions. </p> </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="optimize_size.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.options_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="priority.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/priority.html b/doc/html/boost/intrusive/priority.html index ccdafd71a6..cb52cfa9f2 100644 --- a/doc/html/boost/intrusive/priority.html +++ b/doc/html/boost/intrusive/priority.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.options_hpp" title="Header <boost/intrusive/options.hpp>"> <link rel="prev" href="power_2_buckets.html" title="Struct template power_2_buckets"> <link rel="next" href="priority_of_value.html" title="Struct template priority_of_value"> +<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> @@ -29,25 +30,22 @@ <h2><span class="refentrytitle">Struct template priority</span></h2> <p>boost::intrusive::priority</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.options_hpp" title="Header <boost/intrusive/options.hpp>">boost/intrusive/options.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.options_hpp" title="Header <boost/intrusive/options.hpp>">boost/intrusive/options.hpp</a>> </span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Priority<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="priority.html" title="Struct template priority">priority</a> <span class="special">{</span> <span class="special">}</span><span class="special">;</span></pre></div> <div class="refsect1"> -<a name="id-1.3.20.42.21.23.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.21.25.4"></a><h2>Description</h2> <p>This option setter specifies the priority comparison functor for the value type </p> </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="power_2_buckets.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.options_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="priority_of_value.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/priority_compare.html b/doc/html/boost/intrusive/priority_compare.html index 6f9b8d28f7..2b8ce198af 100644 --- a/doc/html/boost/intrusive/priority_compare.html +++ b/doc/html/boost/intrusive/priority_compare.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.priority_compare_hpp" title="Header <boost/intrusive/priority_compare.hpp>"> -<link rel="prev" href="pointer__idm45971713987008/rebind_pointer.html" title="Struct template rebind_pointer"> -<link rel="next" href="priority_idm45971713951152.html" title="Struct priority_compare<void>"> +<link rel="prev" href="pointer_traits_T_idm35219/rebind_pointer.html" title="Struct template rebind_pointer"> +<link rel="next" href="priority_compare__idm35304.html" title="Struct priority_compare<void>"> +<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="pointer__idm45971713987008/rebind_pointer.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.priority_compare_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="priority_idm45971713951152.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +<a accesskey="p" href="pointer_traits_T_idm35219/rebind_pointer.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.priority_compare_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="priority_compare__idm35304.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> </div> <div class="refentry"> <a name="boost.intrusive.priority_compare"></a><div class="titlepage"></div> @@ -29,8 +30,8 @@ <h2><span class="refentrytitle">Struct template priority_compare</span></h2> <p>boost::intrusive::priority_compare</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.priority_compare_hpp" title="Header <boost/intrusive/priority_compare.hpp>">boost/intrusive/priority_compare.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.priority_compare_hpp" title="Header <boost/intrusive/priority_compare.hpp>">boost/intrusive/priority_compare.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">void</span><span class="special">></span> <span class="keyword">struct</span> <a class="link" href="priority_compare.html" title="Struct template priority_compare">priority_compare</a> <span class="special">{</span> @@ -39,29 +40,26 @@ <span class="keyword">typedef</span> <span class="identifier">T</span> <a name="boost.intrusive.priority_compare.second_argument_type"></a><span class="identifier">second_argument_type</span><span class="special">;</span> <span class="keyword">typedef</span> <span class="keyword">bool</span> <a name="boost.intrusive.priority_compare.result_type"></a><span class="identifier">result_type</span><span class="special">;</span> - <span class="comment">// <a class="link" href="priority_compare.html#idm45971713954368-bb">public member functions</a></span> - <span class="keyword">bool</span> <a class="link" href="priority_compare.html#idm45971713953808-bb"><span class="keyword">operator</span><span class="special">(</span><span class="special">)</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">T</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="comment">// <a class="link" href="priority_compare.html#idm35297-bb">public member functions</a></span> + <span class="keyword">bool</span> <a class="link" href="priority_compare.html#idm35298-bb"><span class="keyword">operator</span><span class="special">(</span><span class="special">)</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">T</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">const</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.27.3.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.27.3.4"></a><h2>Description</h2> <div class="refsect2"> -<a name="id-1.3.20.42.27.3.4.2"></a><h3> -<a name="idm45971713954368-bb"></a><code class="computeroutput">priority_compare</code> public member functions</h3> -<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><pre class="literallayout"><span class="keyword">bool</span> <a name="idm45971713953808-bb"></a><span class="keyword">operator</span><span class="special">(</span><span class="special">)</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span> <span class="special">&</span> val<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">T</span> <span class="special">&</span> val2<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li></ol></div> +<a name="id-1.3.18.42.27.3.4.2"></a><h3> +<a name="idm35297-bb"></a><code class="computeroutput">priority_compare</code> public member functions</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><pre class="literallayout"><span class="keyword">bool</span> <a name="idm35298-bb"></a><span class="keyword">operator</span><span class="special">(</span><span class="special">)</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span> <span class="special">&</span> val<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">T</span> <span class="special">&</span> val2<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li></ol></div> </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="pointer__idm45971713987008/rebind_pointer.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.priority_compare_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="priority_idm45971713951152.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +<a accesskey="p" href="pointer_traits_T_idm35219/rebind_pointer.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.priority_compare_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="priority_compare__idm35304.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> </div> </body> </html> diff --git a/doc/html/boost/intrusive/priority_idm45971713951152.html b/doc/html/boost/intrusive/priority_compare__idm35304.html index 839e267317..22272bea0a 100644 --- a/doc/html/boost/intrusive/priority_idm45971713951152.html +++ b/doc/html/boost/intrusive/priority_compare__idm35304.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.priority_compare_hpp" title="Header <boost/intrusive/priority_compare.hpp>"> <link rel="prev" href="priority_compare.html" title="Struct template priority_compare"> <link rel="next" href="make_rbtree.html" title="Struct template make_rbtree"> +<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> @@ -24,38 +25,35 @@ <a accesskey="p" href="priority_compare.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.priority_compare_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_rbtree.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> </div> <div class="refentry"> -<a name="boost.intrusive.priority_idm45971713951152"></a><div class="titlepage"></div> +<a name="boost.intrusive.priority_compare__idm35304"></a><div class="titlepage"></div> <div class="refnamediv"> <h2><span class="refentrytitle">Struct priority_compare<void></span></h2> <p>boost::intrusive::priority_compare<void></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.priority_compare_hpp" title="Header <boost/intrusive/priority_compare.hpp>">boost/intrusive/priority_compare.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.priority_compare_hpp" title="Header <boost/intrusive/priority_compare.hpp>">boost/intrusive/priority_compare.hpp</a>> </span> -<span class="keyword">struct</span> <a class="link" href="priority_idm45971713951152.html" title="Struct priority_compare<void>">priority_compare</a><span class="special"><</span><span class="keyword">void</span><span class="special">></span> <span class="special">{</span> +<span class="keyword">struct</span> <a class="link" href="priority_compare__idm35304.html" title="Struct priority_compare<void>">priority_compare</a><span class="special"><</span><span class="keyword">void</span><span class="special">></span> <span class="special">{</span> - <span class="comment">// <a class="link" href="priority_idm45971713951152.html#idm45971713950048-bb">public member functions</a></span> - <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T<span class="special">,</span> <span class="keyword">typename</span> U<span class="special">></span> <span class="keyword">bool</span> <a class="link" href="priority_idm45971713951152.html#idm45971713949488-bb"><span class="keyword">operator</span><span class="special">(</span><span class="special">)</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">U</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="comment">// <a class="link" href="priority_compare__idm35304.html#idm35308-bb">public member functions</a></span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T<span class="special">,</span> <span class="keyword">typename</span> U<span class="special">></span> <span class="keyword">bool</span> <a class="link" href="priority_compare__idm35304.html#idm35309-bb"><span class="keyword">operator</span><span class="special">(</span><span class="special">)</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">U</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">const</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.27.4.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.27.4.4"></a><h2>Description</h2> <div class="refsect2"> -<a name="id-1.3.20.42.27.4.4.2"></a><h3> -<a name="idm45971713950048-bb"></a><code class="computeroutput">priority_compare</code> public member functions</h3> +<a name="id-1.3.18.42.27.4.4.2"></a><h3> +<a name="idm35308-bb"></a><code class="computeroutput">priority_compare</code> public member functions</h3> <div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T<span class="special">,</span> <span class="keyword">typename</span> U<span class="special">></span> - <span class="keyword">bool</span> <a name="idm45971713949488-bb"></a><span class="keyword">operator</span><span class="special">(</span><span class="special">)</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span> <span class="special">&</span> t<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">U</span> <span class="special">&</span> u<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li></ol></div> + <span class="keyword">bool</span> <a name="idm35309-bb"></a><span class="keyword">operator</span><span class="special">(</span><span class="special">)</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span> <span class="special">&</span> t<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">U</span> <span class="special">&</span> u<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li></ol></div> </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="priority_compare.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.priority_compare_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_rbtree.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/priority_of_value.html b/doc/html/boost/intrusive/priority_of_value.html index 4f6d821748..53cfab9914 100644 --- a/doc/html/boost/intrusive/priority_of_value.html +++ b/doc/html/boost/intrusive/priority_of_value.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.options_hpp" title="Header <boost/intrusive/options.hpp>"> <link rel="prev" href="priority.html" title="Struct template priority"> <link rel="next" href="size_type.html" title="Struct template size_type"> +<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> @@ -29,26 +30,23 @@ <h2><span class="refentrytitle">Struct template priority_of_value</span></h2> <p>boost::intrusive::priority_of_value</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.options_hpp" title="Header <boost/intrusive/options.hpp>">boost/intrusive/options.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.options_hpp" title="Header <boost/intrusive/options.hpp>">boost/intrusive/options.hpp</a>> </span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> PrioOfValue<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="priority_of_value.html" title="Struct template priority_of_value">priority_of_value</a> <span class="special">{</span> <span class="special">}</span><span class="special">;</span></pre></div> <div class="refsect1"> -<a name="id-1.3.20.42.21.24.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.21.26.4"></a><h2>Description</h2> <p>This option setter specifies a function object that specifies the type of the priority of a treap container and an operator to obtain it from a value type.</p> <p>This function object must the define a <code class="computeroutput">type</code> member typedef and a member with signature <code class="computeroutput">type [const&] operator()(const value_type &) const</code> that will return the priority from a value_type of a treap container </p> </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="priority.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.options_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="size_type.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/rbtree.html b/doc/html/boost/intrusive/rbtree.html index 04693006fa..d4fb2e02ff 100644 --- a/doc/html/boost/intrusive/rbtree.html +++ b/doc/html/boost/intrusive/rbtree.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.rbtree_hpp" title="Header <boost/intrusive/rbtree.hpp>"> <link rel="prev" href="make_rbtree.html" title="Struct template make_rbtree"> <link rel="next" href="rbtree_algorithms.html" title="Class template rbtree_algorithms"> +<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> @@ -29,8 +30,8 @@ <h2><span class="refentrytitle">Class template rbtree</span></h2> <p>boost::intrusive::rbtree</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.rbtree_hpp" title="Header <boost/intrusive/rbtree.hpp>">boost/intrusive/rbtree.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.rbtree_hpp" title="Header <boost/intrusive/rbtree.hpp>">boost/intrusive/rbtree.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="rbtree.html" title="Class template rbtree">rbtree</a> <span class="special">{</span> @@ -60,540 +61,428 @@ <span class="keyword">typedef</span> <span class="identifier">implementation_defined</span><span class="special">::</span><span class="identifier">insert_commit_data</span> <a name="boost.intrusive.rbtree.insert_commit_data"></a><span class="identifier">insert_commit_data</span><span class="special">;</span> <span class="comment">// <a class="link" href="rbtree.html#boost.intrusive.rbtreeconstruct-copy-destruct">construct/copy/destruct</a></span> - <a class="link" href="rbtree.html#idm45971713396736-bb"><span class="identifier">rbtree</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">explicit</span> <a class="link" href="rbtree.html#idm45971713393584-bb"><span class="identifier">rbtree</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_compare</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="rbtree.html#idm36298-bb"><span class="identifier">rbtree</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">explicit</span> <a class="link" href="rbtree.html#idm36306-bb"><span class="identifier">rbtree</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_compare</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="rbtree.html#idm45971713388464-bb"><span class="identifier">rbtree</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> <span class="identifier">key_compare</span> <span class="special">&</span> <span class="special">=</span> <span class="identifier">key_compare</span><span class="special">(</span><span class="special">)</span><span class="special">,</span> + <a class="link" href="rbtree.html#idm36312-bb"><span class="identifier">rbtree</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> <span class="identifier">key_compare</span> <span class="special">&</span> <span class="special">=</span> <span class="identifier">key_compare</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="rbtree.html#idm45971713379312-bb"><span class="identifier">rbtree</span></a><span class="special">(</span><a class="link" href="rbtree.html" title="Class template rbtree">rbtree</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> - <a class="link" href="rbtree.html" title="Class template rbtree">rbtree</a> <span class="special">&</span> <a class="link" href="rbtree.html#idm45971713375008-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><a class="link" href="rbtree.html" title="Class template rbtree">rbtree</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> - <a class="link" href="rbtree.html#idm45971713372192-bb"><span class="special">~</span><span class="identifier">rbtree</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="rbtree.html#idm36327-bb"><span class="identifier">rbtree</span></a><span class="special">(</span><a class="link" href="rbtree.html" title="Class template rbtree">rbtree</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="rbtree.html" title="Class template rbtree">rbtree</a> <span class="special">&</span> <a class="link" href="rbtree.html#idm36338-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><a class="link" href="rbtree.html" title="Class template rbtree">rbtree</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="rbtree.html#idm36347-bb"><span class="special">~</span><span class="identifier">rbtree</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> - <span class="comment">// <a class="link" href="rbtree.html#idm45971713913280-bb">public member functions</a></span> - <span class="identifier">iterator</span> <a class="link" href="rbtree.html#idm45971713912720-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="rbtree.html#idm45971713908880-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="rbtree.html#idm45971713905040-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="rbtree.html#idm45971713901200-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="rbtree.html#idm45971713897360-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="rbtree.html#idm45971713893520-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">reverse_iterator</span> <a class="link" href="rbtree.html#idm45971713889680-bb"><span class="identifier">rbegin</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="identifier">const_reverse_iterator</span> <a class="link" href="rbtree.html#idm45971713885824-bb"><span class="identifier">rbegin</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_reverse_iterator</span> <a class="link" href="rbtree.html#idm45971713881968-bb"><span class="identifier">crbegin</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">reverse_iterator</span> <a class="link" href="rbtree.html#idm45971713878112-bb"><span class="identifier">rend</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="identifier">const_reverse_iterator</span> <a class="link" href="rbtree.html#idm45971713874256-bb"><span class="identifier">rend</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_reverse_iterator</span> <a class="link" href="rbtree.html#idm45971713870400-bb"><span class="identifier">crend</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="rbtree.html#idm45971713866544-bb"><span class="identifier">root</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="rbtree.html#idm45971713862672-bb"><span class="identifier">root</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="rbtree.html#idm45971713858800-bb"><span class="identifier">croot</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">key_compare</span> <a class="link" href="rbtree.html#idm45971713854928-bb"><span class="identifier">key_comp</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">value_compare</span> <a class="link" href="rbtree.html#idm45971713851072-bb"><span class="identifier">value_comp</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="rbtree.html#idm45971713847200-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="rbtree.html#idm45971713843376-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="rbtree.html#idm45971713839440-bb"><span class="identifier">swap</span></a><span class="special">(</span><a class="link" href="rbtree.html" title="Class template rbtree">rbtree</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="comment">// <a class="link" href="rbtree.html#idm35391-bb">public member functions</a></span> + <span class="identifier">iterator</span> <a class="link" href="rbtree.html#idm35392-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="rbtree.html#idm35401-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="rbtree.html#idm35410-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="rbtree.html#idm35419-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="rbtree.html#idm35428-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="rbtree.html#idm35437-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">reverse_iterator</span> <a class="link" href="rbtree.html#idm35446-bb"><span class="identifier">rbegin</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">const_reverse_iterator</span> <a class="link" href="rbtree.html#idm35455-bb"><span class="identifier">rbegin</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_reverse_iterator</span> <a class="link" href="rbtree.html#idm35464-bb"><span class="identifier">crbegin</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">reverse_iterator</span> <a class="link" href="rbtree.html#idm35473-bb"><span class="identifier">rend</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">const_reverse_iterator</span> <a class="link" href="rbtree.html#idm35482-bb"><span class="identifier">rend</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_reverse_iterator</span> <a class="link" href="rbtree.html#idm35491-bb"><span class="identifier">crend</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="rbtree.html#idm35500-bb"><span class="identifier">root</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="rbtree.html#idm35509-bb"><span class="identifier">root</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="rbtree.html#idm35518-bb"><span class="identifier">croot</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">key_compare</span> <a class="link" href="rbtree.html#idm35527-bb"><span class="identifier">key_comp</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">value_compare</span> <a class="link" href="rbtree.html#idm35536-bb"><span class="identifier">value_comp</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="rbtree.html#idm35545-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="rbtree.html#idm35554-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="rbtree.html#idm35563-bb"><span class="identifier">swap</span></a><span class="special">(</span><a class="link" href="rbtree.html" title="Class template rbtree">rbtree</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="rbtree.html#idm45971713834896-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="rbtree.html" title="Class template rbtree">rbtree</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="rbtree.html#idm35575-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="rbtree.html" title="Class template rbtree">rbtree</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="rbtree.html#idm45971713825840-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><a class="link" href="rbtree.html" title="Class template rbtree">rbtree</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="rbtree.html#idm35597-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><a class="link" href="rbtree.html" title="Class template rbtree">rbtree</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="rbtree.html#idm45971713816032-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><a class="link" href="rbtree.html" title="Class template rbtree">rbtree</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="rbtree.html#idm45971713806224-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="identifier">iterator</span> <a class="link" href="rbtree.html#idm45971713800064-bb"><span class="identifier">insert_equal</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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="rbtree.html#idm45971713793040-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="rbtree.html#idm45971713785200-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="identifier">iterator</span> <a class="link" href="rbtree.html#idm45971713779056-bb"><span class="identifier">insert_unique</span></a><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">,</span> <span class="identifier">reference</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="rbtree.html#idm35621-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><a class="link" href="rbtree.html" title="Class template rbtree">rbtree</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="rbtree.html#idm35645-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="identifier">iterator</span> <a class="link" href="rbtree.html#idm35649-bb"><span class="identifier">insert_equal</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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="rbtree.html#idm35655-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="rbtree.html#idm35674-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="identifier">iterator</span> <a class="link" href="rbtree.html#idm35678-bb"><span class="identifier">insert_unique</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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> KeyType<span class="special">,</span> <span class="keyword">typename</span> KeyTypeKeyCompare<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="rbtree.html#idm45971713772096-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">KeyTypeKeyCompare</span><span class="special">,</span> + <a class="link" href="rbtree.html#idm35684-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">KeyTypeKeyCompare</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="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> KeyType<span class="special">,</span> <span class="keyword">typename</span> KeyTypeKeyCompare<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="rbtree.html#idm45971713760688-bb"><span class="identifier">insert_unique_check</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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">KeyTypeKeyCompare</span><span class="special">,</span> + <a class="link" href="rbtree.html#idm35695-bb"><span class="identifier">insert_unique_check</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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">KeyTypeKeyCompare</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="rbtree.html#idm45971713748496-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> + <a class="link" href="rbtree.html#idm35708-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">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="rbtree.html#idm45971713742304-bb"><span class="identifier">insert_unique_check</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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="rbtree.html#idm45971713735328-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">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="rbtree.html#idm45971713727024-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="identifier">iterator</span> <a class="link" href="rbtree.html#idm45971713719232-bb"><span class="identifier">insert_before</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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">void</span> <a class="link" href="rbtree.html#idm45971713712000-bb"><span class="identifier">push_back</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">void</span> <a class="link" href="rbtree.html#idm45971713705440-bb"><span class="identifier">push_front</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">iterator</span> <a class="link" href="rbtree.html#idm45971713698880-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="identifier">iterator</span> <a class="link" href="rbtree.html#idm45971713693392-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="rbtree.html#idm45971713687152-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="rbtree.html#idm35714-bb"><span class="identifier">insert_unique_check</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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="rbtree.html#idm35722-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">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="rbtree.html#idm35741-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="identifier">iterator</span> <a class="link" href="rbtree.html#idm35760-bb"><span class="identifier">insert_before</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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">void</span> <a class="link" href="rbtree.html#idm35777-bb"><span class="identifier">push_back</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">void</span> <a class="link" href="rbtree.html#idm35792-bb"><span class="identifier">push_front</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">iterator</span> <a class="link" href="rbtree.html#idm35807-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="identifier">iterator</span> <a class="link" href="rbtree.html#idm35811-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="rbtree.html#idm35817-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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">size_type</span> <a class="link" href="rbtree.html#idm45971713681104-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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">size_type</span> <a class="link" href="rbtree.html#idm35821-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">KeyTypeKeyCompare</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="identifier">iterator</span> <a class="link" href="rbtree.html#idm45971713671008-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="identifier">iterator</span> <a class="link" href="rbtree.html#idm35845-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="identifier">iterator</span> <a class="link" href="rbtree.html#idm45971713663104-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="identifier">iterator</span> <a class="link" href="rbtree.html#idm35853-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="rbtree.html#idm45971713654448-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="rbtree.html#idm35863-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> KeyTypeKeyCompare<span class="special">,</span> <span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="identifier">size_type</span> <a class="link" href="rbtree.html#idm45971713645920-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">KeyTypeKeyCompare</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="rbtree.html#idm45971713633696-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="rbtree.html#idm45971713628832-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="rbtree.html#idm45971713622528-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="identifier">size_type</span> <a class="link" href="rbtree.html#idm35871-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">KeyTypeKeyCompare</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="rbtree.html#idm35900-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="rbtree.html#idm35911-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="rbtree.html#idm35925-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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">size_type</span> <a class="link" href="rbtree.html#idm45971713617456-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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="rbtree.html#idm45971713608400-bb"><span class="identifier">lower_bound</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="rbtree.html#idm35929-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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="rbtree.html#idm35950-bb"><span class="identifier">lower_bound</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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a class="link" href="rbtree.html#idm45971713603648-bb"><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> - <span class="identifier">const_iterator</span> <a class="link" href="rbtree.html#idm45971713596800-bb"><span class="identifier">lower_bound</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="rbtree.html#idm35954-bb"><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">const_iterator</span> <a class="link" href="rbtree.html#idm35963-bb"><span class="identifier">lower_bound</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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">const_iterator</span> <a class="link" href="rbtree.html#idm45971713591776-bb"><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="rbtree.html#idm45971713584656-bb"><span class="identifier">upper_bound</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="rbtree.html#idm35967-bb"><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="rbtree.html#idm35976-bb"><span class="identifier">upper_bound</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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a class="link" href="rbtree.html#idm45971713579904-bb"><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> - <span class="identifier">const_iterator</span> <a class="link" href="rbtree.html#idm45971713571200-bb"><span class="identifier">upper_bound</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="rbtree.html#idm35980-bb"><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">const_iterator</span> <a class="link" href="rbtree.html#idm36001-bb"><span class="identifier">upper_bound</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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">const_iterator</span> <a class="link" href="rbtree.html#idm45971713566176-bb"><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="rbtree.html#idm45971713557200-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">const_iterator</span> <a class="link" href="rbtree.html#idm36005-bb"><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="rbtree.html#idm36026-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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a class="link" href="rbtree.html#idm45971713552464-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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> - <span class="identifier">const_iterator</span> <a class="link" href="rbtree.html#idm45971713543728-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="rbtree.html#idm36030-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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">const_iterator</span> <a class="link" href="rbtree.html#idm36051-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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">const_iterator</span> <a class="link" href="rbtree.html#idm45971713538720-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">KeyTypeKeyCompare</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="rbtree.html#idm45971713529712-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="rbtree.html#idm36055-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">KeyTypeKeyCompare</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="rbtree.html#idm36076-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> KeyTypeKeyCompare<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="rbtree.html#idm45971713524880-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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="rbtree.html#idm36080-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">KeyTypeKeyCompare</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="rbtree.html#idm45971713516048-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="rbtree.html#idm36101-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> KeyTypeKeyCompare<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="rbtree.html#idm45971713510928-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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <a class="link" href="rbtree.html#idm36105-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">KeyTypeKeyCompare</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="rbtree.html#idm45971713501808-bb"><span class="identifier">bounded_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="identifier">key_type</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="rbtree.html#idm36126-bb"><span class="identifier">bounded_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="identifier">key_type</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</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> KeyTypeKeyCompare<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="rbtree.html#idm45971713489376-bb"><span class="identifier">bounded_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="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> + <a class="link" href="rbtree.html#idm36136-bb"><span class="identifier">bounded_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="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</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="rbtree.html#idm45971713472576-bb"><span class="identifier">bounded_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="identifier">key_type</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <a class="link" href="rbtree.html#idm36178-bb"><span class="identifier">bounded_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="identifier">key_type</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</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> KeyTypeKeyCompare<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="rbtree.html#idm45971713459856-bb"><span class="identifier">bounded_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="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> + <a class="link" href="rbtree.html#idm36188-bb"><span class="identifier">bounded_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="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="rbtree.html#idm45971713442768-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="rbtree.html#idm45971713437280-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">pointer</span> <a class="link" href="rbtree.html#idm45971713431792-bb"><span class="identifier">unlink_leftmost_without_rebalance</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="rbtree.html#idm45971713426880-bb"><span class="identifier">replace_node</span></a><span class="special">(</span><span class="identifier">iterator</span><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">void</span> <a class="link" href="rbtree.html#idm45971713419616-bb"><span class="identifier">remove_node</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">iterator</span> <a class="link" href="rbtree.html#idm36230-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="rbtree.html#idm36234-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">pointer</span> <a class="link" href="rbtree.html#idm36238-bb"><span class="identifier">unlink_leftmost_without_rebalance</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="rbtree.html#idm36249-bb"><span class="identifier">replace_node</span></a><span class="special">(</span><span class="identifier">iterator</span><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">void</span> <a class="link" href="rbtree.html#idm36266-bb"><span class="identifier">remove_node</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">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> Options2<span class="special">></span> - <span class="keyword">void</span> <a class="link" href="rbtree.html#idm45971713413776-bb"><span class="identifier">merge_unique</span></a><span class="special">(</span><a class="link" href="rbtree.html" title="Class template rbtree">rbtree</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="rbtree.html#idm36280-bb"><span class="identifier">merge_unique</span></a><span class="special">(</span><a class="link" href="rbtree.html" title="Class template rbtree">rbtree</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</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> T<span class="special">,</span> <span class="keyword">class</span> <span class="special">...</span> Options2<span class="special">></span> - <span class="keyword">void</span> <a class="link" href="rbtree.html#idm45971713405264-bb"><span class="identifier">merge_equal</span></a><span class="special">(</span><a class="link" href="rbtree.html" title="Class template rbtree">rbtree</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="rbtree.html#idm36289-bb"><span class="identifier">merge_equal</span></a><span class="special">(</span><a class="link" href="rbtree.html" title="Class template rbtree">rbtree</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> - <span class="comment">// <a class="link" href="rbtree.html#idm45971713368288-bb">public static functions</a></span> - <span class="keyword">static</span> <a class="link" href="rbtree.html" title="Class template rbtree">rbtree</a> <span class="special">&</span> <a class="link" href="rbtree.html#idm45971713367728-bb"><span class="identifier">container_from_end_iterator</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="rbtree.html" title="Class template rbtree">rbtree</a> <span class="special">&</span> <a class="link" href="rbtree.html#idm45971713361712-bb"><span class="identifier">container_from_end_iterator</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">static</span> <a class="link" href="rbtree.html" title="Class template rbtree">rbtree</a> <span class="special">&</span> <a class="link" href="rbtree.html#idm45971713355536-bb"><span class="identifier">container_from_iterator</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="rbtree.html" title="Class template rbtree">rbtree</a> <span class="special">&</span> <a class="link" href="rbtree.html#idm45971713349568-bb"><span class="identifier">container_from_iterator</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">static</span> <span class="identifier">iterator</span> <a class="link" href="rbtree.html#idm45971713343440-bb"><span class="identifier">s_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_iterator</span> <a class="link" href="rbtree.html#idm45971713336352-bb"><span class="identifier">s_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="keyword">void</span> <a class="link" href="rbtree.html#idm45971713329264-bb"><span class="identifier">init_node</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="comment">// <a class="link" href="rbtree.html#idm36356-bb">public static functions</a></span> + <span class="keyword">static</span> <a class="link" href="rbtree.html" title="Class template rbtree">rbtree</a> <span class="special">&</span> <a class="link" href="rbtree.html#idm36357-bb"><span class="identifier">container_from_end_iterator</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="rbtree.html" title="Class template rbtree">rbtree</a> <span class="special">&</span> <a class="link" href="rbtree.html#idm36362-bb"><span class="identifier">container_from_end_iterator</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">static</span> <a class="link" href="rbtree.html" title="Class template rbtree">rbtree</a> <span class="special">&</span> <a class="link" href="rbtree.html#idm36367-bb"><span class="identifier">container_from_iterator</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="rbtree.html" title="Class template rbtree">rbtree</a> <span class="special">&</span> <a class="link" href="rbtree.html#idm36372-bb"><span class="identifier">container_from_iterator</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">static</span> <span class="identifier">iterator</span> <a class="link" href="rbtree.html#idm36377-bb"><span class="identifier">s_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_iterator</span> <a class="link" href="rbtree.html#idm36381-bb"><span class="identifier">s_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="keyword">void</span> <a class="link" href="rbtree.html#idm36385-bb"><span class="identifier">init_node</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="comment">// public data members</span> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">bool</span> <span class="identifier">constant_time_size</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.28.4.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.28.4.4"></a><h2>Description</h2> <p>The class template rbtree is an intrusive red-black tree container, that is used to construct intrusive set and multiset containers. The no-throw guarantee holds only, if the key_compare object doesn't throw.</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> <p>The container supports the following options: <code class="computeroutput">base_hook<>/member_hook<>/value_traits<></code>, <code class="computeroutput">constant_time_size<></code>, <code class="computeroutput">size_type<></code> and <code class="computeroutput">compare<></code>. </p> <div class="refsect2"> -<a name="id-1.3.20.42.28.4.4.5"></a><h3> +<a name="id-1.3.18.42.28.4.4.5"></a><h3> <a name="boost.intrusive.rbtreeconstruct-copy-destruct"></a><code class="computeroutput">rbtree</code> public construct/copy/destruct</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> <li class="listitem"> -<pre class="literallayout"><a name="idm45971713396736-bb"></a><span class="identifier">rbtree</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm36298-bb"></a><span class="identifier">rbtree</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Constructs an empty container.</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 constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor of the key_compare object throws. Basic guarantee. </p> +<p><span class="bold"><strong>Throws</strong></span>: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor of the key_compare object throws. Basic guarantee. </p> </li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">explicit</span> <a name="idm45971713393584-bb"></a><span class="identifier">rbtree</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> cmp<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> -<p><span class="bold"><strong>Effects</strong></span>: Constructs an empty container with given comparison and traits.</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 constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor of the key_compare object throws. Basic guarantee. </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> - <a name="idm45971713388464-bb"></a><span class="identifier">rbtree</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> +<li class="listitem"><pre class="literallayout"><span class="keyword">explicit</span> <a name="idm36306-bb"></a><span class="identifier">rbtree</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> cmp<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></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="idm36312-bb"></a><span class="identifier">rbtree</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> <span class="identifier">key_compare</span> <span class="special">&</span> cmp <span class="special">=</span> <span class="identifier">key_compare</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> -<p><span class="bold"><strong>Requires</strong></span>: Dereferencing iterator must yield an lvalue of type value_type. cmp must be a comparison function that induces a strict weak ordering.</p> -<p><span class="bold"><strong>Effects</strong></span>: Constructs an empty container and inserts elements from [b, e).</p> -<p><span class="bold"><strong>Complexity</strong></span>: Linear in N if [b, e) is already sorted using comp and otherwise N * log N, where N is the distance between first and last.</p> -<p><span class="bold"><strong>Throws</strong></span>: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor/operator() of the key_compare object throws. Basic guarantee. </p> -</li> + <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></li> <li class="listitem"> -<pre class="literallayout"><a name="idm45971713379312-bb"></a><span class="identifier">rbtree</span><span class="special">(</span><a class="link" href="rbtree.html" title="Class template rbtree">rbtree</a> <span class="special">&&</span> x<span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm36327-bb"></a><span class="identifier">rbtree</span><span class="special">(</span><a class="link" href="rbtree.html" title="Class template rbtree">rbtree</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 comparison object and value traits are move constructed and nodes belonging to x (except the node representing the "end") 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 the comparison objet throws. </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 the comparison objet throws. </p> </li> <li class="listitem"> -<pre class="literallayout"><a class="link" href="rbtree.html" title="Class template rbtree">rbtree</a> <span class="special">&</span> <a name="idm45971713375008-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><a class="link" href="rbtree.html" title="Class template rbtree">rbtree</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> +<pre class="literallayout"><a class="link" href="rbtree.html" title="Class template rbtree">rbtree</a> <span class="special">&</span> <a name="idm36338-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><a class="link" href="rbtree.html" title="Class template rbtree">rbtree</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="idm45971713372192-bb"></a><span class="special">~</span><span class="identifier">rbtree</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm36347-bb"></a><span class="special">~</span><span class="identifier">rbtree</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 set are not deleted (i.e. no destructors are called), but the nodes according to the <code class="computeroutput"><a class="link" href="value_traits.html" title="Struct template value_traits">value_traits</a></code> template parameter are reinitialized and thus can be reused.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to elements contained in *this.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> </ol></div> </div> <div class="refsect2"> -<a name="id-1.3.20.42.28.4.4.6"></a><h3> -<a name="idm45971713913280-bb"></a><code class="computeroutput">rbtree</code> public member functions</h3> +<a name="id-1.3.18.42.28.4.4.6"></a><h3> +<a name="idm35391-bb"></a><code class="computeroutput">rbtree</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="idm45971713912720-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="idm35392-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971713908880-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="idm35401-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971713905040-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="idm35410-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971713901200-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="idm35419-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971713897360-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="idm35428-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971713893520-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="idm35437-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">reverse_iterator</span> <a name="idm45971713889680-bb"></a><span class="identifier">rbegin</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">reverse_iterator</span> <a name="idm35446-bb"></a><span class="identifier">rbegin</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 a reverse_iterator pointing to the beginning of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45971713885824-bb"></a><span class="identifier">rbegin</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_reverse_iterator</span> <a name="idm35455-bb"></a><span class="identifier">rbegin</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_reverse_iterator pointing to the beginning of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45971713881968-bb"></a><span class="identifier">crbegin</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_reverse_iterator</span> <a name="idm35464-bb"></a><span class="identifier">crbegin</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_reverse_iterator pointing to the beginning of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">reverse_iterator</span> <a name="idm45971713878112-bb"></a><span class="identifier">rend</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">reverse_iterator</span> <a name="idm35473-bb"></a><span class="identifier">rend</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 a reverse_iterator pointing to the end of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45971713874256-bb"></a><span class="identifier">rend</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_reverse_iterator</span> <a name="idm35482-bb"></a><span class="identifier">rend</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_reverse_iterator pointing to the end of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45971713870400-bb"></a><span class="identifier">crend</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_reverse_iterator</span> <a name="idm35491-bb"></a><span class="identifier">crend</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_reverse_iterator pointing to the end of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971713866544-bb"></a><span class="identifier">root</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="idm35500-bb"></a><span class="identifier">root</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 a iterator pointing to the root node of the container or end() if not present.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971713862672-bb"></a><span class="identifier">root</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="idm35509-bb"></a><span class="identifier">root</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 root node of the container or cend() if not present.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971713858800-bb"></a><span class="identifier">croot</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="idm35518-bb"></a><span class="identifier">croot</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 root node of the container or cend() if not present.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">key_compare</span> <a name="idm45971713854928-bb"></a><span class="identifier">key_comp</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_compare</span> <a name="idm35527-bb"></a><span class="identifier">key_comp</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_compare object used by the container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: If key_compare copy-constructor throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If key_compare copy-constructor throws. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">value_compare</span> <a name="idm45971713851072-bb"></a><span class="identifier">value_comp</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">value_compare</span> <a name="idm35536-bb"></a><span class="identifier">value_comp</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 value_compare object used by the container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: If value_compare copy-constructor throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If value_compare copy-constructor throws. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">bool</span> <a name="idm45971713847200-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="idm35545-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>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971713843376-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="idm35554-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to elements contained in *this if constant-time size option is disabled. Constant time otherwise.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971713839440-bb"></a><span class="identifier">swap</span><span class="special">(</span><a class="link" href="rbtree.html" title="Class template rbtree">rbtree</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="idm35563-bb"></a><span class="identifier">swap</span><span class="special">(</span><a class="link" href="rbtree.html" title="Class template rbtree">rbtree</a> <span class="special">&</span> other<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Swaps the contents of two containers.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comparison functor's swap call throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If the comparison functor's swap call throws. </p> </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="idm45971713834896-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="rbtree.html" title="Class template rbtree">rbtree</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="idm35575-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="rbtree.html" title="Class template rbtree">rbtree</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 equivalent to the original nodes.</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. Copies the predicate from the source container.</p> <p>If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to erased plus inserted elements.</p> -<p><span class="bold"><strong>Throws</strong></span>: If cloner throws or predicate copy assignment throws. Basic guarantee. </p> +<p><span class="bold"><strong>Throws</strong></span>: If cloner throws or predicate copy assignment throws. Basic guarantee. </p> </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="idm45971713825840-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><a class="link" href="rbtree.html" title="Class template rbtree">rbtree</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="idm35597-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><a class="link" href="rbtree.html" title="Class template rbtree">rbtree</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 equivalent to the original nodes.</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. Copies the predicate from the source container.</p> <p>If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to erased plus inserted elements.</p> <p><span class="bold"><strong>Throws</strong></span>: If cloner throws or predicate copy assignment throws. Basic guarantee.</p> -<p><span class="bold"><strong>Note</strong></span>: This version can modify the source container, useful to implement move semantics. </p> +<p><span class="bold"><strong>Note</strong></span>: This version can modify the source container, useful to implement move semantics. </p> </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="idm45971713816032-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><a class="link" href="rbtree.html" title="Class template rbtree">rbtree</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="idm35621-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><a class="link" href="rbtree.html" title="Class template rbtree">rbtree</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 equivalent to the original nodes.</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. Copies the predicate from the source container.</p> <p>If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to erased plus inserted elements.</p> <p><span class="bold"><strong>Throws</strong></span>: If cloner throws or predicate copy assignment throws. Basic guarantee.</p> -<p><span class="bold"><strong>Note</strong></span>: This version can modify the source container, useful to implement move semantics. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971713806224-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 value into the container before the upper bound.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Average complexity for insert element is at most logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the internal key_compare ordering function throws. Strong guarantee.</p> -<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">iterator</span> <a name="idm45971713800064-bb"></a><span class="identifier">insert_equal</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<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, and "hint" must be a valid iterator.</p> -<p><span class="bold"><strong>Effects</strong></span>: Inserts x into the container, using "hint" as a hint to where it will be inserted. If "hint" is the upper_bound the insertion takes constant time (two comparisons in the worst case)</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic in general, but it is amortized constant time if t is inserted immediately before hint.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the internal key_compare ordering function throws. Strong guarantee.</p> -<p><span class="bold"><strong>Note</strong></span>: Does not affect the validity of iterators and references. No copy-constructors are called. </p> +<p><span class="bold"><strong>Note</strong></span>: This version can modify the source container, useful to implement move semantics. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm35645-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm35649-bb"></a><span class="identifier">insert_equal</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<span class="special">,</span> <span class="identifier">reference</span> value<span class="special">)</span><span class="special">;</span></pre></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="idm45971713793040-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="idm35655-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>: Inserts a each element of a range into the container before the upper bound of the key of each element.</p> <p><span class="bold"><strong>Complexity</strong></span>: Insert range is in general O(N * log(N)), where N is the size of the range. However, it is linear in N if the range is already sorted by value_comp().</p> <p><span class="bold"><strong>Throws</strong></span>: If the comparison functor call throws.</p> -<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="idm45971713785200-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>: Inserts value into the container if the value is not already present.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Average complexity for insert element is at most logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comparison functor call throws.</p> -<p><span class="bold"><strong>Note</strong></span>: Does not affect the validity of iterators and references. No copy-constructors are called. </p> +<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">iterator</span> <a name="idm45971713779056-bb"></a><span class="identifier">insert_unique</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<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, and "hint" must be a valid iterator</p> -<p><span class="bold"><strong>Effects</strong></span>: Tries to insert x into the container, using "hint" as a hint to where it will be inserted.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic in general, but it is amortized constant time (two comparisons in the worst case) if t is inserted immediately before hint.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comparison functor call throws.</p> -<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> KeyType<span class="special">,</span> <span class="keyword">typename</span> KeyTypeKeyCompare<span class="special">></span> +<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="idm35674-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm35678-bb"></a><span class="identifier">insert_unique</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<span class="special">,</span> <span class="identifier">reference</span> value<span class="special">)</span><span class="special">;</span></pre></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> KeyTypeKeyCompare<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="idm45971713772096-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">KeyTypeKeyCompare</span> comp<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>: comp must be a comparison function that induces the same strict weak ordering as key_compare. The difference is that comp compares an arbitrary key with the contained values.</p> -<p><span class="bold"><strong>Effects</strong></span>: Checks if a value can be inserted in the container, 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 complexity is at most logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comp ordering function throws. Strong guarantee.</p> -<p><span class="bold"><strong>Notes</strong></span>: This function is used to improve performance when constructing a value_type is expensive: if there is an equivalent value the constructed object must be discarded. Many times, the part of the node that is used to impose the order is much cheaper to construct than the value_type and this function offers the possibility to use that part to check if the insertion will be successful.</p> -<p>If the check is successful, the user can construct the value_type and use "insert_commit" to insert the object in constant-time. This gives a total logarithmic complexity to the insertion: check(O(log(N)) + commit(O(1)).</p> -<p>"commit_data" remains valid for a subsequent "insert_commit" only if no more objects are inserted or erased from the container. </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> KeyTypeKeyCompare<span class="special">></span> + <a name="idm35684-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">KeyTypeKeyCompare</span> comp<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></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> KeyTypeKeyCompare<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="idm45971713760688-bb"></a><span class="identifier">insert_unique_check</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> key<span class="special">,</span> + <a name="idm35695-bb"></a><span class="identifier">insert_unique_check</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<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">KeyTypeKeyCompare</span> comp<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>: comp must be a comparison function that induces the same strict weak ordering as key_compare. The difference is that comp compares an arbitrary key with the contained values.</p> -<p><span class="bold"><strong>Effects</strong></span>: Checks if a value can be inserted in the container, using a user provided key instead of the value itself, using "hint" as a hint to where it will be inserted.</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>: Logarithmic in general, but it's amortized constant time if t is inserted immediately before hint.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comp ordering function throws. Strong guarantee.</p> -<p><span class="bold"><strong>Notes</strong></span>: This function is used to improve performance when constructing a value_type is expensive: if there is an equivalent value the constructed object must be discarded. Many times, the part of the constructing that is used to impose the order is much cheaper to construct than the value_type and this function offers the possibility to use that key to check if the insertion will be successful.</p> -<p>If the check is successful, the user can construct the value_type and use "insert_commit" to insert the object in constant-time. This can give a total constant-time complexity to the insertion: check(O(1)) + commit(O(1)).</p> -<p>"commit_data" remains valid for a subsequent "insert_commit" only if no more objects are inserted or erased from the container. </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="idm45971713748496-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 container, 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 complexity is at most logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comp ordering function throws. Strong guarantee. </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="idm45971713742304-bb"></a><span class="identifier">insert_unique_check</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<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 container, using a user provided key instead of the value itself, using "hint" as a hint to where it will be inserted.</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>: Logarithmic in general, but it's amortized constant time if t is inserted immediately before hint.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comp ordering function throws. Strong guarantee. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971713735328-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="identifier">insert_commit_data</span> <span class="special">&</span> commit_data<span class="special">)</span><span class="special">;</span></pre></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="idm35708-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></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="idm35714-bb"></a><span class="identifier">insert_unique_check</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<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></li> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm35722-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 container 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 container using the information obtained from the "commit_data" that a previous "insert_check" filled.</p> <p><span class="bold"><strong>Returns</strong></span>: An iterator to the newly inserted object.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Notes</strong></span>: This function has only sense if a "insert_check" has been previously executed to fill "commit_data". No value should be inserted or erased between the "insert_check" and "insert_commit" calls. </p> +<p><span class="bold"><strong>Notes</strong></span>: This function has only sense if a "insert_check" has been previously executed to fill "commit_data". No value should be inserted or erased between the "insert_check" and "insert_commit" calls. </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="idm45971713727024-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="idm35741-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>: Tries to insert each element of a range into the container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Insert range is in general O(N * log(N)), where N is the size of the range. However, it is linear in N if the range is already sorted by value_comp().</p> <p><span class="bold"><strong>Throws</strong></span>: If the comparison functor call throws.</p> -<p><span class="bold"><strong>Note</strong></span>: Does not affect the validity of iterators and references. No copy-constructors are called. </p> +<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">iterator</span> <a name="idm45971713719232-bb"></a><span class="identifier">insert_before</span><span class="special">(</span><span class="identifier">const_iterator</span> pos<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="idm35760-bb"></a><span class="identifier">insert_before</span><span class="special">(</span><span class="identifier">const_iterator</span> pos<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, "pos" must be a valid iterator (or end) and must be the succesor of value once inserted according to the predicate</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts x into the container before "pos".</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if "pos" is not the successor of "value" container ordering invariant will be broken. This is a low-level function to be used only for performance reasons by advanced users. </p> +<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if "pos" is not the successor of "value" container ordering invariant will be broken. This is a low-level function to be used only for performance reasons by advanced users. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971713712000-bb"></a><span class="identifier">push_back</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">void</span> <a name="idm35777-bb"></a><span class="identifier">push_back</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 it must be no less than the greatest inserted key</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts x into the container in the last position.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if value is less than the greatest inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users. </p> +<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if value is less than the greatest inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971713705440-bb"></a><span class="identifier">push_front</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">void</span> <a name="idm35792-bb"></a><span class="identifier">push_front</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 it must be no greater than the minimum inserted key</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts x into the container in the first position.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if value is greater than the minimum inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971713698880-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 complexity for erase element is constant time.</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">iterator</span> <a name="idm45971713693392-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 complexity for erase range is at most O(log(size() + N)), where N is the number of elements in the range.</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="idm45971713687152-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>: O(log(size() + N).</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> +<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if value is greater than the minimum inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm35807-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm35811-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">size_type</span> <a name="idm35817-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></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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971713681104-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <span class="identifier">size_type</span> <a name="idm35821-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Erases all the elements with the given key. according to the comparison functor "comp".</p> <p><span class="bold"><strong>Returns</strong></span>: The number of erased elements.</p> <p><span class="bold"><strong>Complexity</strong></span>: O(log(size() + N).</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="identifier">iterator</span> <a name="idm45971713671008-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 complexity for erase element is constant time.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<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">template</span><span class="special"><</span><span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="identifier">iterator</span> <a name="idm45971713663104-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> -<p><span class="bold"><strong>Complexity</strong></span>: Average complexity for erase range is at most O(log(size() + N)), where N is the number of elements in the range.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<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">template</span><span class="special"><</span><span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971713654448-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> -<p><span class="bold"><strong>Complexity</strong></span>: O(log(size() + N).</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> +<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="identifier">iterator</span> <a name="idm35845-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></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">iterator</span> <a name="idm35853-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></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="idm35863-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></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> KeyTypeKeyCompare<span class="special">,</span> <span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971713645920-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">KeyTypeKeyCompare</span> comp<span class="special">,</span> + <span class="identifier">size_type</span> <a name="idm35871-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">KeyTypeKeyCompare</span> comp<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>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk) and nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Requires</strong></span>: Disposer::operator()(pointer) shouldn't throw.</p> @@ -601,168 +490,102 @@ <p><span class="bold"><strong>Returns</strong></span>: The number of erased elements.</p> <p><span class="bold"><strong>Complexity</strong></span>: O(log(size() + N).</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: Invalidates the iterators to the erased elements. </p> +<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="idm45971713633696-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="idm35900-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> +<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="idm45971713628832-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="idm35911-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>Effects</strong></span>: Erases all of the elements calling disposer(p) for each node to be erased. <span class="bold"><strong>Complexity</strong></span>: Average complexity for is at most O(log(size() + N)), where N is the number of elements in the container.</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. Calls N times to disposer functor. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">size_type</span> <a name="idm45971713622528-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>: Logarithmic to the number of elements contained plus lineal to number of objects with the given value.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Note</strong></span>: Invalidates the iterators (but not the references) to the erased elements. Calls N times to disposer functor. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">size_type</span> <a name="idm35925-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></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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971713617456-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> + <span class="identifier">size_type</span> <a name="idm35929-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns the number of contained elements with the given key</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic to the number of elements contained plus lineal to number of objects with the given key.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971713608400-bb"></a><span class="identifier">lower_bound</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 an iterator to the first element whose key is not less than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> 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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a name="idm45971713603648-bb"></a><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Effects</strong></span>: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971713596800-bb"></a><span class="identifier">lower_bound</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 an iterator to the first element whose key is not less than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> 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> KeyTypeKeyCompare<span class="special">></span> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm35950-bb"></a><span class="identifier">lower_bound</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></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> KeyTypeKeyCompare<span class="special">></span> + <span class="identifier">iterator</span> <a name="idm35954-bb"></a><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm35963-bb"></a><span class="identifier">lower_bound</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></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> KeyTypeKeyCompare<span class="special">></span> <span class="identifier">const_iterator</span> - <a name="idm45971713591776-bb"></a><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Effects</strong></span>: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971713584656-bb"></a><span class="identifier">upper_bound</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 an iterator to the first element whose key is greater than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> -</li> + <a name="idm35967-bb"></a><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm35976-bb"></a><span class="identifier">upper_bound</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></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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a name="idm45971713579904-bb"></a><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <span class="identifier">iterator</span> <a name="idm35980-bb"></a><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns an iterator to the first element whose key is greater than k according to comp or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971713571200-bb"></a><span class="identifier">upper_bound</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 an iterator to the first element whose key is greater than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm36001-bb"></a><span class="identifier">upper_bound</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></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> KeyTypeKeyCompare<span class="special">></span> <span class="identifier">const_iterator</span> - <a name="idm45971713566176-bb"></a><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> + <a name="idm36005-bb"></a><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns an iterator to the first element whose key is greater than k according to comp or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971713557200-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 whose key is k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm36026-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></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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a name="idm45971713552464-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <span class="identifier">iterator</span> <a name="idm36030-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Finds an iterator to the first element whose key is k or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971713543728-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 an iterator to the first element whose key is k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm36051-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></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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">const_iterator</span> <a name="idm45971713538720-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> + <span class="identifier">const_iterator</span> <a name="idm36055-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Finds an iterator to the first element whose key is k or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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="idm45971713529712-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>: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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="idm36076-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></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> KeyTypeKeyCompare<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="idm45971713524880-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <a name="idm36080-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">></span> -<a name="idm45971713516048-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>: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">></span> +<a name="idm36101-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></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> KeyTypeKeyCompare<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="idm45971713510928-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> + <a name="idm36105-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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="idm45971713501808-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> lower<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> upper_key<span class="special">,</span> - <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: <code class="computeroutput">upper_key</code> shall not precede <code class="computeroutput">lower_key</code> according to key_compare. [key_comp()(upper_key, lower_key) shall be false]</p> -<p>If <code class="computeroutput">lower_key</code> is equivalent to <code class="computeroutput">upper_key</code> [!key_comp()(upper_key, lower_key) && !key_comp()(lower_key, upper_key)] then ('left_closed' || 'right_closed') must be false.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns an a pair with the following criteria:</p> -<p>first = lower_bound(lower_key) if left_closed, upper_bound(lower_key) otherwise</p> -<p>second = upper_bound(upper_key) if right_closed, lower_bound(upper_key) otherwise</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws.</p> -<p><span class="bold"><strong>Note</strong></span>: This function can be more efficient than calling upper_bound and lower_bound for lower_value and upper_value.</p> -<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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="idm36126-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> lower<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> upper_key<span class="special">,</span> + <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span><span class="special">;</span></pre></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> KeyTypeKeyCompare<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="idm45971713489376-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> + <a name="idm36136-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span> comp<span class="special">,</span> <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: <code class="computeroutput">lower_key</code> is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, lower_key) if left_closed is true, with respect to !comp(lower_key, nk) otherwise.</p> <p><code class="computeroutput">upper_key</code> is a value such that <code class="computeroutput">*this</code> is partitioned with respect to !comp(upper_key, nk) if right_closed is true, with respect to comp(nk, upper_key) otherwise.</p> @@ -774,26 +597,15 @@ <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> <p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws.</p> <p><span class="bold"><strong>Note</strong></span>: This function can be more efficient than calling upper_bound and lower_bound for lower_key and upper_key.</p> -<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </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">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">></span> -<a name="idm45971713472576-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> upper_key<span class="special">,</span> - <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: <code class="computeroutput">upper_key</code> shall not precede <code class="computeroutput">lower_key</code> according to key_compare. [key_comp()(upper_key, lower_key) shall be false]</p> -<p>If <code class="computeroutput">lower_key</code> is equivalent to <code class="computeroutput">upper_key</code> [!key_comp()(upper_key, lower_key) && !key_comp()(lower_key, upper_key)] then ('left_closed' || 'right_closed') must be false.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns an a pair with the following criteria:</p> -<p>first = lower_bound(lower_key) if left_closed, upper_bound(lower_key) otherwise</p> -<p>second = upper_bound(upper_key) if right_closed, lower_bound(upper_key) otherwise</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws.</p> -<p><span class="bold"><strong>Note</strong></span>: This function can be more efficient than calling upper_bound and lower_bound for lower_value and upper_value.</p> -<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </p> +<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </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">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">></span> +<a name="idm36178-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> upper_key<span class="special">,</span> + <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></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> KeyTypeKeyCompare<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="idm45971713459856-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> + <a name="idm36188-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span> comp<span class="special">,</span> <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: <code class="computeroutput">lower_key</code> is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, lower_key) if left_closed is true, with respect to !comp(lower_key, nk) otherwise.</p> <p><code class="computeroutput">upper_key</code> is a value such that <code class="computeroutput">*this</code> is partitioned with respect to !comp(upper_key, nk) if right_closed is true, with respect to comp(nk, upper_key) otherwise.</p> @@ -805,134 +617,60 @@ <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> <p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws.</p> <p><span class="bold"><strong>Note</strong></span>: This function can be more efficient than calling upper_bound and lower_bound for lower_key and upper_key.</p> -<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971713442768-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 set of appropriate type. Otherwise the behavior is undefined.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns: a valid iterator i belonging to the set 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> +<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm36230-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm36234-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></li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971713437280-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 set of appropriate type. Otherwise the behavior is undefined.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns: a valid const_iterator i belonging to the set 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">pointer</span> <a name="idm45971713431792-bb"></a><span class="identifier">unlink_leftmost_without_rebalance</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">pointer</span> <a name="idm36238-bb"></a><span class="identifier">unlink_leftmost_without_rebalance</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>: Unlinks the leftmost node from the container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Average complexity is constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Notes</strong></span>: This function breaks the container and the container can only be used for more unlink_leftmost_without_rebalance calls. This function is normally used to achieve a step by step controlled destruction of the container. </p> +<p><span class="bold"><strong>Notes</strong></span>: This function breaks the container and the container can only be used for more unlink_leftmost_without_rebalance calls. This function is normally used to achieve a step by step controlled destruction of the container. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971713426880-bb"></a><span class="identifier">replace_node</span><span class="special">(</span><span class="identifier">iterator</span> replace_this<span class="special">,</span> <span class="identifier">reference</span> with_this<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">void</span> <a name="idm36249-bb"></a><span class="identifier">replace_node</span><span class="special">(</span><span class="identifier">iterator</span> replace_this<span class="special">,</span> <span class="identifier">reference</span> with_this<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: replace_this must be a valid iterator of *this and with_this must not be inserted in any container.</p> <p><span class="bold"><strong>Effects</strong></span>: Replaces replace_this in its position in the container with with_this. The container does not need to be rebalanced.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: This function will break container ordering invariants if with_this is not equivalent to *replace_this according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing or comparison is needed. </p> +<p><span class="bold"><strong>Note</strong></span>: This function will break container ordering invariants if with_this is not equivalent to *replace_this according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing or comparison is needed. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971713419616-bb"></a><span class="identifier">remove_node</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">void</span> <a name="idm36266-bb"></a><span class="identifier">remove_node</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>Effects</strong></span>: removes "value" from the container.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic time.</p> <p><span class="bold"><strong>Note</strong></span>: This static function is only usable with non-constant time size containers that have stateless comparison functors.</p> -<p>If the user calls this function with a constant time size container or stateful comparison functor a compilation error will be issued. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><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> Options2<span class="special">></span> - <span class="keyword">void</span> <a name="idm45971713413776-bb"></a><span class="identifier">merge_unique</span><span class="special">(</span><a class="link" href="rbtree.html" title="Class template rbtree">rbtree</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: "source" container's Options can only can differ in the comparison function from *this.</p> -<p><span class="bold"><strong>Effects</strong></span>: Attempts to extract each element in source and insert it into a using the comparison object of *this. If there is an element in a with key equivalent to the key of an element from source, then that element is not extracted from source.</p> -<p><span class="bold"><strong>Postcondition</strong></span>: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing unless the comparison object throws.</p> -<p><span class="bold"><strong>Complexity</strong></span>: N log(a.size() + N) (N has the value source.size()) </p> -</li> -<li class="listitem"> -<pre class="literallayout"><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> Options2<span class="special">></span> - <span class="keyword">void</span> <a name="idm45971713405264-bb"></a><span class="identifier">merge_equal</span><span class="special">(</span><a class="link" href="rbtree.html" title="Class template rbtree">rbtree</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: "source" container's Options can only can differ in the comparison function from *this.</p> -<p><span class="bold"><strong>Effects</strong></span>: Extracts each element in source and insert it into a using the comparison object of *this.</p> -<p><span class="bold"><strong>Postcondition</strong></span>: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing unless the comparison object throws.</p> -<p><span class="bold"><strong>Complexity</strong></span>: N log(a.size() + N) (N has the value source.size()) </p> +<p>If the user calls this function with a constant time size container or stateful comparison functor a compilation error will be issued. </p> </li> +<li class="listitem"><pre class="literallayout"><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> Options2<span class="special">></span> + <span class="keyword">void</span> <a name="idm36280-bb"></a><span class="identifier">merge_unique</span><span class="special">(</span><a class="link" href="rbtree.html" title="Class template rbtree">rbtree</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><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> Options2<span class="special">></span> + <span class="keyword">void</span> <a name="idm36289-bb"></a><span class="identifier">merge_equal</span><span class="special">(</span><a class="link" href="rbtree.html" title="Class template rbtree">rbtree</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span></pre></li> </ol></div> </div> <div class="refsect2"> -<a name="id-1.3.20.42.28.4.4.7"></a><h3> -<a name="idm45971713368288-bb"></a><code class="computeroutput">rbtree</code> public static functions</h3> +<a name="id-1.3.18.42.28.4.4.7"></a><h3> +<a name="idm36356-bb"></a><code class="computeroutput">rbtree</code> public static functions</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <a class="link" href="rbtree.html" title="Class template rbtree">rbtree</a> <span class="special">&</span> <a name="idm45971713367728-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Precondition</strong></span>: end_iterator must be a valid end iterator of the container.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the container associated to the end iterator</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Constant. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="rbtree.html" title="Class template rbtree">rbtree</a> <span class="special">&</span> -<a name="idm45971713361712-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">const_iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Precondition</strong></span>: end_iterator must be a valid end iterator of the container.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the container associated to the end iterator</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Constant. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <a class="link" href="rbtree.html" title="Class template rbtree">rbtree</a> <span class="special">&</span> <a name="idm45971713355536-bb"></a><span class="identifier">container_from_iterator</span><span class="special">(</span><span class="identifier">iterator</span> it<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Precondition</strong></span>: it must be a valid iterator of the container.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the container associated to the iterator</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="rbtree.html" title="Class template rbtree">rbtree</a> <span class="special">&</span> <a name="idm45971713349568-bb"></a><span class="identifier">container_from_iterator</span><span class="special">(</span><span class="identifier">const_iterator</span> it<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Precondition</strong></span>: it must be a valid iterator of the container.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the container associated to the iterator</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="identifier">iterator</span> <a name="idm45971713343440-bb"></a><span class="identifier">s_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 set of appropriate type. Otherwise the behavior is undefined.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns: a valid iterator i belonging to the set 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> -<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">const_iterator</span> <a name="idm45971713336352-bb"></a><span class="identifier">s_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 set of appropriate type. Otherwise the behavior is undefined.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns: a valid iterator i belonging to the set 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> -<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="keyword">void</span> <a name="idm45971713329264-bb"></a><span class="identifier">init_node</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 shall not be in a container.</p> -<p><span class="bold"><strong>Effects</strong></span>: init_node puts the hook of a value in a well-known default state.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> -<p><span class="bold"><strong>Note</strong></span>: This function puts the hook in the well-known default state used by auto_unlink and safe hooks. </p> -</li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <a class="link" href="rbtree.html" title="Class template rbtree">rbtree</a> <span class="special">&</span> <a name="idm36357-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="rbtree.html" title="Class template rbtree">rbtree</a> <span class="special">&</span> +<a name="idm36362-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">const_iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <a class="link" href="rbtree.html" title="Class template rbtree">rbtree</a> <span class="special">&</span> <a name="idm36367-bb"></a><span class="identifier">container_from_iterator</span><span class="special">(</span><span class="identifier">iterator</span> it<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="rbtree.html" title="Class template rbtree">rbtree</a> <span class="special">&</span> <a name="idm36372-bb"></a><span class="identifier">container_from_iterator</span><span class="special">(</span><span class="identifier">const_iterator</span> it<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">iterator</span> <a name="idm36377-bb"></a><span class="identifier">s_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></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">const_iterator</span> <a name="idm36381-bb"></a><span class="identifier">s_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></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm36385-bb"></a><span class="identifier">init_node</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></li> </ol></div> </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="make_rbtree.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.rbtree_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="rbtree_algorithms.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/rbtree_algorithms.html b/doc/html/boost/intrusive/rbtree_algorithms.html index 391b01a5fd..469e84be95 100644 --- a/doc/html/boost/intrusive/rbtree_algorithms.html +++ b/doc/html/boost/intrusive/rbtree_algorithms.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.rbtree_algorithms_hpp" title="Header <boost/intrusive/rbtree_algorithms.hpp>"> <link rel="prev" href="rbtree.html" title="Class template rbtree"> <link rel="next" href="make_multiset.html" title="Struct template make_multiset"> +<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> @@ -29,8 +30,8 @@ <h2><span class="refentrytitle">Class template rbtree_algorithms</span></h2> <p>boost::intrusive::rbtree_algorithms</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.rbtree_algorithms_hpp" title="Header <boost/intrusive/rbtree_algorithms.hpp>">boost/intrusive/rbtree_algorithms.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.rbtree_algorithms_hpp" title="Header <boost/intrusive/rbtree_algorithms.hpp>">boost/intrusive/rbtree_algorithms.hpp</a>> </span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodeTraits<span class="special">></span> <span class="keyword">class</span> <a class="link" href="rbtree_algorithms.html" title="Class template rbtree_algorithms">rbtree_algorithms</a> <span class="special">{</span> @@ -43,76 +44,75 @@ <span class="keyword">typedef</span> <span class="identifier">NodeTraits</span><span class="special">::</span><span class="identifier">color</span> <a name="boost.intrusive.rbtree_algorithms.color"></a><span class="identifier">color</span><span class="special">;</span> <span class="keyword">typedef</span> <span class="identifier">bstree_algo</span><span class="special">::</span><span class="identifier">insert_commit_data</span> <a class="link" href="rbtree_algorithms.html#boost.intrusive.rbtree_algorithms.insert_commit_data"><span class="identifier">insert_commit_data</span></a><span class="special">;</span> - <span class="comment">// <a class="link" href="rbtree_algorithms.html#idm45971713301408-bb">public static functions</a></span> - <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="rbtree_algorithms.html#idm45971713300848-bb"><span class="identifier">get_header</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="rbtree_algorithms.html#idm45971713295200-bb"><span class="identifier">begin_node</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="rbtree_algorithms.html#idm45971713289520-bb"><span class="identifier">end_node</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="rbtree_algorithms.html#idm45971713283872-bb"><span class="identifier">swap_tree</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="rbtree_algorithms.html#idm45971713277424-bb"><span class="identifier">swap_nodes</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="rbtree_algorithms.html#idm45971713269696-bb"><span class="identifier">swap_nodes</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="rbtree_algorithms.html#idm45971713260560-bb"><span class="identifier">replace_node</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="rbtree_algorithms.html#idm45971713252992-bb"><span class="identifier">replace_node</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="rbtree_algorithms.html#idm45971713244720-bb"><span class="identifier">unlink</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="rbtree_algorithms.html#idm45971713239040-bb"><span class="identifier">unlink_leftmost_without_rebalance</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">bool</span> <a class="link" href="rbtree_algorithms.html#idm45971713232272-bb"><span class="identifier">unique</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a class="link" href="rbtree_algorithms.html#idm45971713226560-bb"><span class="identifier">size</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="rbtree_algorithms.html#idm45971713220896-bb"><span class="identifier">next_node</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="rbtree_algorithms.html#idm45971713215232-bb"><span class="identifier">prev_node</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="rbtree_algorithms.html#idm45971713209536-bb"><span class="identifier">init</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="rbtree_algorithms.html#idm45971713202992-bb"><span class="identifier">init_header</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="rbtree_algorithms.html#idm45971713196416-bb"><span class="identifier">erase</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="comment">// <a class="link" href="rbtree_algorithms.html#idm36448-bb">public static functions</a></span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="rbtree_algorithms.html#idm36449-bb"><span class="identifier">get_header</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="rbtree_algorithms.html#idm36462-bb"><span class="identifier">begin_node</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="rbtree_algorithms.html#idm36475-bb"><span class="identifier">end_node</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="rbtree_algorithms.html#idm36488-bb"><span class="identifier">swap_tree</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="rbtree_algorithms.html#idm36503-bb"><span class="identifier">swap_nodes</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="rbtree_algorithms.html#idm36521-bb"><span class="identifier">swap_nodes</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="rbtree_algorithms.html#idm36543-bb"><span class="identifier">replace_node</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="rbtree_algorithms.html#idm36560-bb"><span class="identifier">replace_node</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="rbtree_algorithms.html#idm36579-bb"><span class="identifier">unlink</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="rbtree_algorithms.html#idm36592-bb"><span class="identifier">unlink_leftmost_without_rebalance</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">bool</span> <a class="link" href="rbtree_algorithms.html#idm36607-bb"><span class="identifier">unique</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a class="link" href="rbtree_algorithms.html#idm36620-bb"><span class="identifier">size</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="rbtree_algorithms.html#idm36633-bb"><span class="identifier">next_node</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="rbtree_algorithms.html#idm36637-bb"><span class="identifier">prev_node</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="rbtree_algorithms.html#idm36641-bb"><span class="identifier">init</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="rbtree_algorithms.html#idm36656-bb"><span class="identifier">init_header</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="rbtree_algorithms.html#idm36671-bb"><span class="identifier">erase</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</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> NodePtrCompare<span class="special">></span> - <span class="keyword">static</span> <span class="keyword">bool</span> <a class="link" href="rbtree_algorithms.html#idm45971713190016-bb"><span class="identifier">transfer_unique</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">NodePtrCompare</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">bool</span> <a class="link" href="rbtree_algorithms.html#idm36686-bb"><span class="identifier">transfer_unique</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">NodePtrCompare</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span><span class="special">;</span> <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodePtrCompare<span class="special">></span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="rbtree_algorithms.html#idm45971713180656-bb"><span class="identifier">transfer_equal</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">NodePtrCompare</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="rbtree_algorithms.html#idm36709-bb"><span class="identifier">transfer_equal</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">NodePtrCompare</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</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">static</span> <span class="keyword">void</span> <a class="link" href="rbtree_algorithms.html#idm45971713172224-bb"><span class="identifier">clone</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</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">static</span> <span class="keyword">void</span> <a class="link" href="rbtree_algorithms.html#idm36730-bb"><span class="identifier">clone</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</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> Disposer<span class="special">></span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="rbtree_algorithms.html#idm45971713161200-bb"><span class="identifier">clear_and_dispose</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</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">static</span> <span class="keyword">void</span> <a class="link" href="rbtree_algorithms.html#idm36756-bb"><span class="identifier">clear_and_dispose</span></a><span class="special">(</span><span class="identifier">node_ptr</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> KeyType<span class="special">,</span> <span class="keyword">typename</span> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a class="link" href="rbtree_algorithms.html#idm45971713153344-bb"><span class="identifier">lower_bound</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span><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">KeyNodePtrCompare</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="rbtree_algorithms.html#idm36764-bb"><span class="identifier">lower_bound</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><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">KeyNodePtrCompare</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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a class="link" href="rbtree_algorithms.html#idm45971713144880-bb"><span class="identifier">upper_bound</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span><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">KeyNodePtrCompare</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="rbtree_algorithms.html#idm36784-bb"><span class="identifier">upper_bound</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><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">KeyNodePtrCompare</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> KeyNodePtrCompare<span class="special">></span> - <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a class="link" href="rbtree_algorithms.html#idm45971713136416-bb"><span class="identifier">find</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span><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">KeyNodePtrCompare</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="rbtree_algorithms.html#idm36804-bb"><span class="identifier">find</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><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">KeyNodePtrCompare</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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span> <span class="special">></span> - <a class="link" href="rbtree_algorithms.html#idm45971713127952-bb"><span class="identifier">equal_range</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span><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">KeyNodePtrCompare</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="rbtree_algorithms.html#idm36824-bb"><span class="identifier">equal_range</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><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">KeyNodePtrCompare</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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span> <span class="special">></span> - <a class="link" href="rbtree_algorithms.html#idm45971713119360-bb"><span class="identifier">bounded_range</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> + <a class="link" href="rbtree_algorithms.html#idm36844-bb"><span class="identifier">bounded_range</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><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">KeyNodePtrCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> - <a class="link" href="rbtree_algorithms.html#idm45971713106224-bb"><span class="identifier">count</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span><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">KeyNodePtrCompare</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="rbtree_algorithms.html#idm36876-bb"><span class="identifier">count</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><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">KeyNodePtrCompare</span><span class="special">)</span><span class="special">;</span> <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a class="link" href="rbtree_algorithms.html#idm45971713097808-bb"><span class="identifier">insert_equal_upper_bound</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">NodePtrCompare</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="rbtree_algorithms.html#idm36896-bb"><span class="identifier">insert_equal_upper_bound</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">NodePtrCompare</span><span class="special">)</span><span class="special">;</span> <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a class="link" href="rbtree_algorithms.html#idm45971713089920-bb"><span class="identifier">insert_equal_lower_bound</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">NodePtrCompare</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="rbtree_algorithms.html#idm36915-bb"><span class="identifier">insert_equal_lower_bound</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">NodePtrCompare</span><span class="special">)</span><span class="special">;</span> <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodePtrCompare<span class="special">></span> - <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="rbtree_algorithms.html#idm45971713082032-bb"><span class="identifier">insert_equal</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">NodePtrCompare</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="rbtree_algorithms.html#idm45971713073264-bb"><span class="identifier">insert_before</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="rbtree_algorithms.html#idm45971713065024-bb"><span class="identifier">push_back</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="rbtree_algorithms.html#idm45971713057600-bb"><span class="identifier">push_front</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="rbtree_algorithms.html#idm36934-bb"><span class="identifier">insert_equal</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">NodePtrCompare</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="rbtree_algorithms.html#idm36955-bb"><span class="identifier">insert_before</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="rbtree_algorithms.html#idm36974-bb"><span class="identifier">push_back</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="rbtree_algorithms.html#idm36991-bb"><span class="identifier">push_front</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</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> KeyType<span class="special">,</span> <span class="keyword">typename</span> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="keyword">bool</span> <span class="special">></span> - <a class="link" href="rbtree_algorithms.html#idm45971713050176-bb"><span class="identifier">insert_unique_check</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><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">KeyNodePtrCompare</span><span class="special">,</span> + <a class="link" href="rbtree_algorithms.html#idm37008-bb"><span class="identifier">insert_unique_check</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><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">KeyNodePtrCompare</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="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> KeyType<span class="special">,</span> <span class="keyword">typename</span> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="keyword">bool</span> <span class="special">></span> - <a class="link" href="rbtree_algorithms.html#idm45971713037600-bb"><span class="identifier">insert_unique_check</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> + <a class="link" href="rbtree_algorithms.html#idm37021-bb"><span class="identifier">insert_unique_check</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><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">KeyNodePtrCompare</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="keyword">static</span> <span class="keyword">void</span> <a class="link" href="rbtree_algorithms.html#idm45971713024032-bb"><span class="identifier">insert_unique_commit</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="rbtree_algorithms.html#idm37036-bb"><span class="identifier">insert_unique_commit</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</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">static</span> <span class="keyword">bool</span> <a class="link" href="rbtree_algorithms.html#idm45971713015616-bb"><span class="identifier">is_header</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">bool</span> <a class="link" href="rbtree_algorithms.html#idm37044-bb"><span class="identifier">is_header</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</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.29.3.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.29.3.4"></a><h2>Description</h2> <p><a class="link" href="rbtree_algorithms.html" title="Class template rbtree_algorithms">rbtree_algorithms</a> provides basic algorithms to manipulate nodes forming a red-black tree. The insertion and deletion algorithms are based on those in Cormen, Leiserson, and Rivest, Introduction to Algorithms (MIT Press, 1990), except that</p> <p>(1) the header node is maintained with links not only to the root but also to the leftmost node of the tree, to enable constant time begin(), and to the rightmost node of the tree, to enable linear time performance when used with the generic set algorithms (set_union, etc.);</p> <p>(2) when a node being deleted has two children its successor node is relinked into its place, rather than copied, so that the only pointers invalidated are those referring to the deleted node.</p> @@ -134,7 +134,7 @@ <p><code class="computeroutput">static color black();</code></p> <p><code class="computeroutput">static color red();</code> </p> <div class="refsect2"> -<a name="id-1.3.20.42.29.3.4.22"></a><h3> +<a name="id-1.3.18.42.29.3.4.22"></a><h3> <a name="boost.intrusive.rbtree_algorithmstypes"></a><code class="computeroutput">rbtree_algorithms</code> public types</h3> @@ -145,221 +145,201 @@ </li></ol></div> </div> <div class="refsect2"> -<a name="id-1.3.20.42.29.3.4.23"></a><h3> -<a name="idm45971713301408-bb"></a><code class="computeroutput">rbtree_algorithms</code> public static functions</h3> +<a name="id-1.3.18.42.29.3.4.23"></a><h3> +<a name="idm36448-bb"></a><code class="computeroutput">rbtree_algorithms</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">node_ptr</span> <a name="idm45971713300848-bb"></a><span class="identifier">get_header</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span> n<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: 'node' is a node of the tree or a header node.</p> +<pre class="literallayout"><span class="keyword">static</span> <span class="identifier">node_ptr</span> <a name="idm36449-bb"></a><span class="identifier">get_header</span><span class="special">(</span><span class="identifier">const_node_ptr</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 a node of the tree or a header node.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns the header of the tree.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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">node_ptr</span> <a name="idm45971713295200-bb"></a><span class="identifier">begin_node</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span> header<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">node_ptr</span> <a name="idm36462-bb"></a><span class="identifier">begin_node</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: 'header' is the header node of a tree.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns the first node of the tree, the header if the tree is empty.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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">node_ptr</span> <a name="idm45971713289520-bb"></a><span class="identifier">end_node</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span> header<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">node_ptr</span> <a name="idm36475-bb"></a><span class="identifier">end_node</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: 'header' is the header node of a tree.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns the header of the tree.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="keyword">void</span> <a name="idm45971713283872-bb"></a><span class="identifier">swap_tree</span><span class="special">(</span><span class="identifier">node_ptr</span> header1<span class="special">,</span> <span class="identifier">node_ptr</span> header2<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm36488-bb"></a><span class="identifier">swap_tree</span><span class="special">(</span><span class="identifier">node_ptr</span> header1<span class="special">,</span> <span class="identifier">node_ptr</span> header2<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: header1 and header2 must be the header nodes of two trees.</p> <p><span class="bold"><strong>Effects</strong></span>: Swaps two trees. After the function header1 will contain links to the second tree and header2 will have links to the first tree.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="keyword">void</span> <a name="idm45971713277424-bb"></a><span class="identifier">swap_nodes</span><span class="special">(</span><span class="identifier">node_ptr</span> node1<span class="special">,</span> <span class="identifier">node_ptr</span> node2<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm36503-bb"></a><span class="identifier">swap_nodes</span><span class="special">(</span><span class="identifier">node_ptr</span> node1<span class="special">,</span> <span class="identifier">node_ptr</span> node2<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: node1 and node2 can't be header nodes of two trees.</p> <p><span class="bold"><strong>Effects</strong></span>: Swaps two nodes. After the function node1 will be inserted in the position node2 before the function. node2 will be inserted in the position node1 had before the function.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Note</strong></span>: This function will break container ordering invariants if node1 and node2 are not equivalent according to the ordering rules.</p> -<p>Experimental function </p> +<p>Experimental function </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971713269696-bb"></a><span class="identifier">swap_nodes</span><span class="special">(</span><span class="identifier">node_ptr</span> node1<span class="special">,</span> <span class="identifier">node_ptr</span> header1<span class="special">,</span> <span class="identifier">node_ptr</span> node2<span class="special">,</span> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm36521-bb"></a><span class="identifier">swap_nodes</span><span class="special">(</span><span class="identifier">node_ptr</span> node1<span class="special">,</span> <span class="identifier">node_ptr</span> header1<span class="special">,</span> <span class="identifier">node_ptr</span> node2<span class="special">,</span> <span class="identifier">node_ptr</span> header2<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: node1 and node2 can't be header nodes of two trees with header header1 and header2.</p> <p><span class="bold"><strong>Effects</strong></span>: Swaps two nodes. After the function node1 will be inserted in the position node2 before the function. node2 will be inserted in the position node1 had before the function.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Note</strong></span>: This function will break container ordering invariants if node1 and node2 are not equivalent according to the ordering rules.</p> -<p>Experimental function </p> +<p>Experimental function </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971713260560-bb"></a><span class="identifier">replace_node</span><span class="special">(</span><span class="identifier">node_ptr</span> node_to_be_replaced<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm36543-bb"></a><span class="identifier">replace_node</span><span class="special">(</span><span class="identifier">node_ptr</span> node_to_be_replaced<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: node_to_be_replaced must be inserted in a tree and new_node must not be inserted in a tree.</p> <p><span class="bold"><strong>Effects</strong></span>: Replaces node_to_be_replaced in its position in the tree with new_node. The tree does not need to be rebalanced</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: This function will break container ordering invariants if new_node is not equivalent to node_to_be_replaced according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing and comparison is needed. Experimental function </p> +<p><span class="bold"><strong>Note</strong></span>: This function will break container ordering invariants if new_node is not equivalent to node_to_be_replaced according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing and comparison is needed. Experimental function </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971713252992-bb"></a><span class="identifier">replace_node</span><span class="special">(</span><span class="identifier">node_ptr</span> node_to_be_replaced<span class="special">,</span> <span class="identifier">node_ptr</span> header<span class="special">,</span> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm36560-bb"></a><span class="identifier">replace_node</span><span class="special">(</span><span class="identifier">node_ptr</span> node_to_be_replaced<span class="special">,</span> <span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: node_to_be_replaced must be inserted in a tree with header "header" and new_node must not be inserted in a tree.</p> <p><span class="bold"><strong>Effects</strong></span>: Replaces node_to_be_replaced in its position in the tree with new_node. The tree does not need to be rebalanced</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: This function will break container ordering invariants if new_node is not equivalent to node_to_be_replaced according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing or comparison is needed. Experimental function </p> +<p><span class="bold"><strong>Note</strong></span>: This function will break container ordering invariants if new_node is not equivalent to node_to_be_replaced according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing or comparison is needed. Experimental function </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971713244720-bb"></a><span class="identifier">unlink</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span> node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: node is a tree node but not the header.</p> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm36579-bb"></a><span class="identifier">unlink</span><span class="special">(</span><span class="identifier">node_ptr</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 a tree node but not the header.</p> <p><span class="bold"><strong>Effects</strong></span>: Unlinks the node and rebalances the tree.</p> <p><span class="bold"><strong>Complexity</strong></span>: Average complexity is constant time.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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">node_ptr</span> -<a name="idm45971713239040-bb"></a><span class="identifier">unlink_leftmost_without_rebalance</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span> header<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">node_ptr</span> <a name="idm36592-bb"></a><span class="identifier">unlink_leftmost_without_rebalance</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: header is the header of a tree.</p> <p><span class="bold"><strong>Effects</strong></span>: Unlinks the leftmost node from the tree, and updates the header link to the new leftmost node.</p> <p><span class="bold"><strong>Complexity</strong></span>: Average complexity is constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Notes</strong></span>: This function breaks the tree and the tree can only be used for more unlink_leftmost_without_rebalance calls. This function is normally used to achieve a step by step controlled destruction of the tree. </p> +<p><span class="bold"><strong>Notes</strong></span>: This function breaks the tree and the tree can only be used for more unlink_leftmost_without_rebalance calls. This function is normally used to achieve a step by step controlled destruction of the tree. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">bool</span> <a name="idm45971713232272-bb"></a><span class="identifier">unique</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span> node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: 'node' is a node of the tree or a node initialized by init(...) or init_node.</p> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">bool</span> <a name="idm36607-bb"></a><span class="identifier">unique</span><span class="special">(</span><span class="identifier">const_node_ptr</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 a node of the tree or a node initialized by init(...) or init_node.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns true if the node is initialized by init() or init_node().</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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">std</span><span class="special">::</span><span class="identifier">size_t</span> <a name="idm45971713226560-bb"></a><span class="identifier">size</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span> header<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: node is a node of the tree but it's not the header.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns the number of nodes of the subtree.</p> +<pre class="literallayout"><span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a name="idm36620-bb"></a><span class="identifier">size</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<p><span class="bold"><strong>Requires</strong></span>: 'header' the header of the tree.</p> +<p><span class="bold"><strong>Effects</strong></span>: Returns the number of nodes of the tree.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear 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">node_ptr</span> <a name="idm45971713220896-bb"></a><span class="identifier">next_node</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span> node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: 'node' is a node from the tree except the header.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns the next node of the tree.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Average 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">node_ptr</span> <a name="idm45971713215232-bb"></a><span class="identifier">prev_node</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span> node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: 'node' is a node from the tree except the leftmost node.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns the previous node of the tree.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Average constant time.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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">node_ptr</span> <a name="idm36633-bb"></a><span class="identifier">next_node</span><span class="special">(</span><span class="identifier">node_ptr</span> n<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">node_ptr</span> <a name="idm36637-bb"></a><span class="identifier">prev_node</span><span class="special">(</span><span class="identifier">node_ptr</span> n<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971713209536-bb"></a><span class="identifier">init</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span> node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: 'node' must not be part of any tree.</p> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm36641-bb"></a><span class="identifier">init</span><span class="special">(</span><span class="identifier">node_ptr</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' must not be part of any tree.</p> <p><span class="bold"><strong>Effects</strong></span>: After the function unique(node) == true.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Nodes</strong></span>: If node is inserted in a tree, this function corrupts the tree. </p> +<p><span class="bold"><strong>Nodes</strong></span>: If node is inserted in a tree, this function corrupts the tree. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971713202992-bb"></a><span class="identifier">init_header</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: node must not be part of any tree.</p> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm36656-bb"></a><span class="identifier">init_header</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<p><span class="bold"><strong>Requires</strong></span>: header must not be part of any tree.</p> <p><span class="bold"><strong>Effects</strong></span>: Initializes the header to represent an empty tree. unique(header) == true.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Nodes</strong></span>: If node is inserted in a tree, this function corrupts the tree. </p> +<p><span class="bold"><strong>Nodes</strong></span>: If header is inserted in a tree, this function corrupts the tree. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="identifier">node_ptr</span> <a name="idm45971713196416-bb"></a><span class="identifier">erase</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> z<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">node_ptr</span> <a name="idm36671-bb"></a><span class="identifier">erase</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> z<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: header must be the header of a tree, z a node of that tree and z != header.</p> <p><span class="bold"><strong>Effects</strong></span>: Erases node "z" from the tree with header "header".</p> <p><span class="bold"><strong>Complexity</strong></span>: Amortized constant time.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> <pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodePtrCompare<span class="special">></span> - <span class="keyword">static</span> <span class="keyword">bool</span> <a name="idm45971713190016-bb"></a><span class="identifier">transfer_unique</span><span class="special">(</span><span class="identifier">node_ptr</span> header1<span class="special">,</span> <span class="identifier">NodePtrCompare</span> comp<span class="special">,</span> + <span class="keyword">static</span> <span class="keyword">bool</span> <a name="idm36686-bb"></a><span class="identifier">transfer_unique</span><span class="special">(</span><span class="identifier">node_ptr</span> header1<span class="special">,</span> <span class="identifier">NodePtrCompare</span> comp<span class="special">,</span> <span class="identifier">node_ptr</span> header2<span class="special">,</span> <span class="identifier">node_ptr</span> z<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: header1 and header2 must be the headers of trees tree1 and tree2 respectively, z a non-header node of tree1. NodePtrCompare is the comparison function of tree1..</p> <p><span class="bold"><strong>Effects</strong></span>: Transfers node "z" from tree1 to tree2 if tree1 does not contain a node that is equivalent to z.</p> <p><span class="bold"><strong>Returns</strong></span>: True if the node was trasferred, false otherwise.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comparison throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If the comparison throws. </p> </li> <li class="listitem"> <pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodePtrCompare<span class="special">></span> - <span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971713180656-bb"></a><span class="identifier">transfer_equal</span><span class="special">(</span><span class="identifier">node_ptr</span> header1<span class="special">,</span> <span class="identifier">NodePtrCompare</span> comp<span class="special">,</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a name="idm36709-bb"></a><span class="identifier">transfer_equal</span><span class="special">(</span><span class="identifier">node_ptr</span> header1<span class="special">,</span> <span class="identifier">NodePtrCompare</span> comp<span class="special">,</span> <span class="identifier">node_ptr</span> header2<span class="special">,</span> <span class="identifier">node_ptr</span> z<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: header1 and header2 must be the headers of trees tree1 and tree2 respectively, z a non-header node of tree1. NodePtrCompare is the comparison function of tree1..</p> <p><span class="bold"><strong>Effects</strong></span>: Transfers node "z" from tree1 to tree2.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comparison throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If the comparison throws. </p> </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">static</span> <span class="keyword">void</span> <a name="idm45971713172224-bb"></a><span class="identifier">clone</span><span class="special">(</span><span class="identifier">const_node_ptr</span> source_header<span class="special">,</span> <span class="identifier">node_ptr</span> target_header<span class="special">,</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a name="idm36730-bb"></a><span class="identifier">clone</span><span class="special">(</span><span class="identifier">const_node_ptr</span> source_header<span class="special">,</span> <span class="identifier">node_ptr</span> target_header<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>: "cloner" must be a function object taking a node_ptr and returning a new cloned node of it. "disposer" must take a node_ptr and shouldn't throw.</p> -<p><span class="bold"><strong>Effects</strong></span>: First empties target tree calling <code class="computeroutput">void disposer::operator()(const node_ptr &)</code> for every node of the tree except the header.</p> -<p>Then, duplicates the entire tree pointed by "source_header" cloning each source node with <code class="computeroutput">node_ptr Cloner::operator()(const node_ptr &)</code> to obtain the nodes of the target tree. If "cloner" throws, the cloned target nodes are disposed using <code class="computeroutput">void disposer(const node_ptr &)</code>.</p> +<p><span class="bold"><strong>Effects</strong></span>: First empties target tree calling <code class="computeroutput">void disposer::operator()(node_ptr)</code> for every node of the tree except the header.</p> +<p>Then, duplicates the entire tree pointed by "source_header" cloning each source node with <code class="computeroutput">node_ptr Cloner::operator()(node_ptr)</code> to obtain the nodes of the target tree. If "cloner" throws, the cloned target nodes are disposed using <code class="computeroutput">void disposer(node_ptr )</code>.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to the number of element of the source tree plus the number of elements of tree target tree when calling this function.</p> -<p><span class="bold"><strong>Throws</strong></span>: If cloner functor throws. If this happens target nodes are disposed. </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">static</span> <span class="keyword">void</span> <a name="idm45971713161200-bb"></a><span class="identifier">clear_and_dispose</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span> header<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" must be an object function taking a node_ptr parameter and shouldn't throw.</p> -<p><span class="bold"><strong>Effects</strong></span>: Empties the target tree calling <code class="computeroutput">void disposer::operator()(const node_ptr &)</code> for every node of the tree except the header.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Linear to the number of element of the source tree plus the. number of elements of tree target tree when calling this function.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: If cloner functor throws. If this happens target nodes are disposed. </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">static</span> <span class="keyword">void</span> <a name="idm36756-bb"></a><span class="identifier">clear_and_dispose</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">Disposer</span> disposer<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a name="idm45971713153344-bb"></a><span class="identifier">lower_bound</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span> header<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> key<span class="special">,</span> + <a name="idm36764-bb"></a><span class="identifier">lower_bound</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<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">KeyNodePtrCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns a node_ptr to the first element that is not less than "key" according to "comp" or "header" if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If "comp" 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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a name="idm45971713144880-bb"></a><span class="identifier">upper_bound</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span> header<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> key<span class="special">,</span> + <a name="idm36784-bb"></a><span class="identifier">upper_bound</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<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">KeyNodePtrCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns a node_ptr to the first element that is greater than "key" according to "comp" or "header" if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If "comp" 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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a name="idm45971713136416-bb"></a><span class="identifier">find</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span> header<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">KeyNodePtrCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <a name="idm36804-bb"></a><span class="identifier">find</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<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">KeyNodePtrCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns a node_ptr to the first element that is equivalent to "key" according to "comp" or "header" if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If "comp" 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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span> <span class="special">></span> - <a name="idm45971713127952-bb"></a><span class="identifier">equal_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span> header<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> key<span class="special">,</span> + <a name="idm36824-bb"></a><span class="identifier">equal_range</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<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">KeyNodePtrCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns an a pair of node_ptr delimiting a range containing all elements that are equivalent to "key" according to "comp" or an empty range that indicates the position where those elements would be if there are no equivalent elements.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If "comp" 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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span> <span class="special">></span> - <a name="idm45971713119360-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span> header<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> + <a name="idm36844-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="identifier">const_node_ptr</span> eader<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> <span class="identifier">KeyNodePtrCompare</span> comp<span class="special">,</span> <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs. 'lower_key' must not be greater than 'upper_key' according to 'comp'. If 'lower_key' == 'upper_key', ('left_closed' || 'right_closed') must be true.</p> @@ -369,129 +349,98 @@ <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> <p><span class="bold"><strong>Throws</strong></span>: If "comp" throws.</p> <p><span class="bold"><strong>Note</strong></span>: This function can be more efficient than calling upper_bound and lower_bound for lower_key and upper_key.</p> -<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change. </p> +<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change. </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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> - <a name="idm45971713106224-bb"></a><span class="identifier">count</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span> header<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">KeyNodePtrCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <a name="idm36876-bb"></a><span class="identifier">count</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<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">KeyNodePtrCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns the number of elements with a key equivalent to "key" according to "comp".</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws. </p> </li> <li class="listitem"> <pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a name="idm45971713097808-bb"></a><span class="identifier">insert_equal_upper_bound</span><span class="special">(</span><span class="identifier">node_ptr</span> h<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">,</span> <span class="identifier">NodePtrCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <a name="idm36896-bb"></a><span class="identifier">insert_equal_upper_bound</span><span class="special">(</span><span class="identifier">node_ptr</span> h<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">,</span> <span class="identifier">NodePtrCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "h" must be the header node of a tree. NodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. NodePtrCompare compares two node_ptrs.</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts new_node into the tree before the upper bound according to "comp".</p> <p><span class="bold"><strong>Complexity</strong></span>: Average complexity for insert element is at most logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws. </p> </li> <li class="listitem"> <pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a name="idm45971713089920-bb"></a><span class="identifier">insert_equal_lower_bound</span><span class="special">(</span><span class="identifier">node_ptr</span> h<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">,</span> <span class="identifier">NodePtrCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <a name="idm36915-bb"></a><span class="identifier">insert_equal_lower_bound</span><span class="special">(</span><span class="identifier">node_ptr</span> h<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">,</span> <span class="identifier">NodePtrCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "h" must be the header node of a tree. NodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. NodePtrCompare compares two node_ptrs.</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts new_node into the tree before the lower bound according to "comp".</p> <p><span class="bold"><strong>Complexity</strong></span>: Average complexity for insert element is at most logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws. </p> </li> <li class="listitem"> <pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a name="idm45971713082032-bb"></a><span class="identifier">insert_equal</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> hint<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">,</span> + <a name="idm36934-bb"></a><span class="identifier">insert_equal</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> hint<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">,</span> <span class="identifier">NodePtrCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "header" must be the header node of a tree. NodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. NodePtrCompare compares two node_ptrs. "hint" is node from the "header"'s tree.</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts new_node into the tree, using "hint" as a hint to where it will be inserted. If "hint" is the upper_bound the insertion takes constant time (two comparisons in the worst case).</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic in general, but it is amortized constant time if new_node is inserted immediately before "hint".</p> -<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws. </p> </li> <li class="listitem"> <pre class="literallayout"><span class="keyword">static</span> <span class="identifier">node_ptr</span> -<a name="idm45971713073264-bb"></a><span class="identifier">insert_before</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> pos<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<a name="idm36955-bb"></a><span class="identifier">insert_before</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> pos<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "header" must be the header node of a tree. "pos" must be a valid iterator or header (end) node. "pos" must be an iterator pointing to the successor to "new_node" once inserted according to the order of already inserted nodes. This function does not check "pos" and this precondition must be guaranteed by the caller.</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts new_node into the tree before "pos".</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant-time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: If "pos" is not the successor of the newly inserted "new_node" tree invariants might be broken. </p> +<p><span class="bold"><strong>Note</strong></span>: If "pos" is not the successor of the newly inserted "new_node" tree invariants might be broken. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971713065024-bb"></a><span class="identifier">push_back</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm36974-bb"></a><span class="identifier">push_back</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "header" must be the header node of a tree. "new_node" must be, according to the used ordering no less than the greatest inserted key.</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts new_node into the tree before "pos".</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant-time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: If "new_node" is less than the greatest inserted key tree invariants are broken. This function is slightly faster than using "insert_before". </p> +<p><span class="bold"><strong>Note</strong></span>: If "new_node" is less than the greatest inserted key tree invariants are broken. This function is slightly faster than using "insert_before". </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971713057600-bb"></a><span class="identifier">push_front</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm36991-bb"></a><span class="identifier">push_front</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "header" must be the header node of a tree. "new_node" must be, according to the used ordering, no greater than the lowest inserted key.</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts new_node into the tree before "pos".</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant-time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: If "new_node" is greater than the lowest inserted key tree invariants are broken. This function is slightly faster than using "insert_before". </p> +<p><span class="bold"><strong>Note</strong></span>: If "new_node" is greater than the lowest inserted key tree invariants are broken. This function is slightly faster than using "insert_before". </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> KeyNodePtrCompare<span class="special">></span> +<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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="keyword">bool</span> <span class="special">></span> - <a name="idm45971713050176-bb"></a><span class="identifier">insert_unique_check</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> key<span class="special">,</span> + <a name="idm37008-bb"></a><span class="identifier">insert_unique_check</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<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">KeyNodePtrCompare</span> comp<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>: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. NodePtrCompare compares KeyType with a node_ptr.</p> -<p><span class="bold"><strong>Effects</strong></span>: Checks if there is an equivalent node to "key" in the tree according to "comp" and obtains the needed information to realize a constant-time node insertion if there is no equivalent node.</p> -<p><span class="bold"><strong>Returns</strong></span>: If there is an equivalent value returns a pair containing a node_ptr to the already present node and false. If there is not equivalent key can be inserted returns true in the returned pair's boolean and fills "commit_data" that is meant to be used with the "insert_commit" function to achieve a constant-time insertion function.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Average complexity is at most logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws.</p> -<p><span class="bold"><strong>Notes</strong></span>: This function is used to improve performance when constructing a node is expensive and the user does not want to have two equivalent nodes in the tree: if there is an equivalent value the constructed object must be discarded. Many times, the part of the node that is used to impose the order is much cheaper to construct than the node and this function offers the possibility to use that part to check if the insertion will be successful.</p> -<p>If the check is successful, the user can construct the node and use "insert_commit" to insert the node in constant-time. This gives a total logarithmic complexity to the insertion: check(O(log(N)) + commit(O(1)).</p> -<p>"commit_data" remains valid for a subsequent "insert_unique_commit" only if no more objects are inserted or erased from the set. </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> KeyNodePtrCompare<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></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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="keyword">bool</span> <span class="special">></span> - <a name="idm45971713037600-bb"></a><span class="identifier">insert_unique_check</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> hint<span class="special">,</span> + <a name="idm37021-bb"></a><span class="identifier">insert_unique_check</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> hint<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">KeyNodePtrCompare</span> comp<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>: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. NodePtrCompare compares KeyType with a node_ptr. "hint" is node from the "header"'s tree.</p> -<p><span class="bold"><strong>Effects</strong></span>: Checks if there is an equivalent node to "key" in the tree according to "comp" using "hint" as a hint to where it should be inserted and obtains the needed information to realize a constant-time node insertion if there is no equivalent node. If "hint" is the upper_bound the function has constant time complexity (two comparisons in the worst case).</p> -<p><span class="bold"><strong>Returns</strong></span>: If there is an equivalent value returns a pair containing a node_ptr to the already present node and false. If there is not equivalent key can be inserted returns true in the returned pair's boolean and fills "commit_data" that is meant to be used with the "insert_commit" function to achieve a constant-time insertion function.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Average complexity is at most logarithmic, but it is amortized constant time if new_node should be inserted immediately before "hint".</p> -<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws.</p> -<p><span class="bold"><strong>Notes</strong></span>: This function is used to improve performance when constructing a node is expensive and the user does not want to have two equivalent nodes in the tree: if there is an equivalent value the constructed object must be discarded. Many times, the part of the node that is used to impose the order is much cheaper to construct than the node and this function offers the possibility to use that part to check if the insertion will be successful.</p> -<p>If the check is successful, the user can construct the node and use "insert_commit" to insert the node in constant-time. This gives a total logarithmic complexity to the insertion: check(O(log(N)) + commit(O(1)).</p> -<p>"commit_data" remains valid for a subsequent "insert_unique_commit" only if no more objects are inserted or erased from the set. </p> -</li> + <span class="identifier">insert_commit_data</span> <span class="special">&</span> commit_data<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm37036-bb"></a><span class="identifier">insert_unique_commit</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> new_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></li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971713024032-bb"></a><span class="identifier">insert_unique_commit</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> new_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>: "header" must be the header node of a tree. "commit_data" must have been obtained from a previous call to "insert_unique_check". No objects should have been inserted or erased from the set between the "insert_unique_check" that filled "commit_data" and the call to "insert_commit".</p> -<p><span class="bold"><strong>Effects</strong></span>: Inserts new_node in the set using the information obtained from the "commit_data" that a previous "insert_check" filled.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Notes</strong></span>: This function has only sense if a "insert_unique_check" has been previously executed to fill "commit_data". No value should be inserted or erased between the "insert_check" and "insert_commit" calls. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">bool</span> <a name="idm45971713015616-bb"></a><span class="identifier">is_header</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span> p<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">bool</span> <a name="idm37044-bb"></a><span class="identifier">is_header</span><span class="special">(</span><span class="identifier">const_node_ptr</span> p<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: p is a node of a tree.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns true if p is the header of the tree.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> </ol></div> </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="rbtree.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.rbtree_algorithms_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_multiset.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/set.html b/doc/html/boost/intrusive/set.html index 46456cd897..af9bf68e4d 100644 --- a/doc/html/boost/intrusive/set.html +++ b/doc/html/boost/intrusive/set.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.set_hpp" title="Header <boost/intrusive/set.hpp>"> <link rel="prev" href="multiset.html" title="Class template multiset"> <link rel="next" href="make_set_base_hook.html" title="Struct template make_set_base_hook"> +<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> @@ -29,8 +30,8 @@ <h2><span class="refentrytitle">Class template set</span></h2> <p>boost::intrusive::set</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.set_hpp" title="Header <boost/intrusive/set.hpp>">boost/intrusive/set.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.set_hpp" title="Header <boost/intrusive/set.hpp>">boost/intrusive/set.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="set.html" title="Class template set">set</a> <span class="special">{</span> @@ -60,496 +61,398 @@ <span class="keyword">typedef</span> <span class="identifier">implementation_defined</span><span class="special">::</span><span class="identifier">node_algorithms</span> <a name="boost.intrusive.set.node_algorithms"></a><span class="identifier">node_algorithms</span><span class="special">;</span> <span class="comment">// <a class="link" href="set.html#boost.intrusive.setconstruct-copy-destruct">construct/copy/destruct</a></span> - <a class="link" href="set.html#idm45971711950240-bb"><span class="identifier">set</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">explicit</span> <a class="link" href="set.html#idm45971711947088-bb"><span class="identifier">set</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_compare</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="set.html#idm38936-bb"><span class="identifier">set</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">explicit</span> <a class="link" href="set.html#idm38944-bb"><span class="identifier">set</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_compare</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="set.html#idm45971711941968-bb"><span class="identifier">set</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="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> <span class="special">=</span> <span class="identifier">key_compare</span><span class="special">(</span><span class="special">)</span><span class="special">,</span> + <a class="link" href="set.html#idm38950-bb"><span class="identifier">set</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="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> <span class="special">=</span> <span class="identifier">key_compare</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="set.html#idm45971711933504-bb"><span class="identifier">set</span></a><span class="special">(</span><a class="link" href="set.html" title="Class template set">set</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> - <a class="link" href="set.html" title="Class template set">set</a> <span class="special">&</span> <a class="link" href="set.html#idm45971711929200-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><a class="link" href="set.html" title="Class template set">set</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> - <a class="link" href="set.html#idm45971711926384-bb"><span class="special">~</span><span class="identifier">set</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="set.html#idm38963-bb"><span class="identifier">set</span></a><span class="special">(</span><a class="link" href="set.html" title="Class template set">set</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="set.html" title="Class template set">set</a> <span class="special">&</span> <a class="link" href="set.html#idm38974-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><a class="link" href="set.html" title="Class template set">set</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="set.html#idm38983-bb"><span class="special">~</span><span class="identifier">set</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> - <span class="comment">// <a class="link" href="set.html#idm45971712434976-bb">public member functions</a></span> - <span class="identifier">iterator</span> <a class="link" href="set.html#idm45971712434416-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="set.html#idm45971712430576-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="set.html#idm45971712426736-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="set.html#idm45971712422896-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="set.html#idm45971712419056-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="set.html#idm45971712415216-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">reverse_iterator</span> <a class="link" href="set.html#idm45971712411376-bb"><span class="identifier">rbegin</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="identifier">const_reverse_iterator</span> <a class="link" href="set.html#idm45971712407520-bb"><span class="identifier">rbegin</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_reverse_iterator</span> <a class="link" href="set.html#idm45971712403664-bb"><span class="identifier">crbegin</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">reverse_iterator</span> <a class="link" href="set.html#idm45971712399808-bb"><span class="identifier">rend</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="identifier">const_reverse_iterator</span> <a class="link" href="set.html#idm45971712395952-bb"><span class="identifier">rend</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_reverse_iterator</span> <a class="link" href="set.html#idm45971712392096-bb"><span class="identifier">crend</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="set.html#idm45971712388240-bb"><span class="identifier">root</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="set.html#idm45971712384368-bb"><span class="identifier">root</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="set.html#idm45971712380496-bb"><span class="identifier">croot</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">key_compare</span> <a class="link" href="set.html#idm45971712376624-bb"><span class="identifier">key_comp</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">value_compare</span> <a class="link" href="set.html#idm45971712372768-bb"><span class="identifier">value_comp</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="set.html#idm45971712368896-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="set.html#idm45971712365072-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="set.html#idm45971712361136-bb"><span class="identifier">swap</span></a><span class="special">(</span><a class="link" href="set.html" title="Class template set">set</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="comment">// <a class="link" href="set.html#idm38084-bb">public member functions</a></span> + <span class="identifier">iterator</span> <a class="link" href="set.html#idm38085-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="set.html#idm38094-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="set.html#idm38103-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="set.html#idm38112-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="set.html#idm38121-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="set.html#idm38130-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">reverse_iterator</span> <a class="link" href="set.html#idm38139-bb"><span class="identifier">rbegin</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">const_reverse_iterator</span> <a class="link" href="set.html#idm38148-bb"><span class="identifier">rbegin</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_reverse_iterator</span> <a class="link" href="set.html#idm38157-bb"><span class="identifier">crbegin</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">reverse_iterator</span> <a class="link" href="set.html#idm38166-bb"><span class="identifier">rend</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">const_reverse_iterator</span> <a class="link" href="set.html#idm38175-bb"><span class="identifier">rend</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_reverse_iterator</span> <a class="link" href="set.html#idm38184-bb"><span class="identifier">crend</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="set.html#idm38193-bb"><span class="identifier">root</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="set.html#idm38202-bb"><span class="identifier">root</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="set.html#idm38211-bb"><span class="identifier">croot</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">key_compare</span> <a class="link" href="set.html#idm38220-bb"><span class="identifier">key_comp</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">value_compare</span> <a class="link" href="set.html#idm38229-bb"><span class="identifier">value_comp</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="set.html#idm38238-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="set.html#idm38247-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="set.html#idm38256-bb"><span class="identifier">swap</span></a><span class="special">(</span><a class="link" href="set.html" title="Class template set">set</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="set.html#idm45971712356592-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="set.html" title="Class template set">set</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="set.html#idm38268-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="set.html" title="Class template set">set</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="set.html#idm45971712347536-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><a class="link" href="set.html" title="Class template set">set</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">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="set.html#idm45971712337728-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="identifier">reference</span><span class="special">)</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="set.html#idm45971712331584-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">,</span> <span class="identifier">reference</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="set.html#idm38290-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><a class="link" href="set.html" title="Class template set">set</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">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="set.html#idm38314-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="identifier">reference</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="set.html#idm38318-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">,</span> <span class="identifier">reference</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="set.html#idm45971712324624-bb"><span class="identifier">insert_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> + <a class="link" href="set.html#idm38324-bb"><span class="identifier">insert_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">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="set.html#idm45971712318432-bb"><span class="identifier">insert_check</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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> + <a class="link" href="set.html#idm38330-bb"><span class="identifier">insert_check</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> KeyType<span class="special">,</span> <span class="keyword">typename</span> KeyTypeKeyCompare<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="set.html#idm45971712311456-bb"><span class="identifier">insert_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">KeyTypeKeyCompare</span><span class="special">,</span> <span class="identifier">insert_commit_data</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="set.html#idm38338-bb"><span class="identifier">insert_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">KeyTypeKeyCompare</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="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> KeyType<span class="special">,</span> <span class="keyword">typename</span> KeyTypeKeyCompare<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="set.html#idm45971712300048-bb"><span class="identifier">insert_check</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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">KeyTypeKeyCompare</span><span class="special">,</span> + <a class="link" href="set.html#idm38349-bb"><span class="identifier">insert_check</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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">KeyTypeKeyCompare</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="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="set.html#idm45971712287856-bb"><span class="identifier">insert</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">iterator</span> <a class="link" href="set.html#idm45971712280064-bb"><span class="identifier">insert_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="identifier">iterator</span> <a class="link" href="set.html#idm45971712271760-bb"><span class="identifier">insert_before</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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">void</span> <a class="link" href="set.html#idm45971712264528-bb"><span class="identifier">push_back</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">void</span> <a class="link" href="set.html#idm45971712257968-bb"><span class="identifier">push_front</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">iterator</span> <a class="link" href="set.html#idm45971712251408-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="identifier">iterator</span> <a class="link" href="set.html#idm45971712245920-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="set.html#idm45971712239680-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> Iterator<span class="special">></span> <span class="keyword">void</span> <a class="link" href="set.html#idm38362-bb"><span class="identifier">insert</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">iterator</span> <a class="link" href="set.html#idm38381-bb"><span class="identifier">insert_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="identifier">iterator</span> <a class="link" href="set.html#idm38400-bb"><span class="identifier">insert_before</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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">void</span> <a class="link" href="set.html#idm38417-bb"><span class="identifier">push_back</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">void</span> <a class="link" href="set.html#idm38432-bb"><span class="identifier">push_front</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">iterator</span> <a class="link" href="set.html#idm38447-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="identifier">iterator</span> <a class="link" href="set.html#idm38451-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="set.html#idm38457-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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">size_type</span> <a class="link" href="set.html#idm45971712233632-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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">size_type</span> <a class="link" href="set.html#idm38461-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">KeyTypeKeyCompare</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="identifier">iterator</span> <a class="link" href="set.html#idm45971712223536-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="identifier">iterator</span> <a class="link" href="set.html#idm38485-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="identifier">iterator</span> <a class="link" href="set.html#idm45971712215632-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="identifier">iterator</span> <a class="link" href="set.html#idm38493-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="set.html#idm45971712206976-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="set.html#idm38503-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> KeyTypeKeyCompare<span class="special">,</span> <span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="identifier">size_type</span> <a class="link" href="set.html#idm45971712198448-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">KeyTypeKeyCompare</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="set.html#idm45971712186224-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="set.html#idm45971712181360-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="set.html#idm45971712175056-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="identifier">size_type</span> <a class="link" href="set.html#idm38511-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">KeyTypeKeyCompare</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="set.html#idm38540-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="set.html#idm38551-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="set.html#idm38565-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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">size_type</span> <a class="link" href="set.html#idm45971712169984-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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="set.html#idm45971712160928-bb"><span class="identifier">lower_bound</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="set.html#idm38569-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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="set.html#idm38590-bb"><span class="identifier">lower_bound</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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a class="link" href="set.html#idm45971712156176-bb"><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> - <span class="identifier">const_iterator</span> <a class="link" href="set.html#idm45971712149328-bb"><span class="identifier">lower_bound</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="set.html#idm38594-bb"><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">const_iterator</span> <a class="link" href="set.html#idm38603-bb"><span class="identifier">lower_bound</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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">const_iterator</span> <a class="link" href="set.html#idm45971712144304-bb"><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="set.html#idm45971712137184-bb"><span class="identifier">upper_bound</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="set.html#idm38607-bb"><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="set.html#idm38616-bb"><span class="identifier">upper_bound</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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a class="link" href="set.html#idm45971712132432-bb"><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> - <span class="identifier">const_iterator</span> <a class="link" href="set.html#idm45971712123728-bb"><span class="identifier">upper_bound</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="set.html#idm38620-bb"><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">const_iterator</span> <a class="link" href="set.html#idm38641-bb"><span class="identifier">upper_bound</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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">const_iterator</span> <a class="link" href="set.html#idm45971712118704-bb"><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="set.html#idm45971712109728-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">const_iterator</span> <a class="link" href="set.html#idm38645-bb"><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="set.html#idm38666-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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a class="link" href="set.html#idm45971712104992-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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> - <span class="identifier">const_iterator</span> <a class="link" href="set.html#idm45971712096256-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="set.html#idm38670-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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">const_iterator</span> <a class="link" href="set.html#idm38691-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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">const_iterator</span> <a class="link" href="set.html#idm45971712091248-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">KeyTypeKeyCompare</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="set.html#idm45971712082240-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="set.html#idm38695-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">KeyTypeKeyCompare</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="set.html#idm38716-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> KeyTypeKeyCompare<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="set.html#idm45971712077408-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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="set.html#idm38720-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">KeyTypeKeyCompare</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="set.html#idm45971712068576-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="set.html#idm38741-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> KeyTypeKeyCompare<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="set.html#idm45971712063456-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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <a class="link" href="set.html#idm38745-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">KeyTypeKeyCompare</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="set.html#idm45971712054336-bb"><span class="identifier">bounded_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="identifier">key_type</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="set.html#idm38766-bb"><span class="identifier">bounded_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="identifier">key_type</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</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> KeyTypeKeyCompare<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="set.html#idm45971712041904-bb"><span class="identifier">bounded_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="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> + <a class="link" href="set.html#idm38776-bb"><span class="identifier">bounded_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="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</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="set.html#idm45971712025104-bb"><span class="identifier">bounded_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="identifier">key_type</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <a class="link" href="set.html#idm38818-bb"><span class="identifier">bounded_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="identifier">key_type</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</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> KeyTypeKeyCompare<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="set.html#idm45971712012384-bb"><span class="identifier">bounded_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="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> + <a class="link" href="set.html#idm38828-bb"><span class="identifier">bounded_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="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="set.html#idm45971711995296-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="set.html#idm45971711989808-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">pointer</span> <a class="link" href="set.html#idm45971711984320-bb"><span class="identifier">unlink_leftmost_without_rebalance</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="set.html#idm45971711979408-bb"><span class="identifier">replace_node</span></a><span class="special">(</span><span class="identifier">iterator</span><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">void</span> <a class="link" href="set.html#idm45971711972144-bb"><span class="identifier">remove_node</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">template</span><span class="special"><</span><span class="keyword">class</span> <span class="special">...</span> Options2<span class="special">></span> <span class="keyword">void</span> <a class="link" href="set.html#idm45971711966304-bb"><span class="identifier">merge</span></a><span class="special">(</span><a class="link" href="set.html" title="Class template set">set</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</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">class</span> <span class="special">...</span> Options2<span class="special">></span> <span class="keyword">void</span> <a class="link" href="set.html#idm45971711958352-bb"><span class="identifier">merge</span></a><span class="special">(</span><a class="link" href="multiset.html" title="Class template multiset">multiset</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="set.html#idm38870-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="set.html#idm38874-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">pointer</span> <a class="link" href="set.html#idm38878-bb"><span class="identifier">unlink_leftmost_without_rebalance</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="set.html#idm38889-bb"><span class="identifier">replace_node</span></a><span class="special">(</span><span class="identifier">iterator</span><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">void</span> <a class="link" href="set.html#idm38906-bb"><span class="identifier">remove_node</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">template</span><span class="special"><</span><span class="keyword">class</span> <span class="special">...</span> Options2<span class="special">></span> <span class="keyword">void</span> <a class="link" href="set.html#idm38920-bb"><span class="identifier">merge</span></a><span class="special">(</span><a class="link" href="set.html" title="Class template set">set</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</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">class</span> <span class="special">...</span> Options2<span class="special">></span> <span class="keyword">void</span> <a class="link" href="set.html#idm38928-bb"><span class="identifier">merge</span></a><span class="special">(</span><a class="link" href="multiset.html" title="Class template multiset">multiset</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> - <span class="comment">// <a class="link" href="set.html#idm45971711922480-bb">public static functions</a></span> - <span class="keyword">static</span> <a class="link" href="set.html" title="Class template set">set</a> <span class="special">&</span> <a class="link" href="set.html#idm45971711921920-bb"><span class="identifier">container_from_end_iterator</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="set.html" title="Class template set">set</a> <span class="special">&</span> <a class="link" href="set.html#idm45971711915904-bb"><span class="identifier">container_from_end_iterator</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">static</span> <a class="link" href="set.html" title="Class template set">set</a> <span class="special">&</span> <a class="link" href="set.html#idm45971711909728-bb"><span class="identifier">container_from_iterator</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="set.html" title="Class template set">set</a> <span class="special">&</span> <a class="link" href="set.html#idm45971711903760-bb"><span class="identifier">container_from_iterator</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">static</span> <span class="identifier">iterator</span> <a class="link" href="set.html#idm45971711897632-bb"><span class="identifier">s_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_iterator</span> <a class="link" href="set.html#idm45971711890544-bb"><span class="identifier">s_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="keyword">void</span> <a class="link" href="set.html#idm45971711883456-bb"><span class="identifier">init_node</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="comment">// <a class="link" href="set.html#idm38992-bb">public static functions</a></span> + <span class="keyword">static</span> <a class="link" href="set.html" title="Class template set">set</a> <span class="special">&</span> <a class="link" href="set.html#idm38993-bb"><span class="identifier">container_from_end_iterator</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="set.html" title="Class template set">set</a> <span class="special">&</span> <a class="link" href="set.html#idm38998-bb"><span class="identifier">container_from_end_iterator</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">static</span> <a class="link" href="set.html" title="Class template set">set</a> <span class="special">&</span> <a class="link" href="set.html#idm39003-bb"><span class="identifier">container_from_iterator</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="set.html" title="Class template set">set</a> <span class="special">&</span> <a class="link" href="set.html#idm39008-bb"><span class="identifier">container_from_iterator</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">static</span> <span class="identifier">iterator</span> <a class="link" href="set.html#idm39013-bb"><span class="identifier">s_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_iterator</span> <a class="link" href="set.html#idm39017-bb"><span class="identifier">s_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="keyword">void</span> <a class="link" href="set.html#idm39021-bb"><span class="identifier">init_node</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="comment">// public data members</span> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">bool</span> <span class="identifier">constant_time_size</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.30.6.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.30.6.4"></a><h2>Description</h2> <p>The class template set is an intrusive container, that mimics most of the interface of std::set as described in the C++ standard.</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> <p>The container supports the following options: <code class="computeroutput">base_hook<>/member_hook<>/value_traits<></code>, <code class="computeroutput">constant_time_size<></code>, <code class="computeroutput">size_type<></code> and <code class="computeroutput">compare<></code>. </p> <div class="refsect2"> -<a name="id-1.3.20.42.30.6.4.5"></a><h3> +<a name="id-1.3.18.42.30.6.4.5"></a><h3> <a name="boost.intrusive.setconstruct-copy-destruct"></a><code class="computeroutput">set</code> public construct/copy/destruct</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> <li class="listitem"> -<pre class="literallayout"><a name="idm45971711950240-bb"></a><span class="identifier">set</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm38936-bb"></a><span class="identifier">set</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Constructs an empty container.</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 constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor of the key_compare object throws. Basic guarantee. </p> +<p><span class="bold"><strong>Throws</strong></span>: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor of the key_compare object throws. Basic guarantee. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="keyword">explicit</span> <a name="idm38944-bb"></a><span class="identifier">set</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> cmp<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></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="idm38950-bb"></a><span class="identifier">set</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="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> cmp <span class="special">=</span> <span class="identifier">key_compare</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></li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">explicit</span> <a name="idm45971711947088-bb"></a><span class="identifier">set</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> cmp<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> -<p><span class="bold"><strong>Effects</strong></span>: Constructs an empty container with given comparison and traits.</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 constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor of the key_compare object throws. Basic guarantee. </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> - <a name="idm45971711941968-bb"></a><span class="identifier">set</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="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> cmp <span class="special">=</span> <span class="identifier">key_compare</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> -<p><span class="bold"><strong>Requires</strong></span>: Dereferencing iterator must yield an lvalue of type value_type. cmp must be a comparison function that induces a strict weak ordering.</p> -<p><span class="bold"><strong>Effects</strong></span>: Constructs an empty container and inserts elements from [b, e).</p> -<p><span class="bold"><strong>Complexity</strong></span>: Linear in N if [b, e) is already sorted using comp and otherwise N * log N, where N is the distance between first and last.</p> -<p><span class="bold"><strong>Throws</strong></span>: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor/operator() of the key_compare object throws. Basic guarantee. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><a name="idm45971711933504-bb"></a><span class="identifier">set</span><span class="special">(</span><a class="link" href="set.html" title="Class template set">set</a> <span class="special">&&</span> x<span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm38963-bb"></a><span class="identifier">set</span><span class="special">(</span><a class="link" href="set.html" title="Class template set">set</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 comparison object and value traits are move constructed and nodes belonging to x (except the node representing the "end") 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 the comparison objet throws. </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 the comparison objet throws. </p> </li> <li class="listitem"> -<pre class="literallayout"><a class="link" href="set.html" title="Class template set">set</a> <span class="special">&</span> <a name="idm45971711929200-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><a class="link" href="set.html" title="Class template set">set</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> +<pre class="literallayout"><a class="link" href="set.html" title="Class template set">set</a> <span class="special">&</span> <a name="idm38974-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><a class="link" href="set.html" title="Class template set">set</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="idm45971711926384-bb"></a><span class="special">~</span><span class="identifier">set</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm38983-bb"></a><span class="special">~</span><span class="identifier">set</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 set are not deleted (i.e. no destructors are called), but the nodes according to the <code class="computeroutput"><a class="link" href="value_traits.html" title="Struct template value_traits">value_traits</a></code> template parameter are reinitialized and thus can be reused.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to elements contained in *this.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> </ol></div> </div> <div class="refsect2"> -<a name="id-1.3.20.42.30.6.4.6"></a><h3> -<a name="idm45971712434976-bb"></a><code class="computeroutput">set</code> public member functions</h3> +<a name="id-1.3.18.42.30.6.4.6"></a><h3> +<a name="idm38084-bb"></a><code class="computeroutput">set</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="idm45971712434416-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="idm38085-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971712430576-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="idm38094-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971712426736-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="idm38103-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971712422896-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="idm38112-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971712419056-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="idm38121-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971712415216-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="idm38130-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">reverse_iterator</span> <a name="idm45971712411376-bb"></a><span class="identifier">rbegin</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">reverse_iterator</span> <a name="idm38139-bb"></a><span class="identifier">rbegin</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 a reverse_iterator pointing to the beginning of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45971712407520-bb"></a><span class="identifier">rbegin</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_reverse_iterator</span> <a name="idm38148-bb"></a><span class="identifier">rbegin</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_reverse_iterator pointing to the beginning of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45971712403664-bb"></a><span class="identifier">crbegin</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_reverse_iterator</span> <a name="idm38157-bb"></a><span class="identifier">crbegin</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_reverse_iterator pointing to the beginning of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">reverse_iterator</span> <a name="idm45971712399808-bb"></a><span class="identifier">rend</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">reverse_iterator</span> <a name="idm38166-bb"></a><span class="identifier">rend</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 a reverse_iterator pointing to the end of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45971712395952-bb"></a><span class="identifier">rend</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_reverse_iterator</span> <a name="idm38175-bb"></a><span class="identifier">rend</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_reverse_iterator pointing to the end of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45971712392096-bb"></a><span class="identifier">crend</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_reverse_iterator</span> <a name="idm38184-bb"></a><span class="identifier">crend</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_reverse_iterator pointing to the end of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971712388240-bb"></a><span class="identifier">root</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="idm38193-bb"></a><span class="identifier">root</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 a iterator pointing to the root node of the container or end() if not present.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971712384368-bb"></a><span class="identifier">root</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="idm38202-bb"></a><span class="identifier">root</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 root node of the container or cend() if not present.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971712380496-bb"></a><span class="identifier">croot</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="idm38211-bb"></a><span class="identifier">croot</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 root node of the container or cend() if not present.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">key_compare</span> <a name="idm45971712376624-bb"></a><span class="identifier">key_comp</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_compare</span> <a name="idm38220-bb"></a><span class="identifier">key_comp</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_compare object used by the container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: If key_compare copy-constructor throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If key_compare copy-constructor throws. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">value_compare</span> <a name="idm45971712372768-bb"></a><span class="identifier">value_comp</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">value_compare</span> <a name="idm38229-bb"></a><span class="identifier">value_comp</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 value_compare object used by the container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: If value_compare copy-constructor throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If value_compare copy-constructor throws. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">bool</span> <a name="idm45971712368896-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="idm38238-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>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971712365072-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="idm38247-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to elements contained in *this if constant-time size option is disabled. Constant time otherwise.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971712361136-bb"></a><span class="identifier">swap</span><span class="special">(</span><a class="link" href="set.html" title="Class template set">set</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="idm38256-bb"></a><span class="identifier">swap</span><span class="special">(</span><a class="link" href="set.html" title="Class template set">set</a> <span class="special">&</span> other<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Swaps the contents of two containers.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comparison functor's swap call throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If the comparison functor's swap call throws. </p> </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="idm45971712356592-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="set.html" title="Class template set">set</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="idm38268-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="set.html" title="Class template set">set</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 equivalent to the original nodes.</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. Copies the predicate from the source container.</p> <p>If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to erased plus inserted elements.</p> -<p><span class="bold"><strong>Throws</strong></span>: If cloner throws or predicate copy assignment throws. Basic guarantee. </p> +<p><span class="bold"><strong>Throws</strong></span>: If cloner throws or predicate copy assignment throws. Basic guarantee. </p> </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="idm45971712347536-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><a class="link" href="set.html" title="Class template set">set</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="idm38290-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><a class="link" href="set.html" title="Class template set">set</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 equivalent to the original nodes.</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. Copies the predicate from the source container.</p> <p>If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to erased plus inserted elements.</p> <p><span class="bold"><strong>Throws</strong></span>: If cloner throws or predicate copy assignment throws. Basic guarantee.</p> -<p><span class="bold"><strong>Note</strong></span>: This version can modify the source container, useful to implement move semantics. </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="idm45971712337728-bb"></a><span class="identifier">insert</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 value into the container if the value is not already present.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Average complexity for insert element is at most logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comparison functor call throws.</p> -<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">iterator</span> <a name="idm45971712331584-bb"></a><span class="identifier">insert</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<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, and "hint" must be a valid iterator</p> -<p><span class="bold"><strong>Effects</strong></span>: Tries to insert x into the container, using "hint" as a hint to where it will be inserted.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic in general, but it is amortized constant time (two comparisons in the worst case) if t is inserted immediately before hint.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comparison functor call throws.</p> -<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="idm45971712324624-bb"></a><span class="identifier">insert_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 container, 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 complexity is at most logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comp ordering function throws. Strong guarantee. </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="idm45971712318432-bb"></a><span class="identifier">insert_check</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<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 container, using a user provided key instead of the value itself, using "hint" as a hint to where it will be inserted.</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>: Logarithmic in general, but it's amortized constant time if t is inserted immediately before hint.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comp ordering function throws. Strong guarantee. </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> KeyTypeKeyCompare<span class="special">></span> +<p><span class="bold"><strong>Note</strong></span>: This version can modify the source container, useful to implement move semantics. </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="idm38314-bb"></a><span class="identifier">insert</span><span class="special">(</span><span class="identifier">reference</span> value<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm38318-bb"></a><span class="identifier">insert</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<span class="special">,</span> <span class="identifier">reference</span> value<span class="special">)</span><span class="special">;</span></pre></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="idm38324-bb"></a><span class="identifier">insert_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></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="idm38330-bb"></a><span class="identifier">insert_check</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<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></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> KeyTypeKeyCompare<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="idm45971712311456-bb"></a><span class="identifier">insert_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">KeyTypeKeyCompare</span> comp<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>: comp must be a comparison function that induces the same strict weak ordering as key_compare. The difference is that comp compares an arbitrary key with the contained values.</p> -<p><span class="bold"><strong>Effects</strong></span>: Checks if a value can be inserted in the container, 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 complexity is at most logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comp ordering function throws. Strong guarantee.</p> -<p><span class="bold"><strong>Notes</strong></span>: This function is used to improve performance when constructing a value_type is expensive: if there is an equivalent value the constructed object must be discarded. Many times, the part of the node that is used to impose the order is much cheaper to construct than the value_type and this function offers the possibility to use that part to check if the insertion will be successful.</p> -<p>If the check is successful, the user can construct the value_type and use "insert_commit" to insert the object in constant-time. This gives a total logarithmic complexity to the insertion: check(O(log(N)) + commit(O(1)).</p> -<p>"commit_data" remains valid for a subsequent "insert_commit" only if no more objects are inserted or erased from the container. </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> KeyTypeKeyCompare<span class="special">></span> + <a name="idm38338-bb"></a><span class="identifier">insert_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">KeyTypeKeyCompare</span> comp<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></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> KeyTypeKeyCompare<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="idm45971712300048-bb"></a><span class="identifier">insert_check</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<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">KeyTypeKeyCompare</span> comp<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>: comp must be a comparison function that induces the same strict weak ordering as key_compare. The difference is that comp compares an arbitrary key with the contained values.</p> -<p><span class="bold"><strong>Effects</strong></span>: Checks if a value can be inserted in the container, using a user provided key instead of the value itself, using "hint" as a hint to where it will be inserted.</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>: Logarithmic in general, but it's amortized constant time if t is inserted immediately before hint.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comp ordering function throws. Strong guarantee.</p> -<p><span class="bold"><strong>Notes</strong></span>: This function is used to improve performance when constructing a value_type is expensive: if there is an equivalent value the constructed object must be discarded. Many times, the part of the constructing that is used to impose the order is much cheaper to construct than the value_type and this function offers the possibility to use that key to check if the insertion will be successful.</p> -<p>If the check is successful, the user can construct the value_type and use "insert_commit" to insert the object in constant-time. This can give a total constant-time complexity to the insertion: check(O(1)) + commit(O(1)).</p> -<p>"commit_data" remains valid for a subsequent "insert_commit" only if no more objects are inserted or erased from the container. </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="idm45971712287856-bb"></a><span class="identifier">insert</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> + <a name="idm38349-bb"></a><span class="identifier">insert_check</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<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">KeyTypeKeyCompare</span> comp<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></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="idm38362-bb"></a><span class="identifier">insert</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>: Tries to insert each element of a range into the container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Insert range is in general O(N * log(N)), where N is the size of the range. However, it is linear in N if the range is already sorted by value_comp().</p> <p><span class="bold"><strong>Throws</strong></span>: If the comparison functor call throws.</p> -<p><span class="bold"><strong>Note</strong></span>: Does not affect the validity of iterators and references. No copy-constructors are called. </p> +<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">iterator</span> <a name="idm45971712280064-bb"></a><span class="identifier">insert_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="idm38381-bb"></a><span class="identifier">insert_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 container 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 container using the information obtained from the "commit_data" that a previous "insert_check" filled.</p> <p><span class="bold"><strong>Returns</strong></span>: An iterator to the newly inserted object.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Notes</strong></span>: This function has only sense if a "insert_check" has been previously executed to fill "commit_data". No value should be inserted or erased between the "insert_check" and "insert_commit" calls. </p> +<p><span class="bold"><strong>Notes</strong></span>: This function has only sense if a "insert_check" has been previously executed to fill "commit_data". No value should be inserted or erased between the "insert_check" and "insert_commit" calls. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971712271760-bb"></a><span class="identifier">insert_before</span><span class="special">(</span><span class="identifier">const_iterator</span> pos<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="idm38400-bb"></a><span class="identifier">insert_before</span><span class="special">(</span><span class="identifier">const_iterator</span> pos<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, "pos" must be a valid iterator (or end) and must be the succesor of value once inserted according to the predicate</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts x into the container before "pos".</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if "pos" is not the successor of "value" container ordering invariant will be broken. This is a low-level function to be used only for performance reasons by advanced users. </p> +<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if "pos" is not the successor of "value" container ordering invariant will be broken. This is a low-level function to be used only for performance reasons by advanced users. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971712264528-bb"></a><span class="identifier">push_back</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">void</span> <a name="idm38417-bb"></a><span class="identifier">push_back</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 it must be no less than the greatest inserted key</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts x into the container in the last position.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if value is less than the greatest inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users. </p> +<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if value is less than the greatest inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971712257968-bb"></a><span class="identifier">push_front</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">void</span> <a name="idm38432-bb"></a><span class="identifier">push_front</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 it must be no greater than the minimum inserted key</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts x into the container in the first position.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if value is greater than the minimum inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971712251408-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 complexity for erase element is constant time.</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">iterator</span> <a name="idm45971712245920-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 complexity for erase range is at most O(log(size() + N)), where N is the number of elements in the range.</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="idm45971712239680-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>: O(log(size() + N).</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> +<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if value is greater than the minimum inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm38447-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm38451-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">size_type</span> <a name="idm38457-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></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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971712233632-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <span class="identifier">size_type</span> <a name="idm38461-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Erases all the elements with the given key. according to the comparison functor "comp".</p> <p><span class="bold"><strong>Returns</strong></span>: The number of erased elements.</p> <p><span class="bold"><strong>Complexity</strong></span>: O(log(size() + N).</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="identifier">iterator</span> <a name="idm45971712223536-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 complexity for erase element is constant time.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<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">template</span><span class="special"><</span><span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="identifier">iterator</span> <a name="idm45971712215632-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> -<p><span class="bold"><strong>Complexity</strong></span>: Average complexity for erase range is at most O(log(size() + N)), where N is the number of elements in the range.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<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">template</span><span class="special"><</span><span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971712206976-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> -<p><span class="bold"><strong>Complexity</strong></span>: O(log(size() + N).</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> +<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="identifier">iterator</span> <a name="idm38485-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></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">iterator</span> <a name="idm38493-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></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="idm38503-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></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> KeyTypeKeyCompare<span class="special">,</span> <span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971712198448-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">KeyTypeKeyCompare</span> comp<span class="special">,</span> + <span class="identifier">size_type</span> <a name="idm38511-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">KeyTypeKeyCompare</span> comp<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>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk) and nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Requires</strong></span>: Disposer::operator()(pointer) shouldn't throw.</p> @@ -557,168 +460,102 @@ <p><span class="bold"><strong>Returns</strong></span>: The number of erased elements.</p> <p><span class="bold"><strong>Complexity</strong></span>: O(log(size() + N).</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: Invalidates the iterators to the erased elements. </p> +<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="idm45971712186224-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="idm38540-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> +<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="idm45971712181360-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="idm38551-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>Effects</strong></span>: Erases all of the elements calling disposer(p) for each node to be erased. <span class="bold"><strong>Complexity</strong></span>: Average complexity for is at most O(log(size() + N)), where N is the number of elements in the container.</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. Calls N times to disposer functor. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">size_type</span> <a name="idm45971712175056-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>: Logarithmic to the number of elements contained plus lineal to number of objects with the given value.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Note</strong></span>: Invalidates the iterators (but not the references) to the erased elements. Calls N times to disposer functor. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">size_type</span> <a name="idm38565-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></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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971712169984-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> + <span class="identifier">size_type</span> <a name="idm38569-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns the number of contained elements with the given key</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic to the number of elements contained plus lineal to number of objects with the given key.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> </li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971712160928-bb"></a><span class="identifier">lower_bound</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 an iterator to the first element whose key is not less than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> 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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a name="idm45971712156176-bb"></a><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Effects</strong></span>: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971712149328-bb"></a><span class="identifier">lower_bound</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 an iterator to the first element whose key is not less than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> 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> KeyTypeKeyCompare<span class="special">></span> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm38590-bb"></a><span class="identifier">lower_bound</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></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> KeyTypeKeyCompare<span class="special">></span> + <span class="identifier">iterator</span> <a name="idm38594-bb"></a><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm38603-bb"></a><span class="identifier">lower_bound</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></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> KeyTypeKeyCompare<span class="special">></span> <span class="identifier">const_iterator</span> - <a name="idm45971712144304-bb"></a><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Effects</strong></span>: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971712137184-bb"></a><span class="identifier">upper_bound</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 an iterator to the first element whose key is greater than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> -</li> + <a name="idm38607-bb"></a><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm38616-bb"></a><span class="identifier">upper_bound</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></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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a name="idm45971712132432-bb"></a><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <span class="identifier">iterator</span> <a name="idm38620-bb"></a><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns an iterator to the first element whose key is greater than k according to comp or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971712123728-bb"></a><span class="identifier">upper_bound</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 an iterator to the first element whose key is greater than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm38641-bb"></a><span class="identifier">upper_bound</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></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> KeyTypeKeyCompare<span class="special">></span> <span class="identifier">const_iterator</span> - <a name="idm45971712118704-bb"></a><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> + <a name="idm38645-bb"></a><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns an iterator to the first element whose key is greater than k according to comp or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971712109728-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 whose key is k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm38666-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></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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a name="idm45971712104992-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <span class="identifier">iterator</span> <a name="idm38670-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Finds an iterator to the first element whose key is k or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971712096256-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 an iterator to the first element whose key is k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm38691-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></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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">const_iterator</span> <a name="idm45971712091248-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> + <span class="identifier">const_iterator</span> <a name="idm38695-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Finds an iterator to the first element whose key is k or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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="idm45971712082240-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>: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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="idm38716-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></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> KeyTypeKeyCompare<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="idm45971712077408-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <a name="idm38720-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">></span> -<a name="idm45971712068576-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>: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">></span> +<a name="idm38741-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></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> KeyTypeKeyCompare<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="idm45971712063456-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> + <a name="idm38745-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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="idm45971712054336-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> upper_key<span class="special">,</span> - <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: <code class="computeroutput">upper_key</code> shall not precede <code class="computeroutput">lower_key</code> according to key_compare. [key_comp()(upper_key, lower_key) shall be false]</p> -<p>If <code class="computeroutput">lower_key</code> is equivalent to <code class="computeroutput">upper_key</code> [!key_comp()(upper_key, lower_key) && !key_comp()(lower_key, upper_key)] then ('left_closed' || 'right_closed') must be false.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns an a pair with the following criteria:</p> -<p>first = lower_bound(lower_key) if left_closed, upper_bound(lower_key) otherwise</p> -<p>second = upper_bound(upper_key) if right_closed, lower_bound(upper_key) otherwise</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws.</p> -<p><span class="bold"><strong>Note</strong></span>: This function can be more efficient than calling upper_bound and lower_bound for lower_value and upper_value.</p> -<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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="idm38766-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> upper_key<span class="special">,</span> + <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span><span class="special">;</span></pre></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> KeyTypeKeyCompare<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="idm45971712041904-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> + <a name="idm38776-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span> comp<span class="special">,</span> <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: <code class="computeroutput">lower_key</code> is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, lower_key) if left_closed is true, with respect to !comp(lower_key, nk) otherwise.</p> <p><code class="computeroutput">upper_key</code> is a value such that <code class="computeroutput">*this</code> is partitioned with respect to !comp(upper_key, nk) if right_closed is true, with respect to comp(nk, upper_key) otherwise.</p> @@ -730,26 +567,15 @@ <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> <p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws.</p> <p><span class="bold"><strong>Note</strong></span>: This function can be more efficient than calling upper_bound and lower_bound for lower_key and upper_key.</p> -<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </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">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">></span> -<a name="idm45971712025104-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> upper_key<span class="special">,</span> - <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: <code class="computeroutput">upper_key</code> shall not precede <code class="computeroutput">lower_key</code> according to key_compare. [key_comp()(upper_key, lower_key) shall be false]</p> -<p>If <code class="computeroutput">lower_key</code> is equivalent to <code class="computeroutput">upper_key</code> [!key_comp()(upper_key, lower_key) && !key_comp()(lower_key, upper_key)] then ('left_closed' || 'right_closed') must be false.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns an a pair with the following criteria:</p> -<p>first = lower_bound(lower_key) if left_closed, upper_bound(lower_key) otherwise</p> -<p>second = upper_bound(upper_key) if right_closed, lower_bound(upper_key) otherwise</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws.</p> -<p><span class="bold"><strong>Note</strong></span>: This function can be more efficient than calling upper_bound and lower_bound for lower_value and upper_value.</p> -<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </p> +<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </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">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">></span> +<a name="idm38818-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> upper_key<span class="special">,</span> + <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></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> KeyTypeKeyCompare<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="idm45971712012384-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> + <a name="idm38828-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span> comp<span class="special">,</span> <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: <code class="computeroutput">lower_key</code> is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, lower_key) if left_closed is true, with respect to !comp(lower_key, nk) otherwise.</p> <p><code class="computeroutput">upper_key</code> is a value such that <code class="computeroutput">*this</code> is partitioned with respect to !comp(upper_key, nk) if right_closed is true, with respect to comp(nk, upper_key) otherwise.</p> @@ -761,132 +587,58 @@ <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> <p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws.</p> <p><span class="bold"><strong>Note</strong></span>: This function can be more efficient than calling upper_bound and lower_bound for lower_key and upper_key.</p> -<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971711995296-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 set of appropriate type. Otherwise the behavior is undefined.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns: a valid iterator i belonging to the set 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_iterator</span> <a name="idm45971711989808-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 set of appropriate type. Otherwise the behavior is undefined.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns: a valid const_iterator i belonging to the set 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> +<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm38870-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm38874-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></li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">pointer</span> <a name="idm45971711984320-bb"></a><span class="identifier">unlink_leftmost_without_rebalance</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">pointer</span> <a name="idm38878-bb"></a><span class="identifier">unlink_leftmost_without_rebalance</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>: Unlinks the leftmost node from the container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Average complexity is constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Notes</strong></span>: This function breaks the container and the container can only be used for more unlink_leftmost_without_rebalance calls. This function is normally used to achieve a step by step controlled destruction of the container. </p> +<p><span class="bold"><strong>Notes</strong></span>: This function breaks the container and the container can only be used for more unlink_leftmost_without_rebalance calls. This function is normally used to achieve a step by step controlled destruction of the container. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971711979408-bb"></a><span class="identifier">replace_node</span><span class="special">(</span><span class="identifier">iterator</span> replace_this<span class="special">,</span> <span class="identifier">reference</span> with_this<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">void</span> <a name="idm38889-bb"></a><span class="identifier">replace_node</span><span class="special">(</span><span class="identifier">iterator</span> replace_this<span class="special">,</span> <span class="identifier">reference</span> with_this<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: replace_this must be a valid iterator of *this and with_this must not be inserted in any container.</p> <p><span class="bold"><strong>Effects</strong></span>: Replaces replace_this in its position in the container with with_this. The container does not need to be rebalanced.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: This function will break container ordering invariants if with_this is not equivalent to *replace_this according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing or comparison is needed. </p> +<p><span class="bold"><strong>Note</strong></span>: This function will break container ordering invariants if with_this is not equivalent to *replace_this according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing or comparison is needed. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971711972144-bb"></a><span class="identifier">remove_node</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">void</span> <a name="idm38906-bb"></a><span class="identifier">remove_node</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>Effects</strong></span>: removes "value" from the container.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic time.</p> <p><span class="bold"><strong>Note</strong></span>: This static function is only usable with non-constant time size containers that have stateless comparison functors.</p> -<p>If the user calls this function with a constant time size container or stateful comparison functor a compilation error will be issued. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="special">...</span> Options2<span class="special">></span> <span class="keyword">void</span> <a name="idm45971711966304-bb"></a><span class="identifier">merge</span><span class="special">(</span><a class="link" href="set.html" title="Class template set">set</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span> source<span class="special">)</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: "source" container's Options can only can differ in the comparison function from *this.</p> -<p><span class="bold"><strong>Effects</strong></span>: Attempts to extract each element in source and insert it into a using the comparison object of *this. If there is an element in a with key equivalent to the key of an element from source, then that element is not extracted from source.</p> -<p><span class="bold"><strong>Postcondition</strong></span>: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing unless the comparison object throws.</p> -<p><span class="bold"><strong>Complexity</strong></span>: N log(a.size() + N) (N has the value source.size()) </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="special">...</span> Options2<span class="special">></span> <span class="keyword">void</span> <a name="idm45971711958352-bb"></a><span class="identifier">merge</span><span class="special">(</span><a class="link" href="multiset.html" title="Class template multiset">multiset</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span> source<span class="special">)</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: "source" container's Options can only can differ in the comparison function from *this.</p> -<p><span class="bold"><strong>Effects</strong></span>: Attempts to extract each element in source and insert it into a using the comparison object of *this. If there is an element in a with key equivalent to the key of an element from source, then that element is not extracted from source.</p> -<p><span class="bold"><strong>Postcondition</strong></span>: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing unless the comparison object throws.</p> -<p><span class="bold"><strong>Complexity</strong></span>: N log(a.size() + N) (N has the value source.size()) </p> +<p>If the user calls this function with a constant time size container or stateful comparison functor a compilation error will be issued. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="special">...</span> Options2<span class="special">></span> <span class="keyword">void</span> <a name="idm38920-bb"></a><span class="identifier">merge</span><span class="special">(</span><a class="link" href="set.html" title="Class template set">set</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span> source<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="special">...</span> Options2<span class="special">></span> <span class="keyword">void</span> <a name="idm38928-bb"></a><span class="identifier">merge</span><span class="special">(</span><a class="link" href="multiset.html" title="Class template multiset">multiset</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span> source<span class="special">)</span><span class="special">;</span></pre></li> </ol></div> </div> <div class="refsect2"> -<a name="id-1.3.20.42.30.6.4.7"></a><h3> -<a name="idm45971711922480-bb"></a><code class="computeroutput">set</code> public static functions</h3> +<a name="id-1.3.18.42.30.6.4.7"></a><h3> +<a name="idm38992-bb"></a><code class="computeroutput">set</code> public static functions</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <a class="link" href="set.html" title="Class template set">set</a> <span class="special">&</span> <a name="idm45971711921920-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Precondition</strong></span>: end_iterator must be a valid end iterator of the container.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the container associated to the end iterator</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Constant. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="set.html" title="Class template set">set</a> <span class="special">&</span> -<a name="idm45971711915904-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">const_iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Precondition</strong></span>: end_iterator must be a valid end iterator of the container.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the container associated to the end iterator</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Constant. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <a class="link" href="set.html" title="Class template set">set</a> <span class="special">&</span> <a name="idm45971711909728-bb"></a><span class="identifier">container_from_iterator</span><span class="special">(</span><span class="identifier">iterator</span> it<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Precondition</strong></span>: it must be a valid iterator of the container.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the container associated to the iterator</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="set.html" title="Class template set">set</a> <span class="special">&</span> <a name="idm45971711903760-bb"></a><span class="identifier">container_from_iterator</span><span class="special">(</span><span class="identifier">const_iterator</span> it<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Precondition</strong></span>: it must be a valid iterator of the container.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the container associated to the iterator</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="identifier">iterator</span> <a name="idm45971711897632-bb"></a><span class="identifier">s_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 set of appropriate type. Otherwise the behavior is undefined.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns: a valid iterator i belonging to the set 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> -<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">const_iterator</span> <a name="idm45971711890544-bb"></a><span class="identifier">s_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 set of appropriate type. Otherwise the behavior is undefined.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns: a valid iterator i belonging to the set 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> -<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="keyword">void</span> <a name="idm45971711883456-bb"></a><span class="identifier">init_node</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 shall not be in a container.</p> -<p><span class="bold"><strong>Effects</strong></span>: init_node puts the hook of a value in a well-known default state.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> -<p><span class="bold"><strong>Note</strong></span>: This function puts the hook in the well-known default state used by auto_unlink and safe hooks. </p> -</li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <a class="link" href="set.html" title="Class template set">set</a> <span class="special">&</span> <a name="idm38993-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="set.html" title="Class template set">set</a> <span class="special">&</span> +<a name="idm38998-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">const_iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <a class="link" href="set.html" title="Class template set">set</a> <span class="special">&</span> <a name="idm39003-bb"></a><span class="identifier">container_from_iterator</span><span class="special">(</span><span class="identifier">iterator</span> it<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="set.html" title="Class template set">set</a> <span class="special">&</span> <a name="idm39008-bb"></a><span class="identifier">container_from_iterator</span><span class="special">(</span><span class="identifier">const_iterator</span> it<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">iterator</span> <a name="idm39013-bb"></a><span class="identifier">s_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></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">const_iterator</span> <a name="idm39017-bb"></a><span class="identifier">s_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></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm39021-bb"></a><span class="identifier">init_node</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></li> </ol></div> </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="multiset.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.set_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_set_base_hook.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/set_base_hook.html b/doc/html/boost/intrusive/set_base_hook.html index 0a7975754b..5f568bb512 100644 --- a/doc/html/boost/intrusive/set_base_hook.html +++ b/doc/html/boost/intrusive/set_base_hook.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.set_hook_hpp" title="Header <boost/intrusive/set_hook.hpp>"> <link rel="prev" href="make_set_member_hook.html" title="Struct template make_set_member_hook"> <link rel="next" href="set_member_hook.html" title="Class template set_member_hook"> +<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> @@ -29,25 +30,25 @@ <h2><span class="refentrytitle">Class template set_base_hook</span></h2> <p>boost::intrusive::set_base_hook</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.set_hook_hpp" title="Header <boost/intrusive/set_hook.hpp>">boost/intrusive/set_hook.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.set_hook_hpp" title="Header <boost/intrusive/set_hook.hpp>">boost/intrusive/set_hook.hpp</a>> </span><span class="keyword">template</span><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="set_base_hook.html" title="Class template set_base_hook">set_base_hook</a> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">make_set_base_hook</span><span class="special">::</span><span class="identifier">type</span><span class="special"><</span> <span class="identifier">O1</span><span class="special">,</span> <span class="identifier">O2</span><span class="special">,</span> <span class="identifier">O3</span><span class="special">,</span> <span class="identifier">O4</span> <span class="special">></span> <span class="special">{</span> +<span class="keyword">class</span> <a class="link" href="set_base_hook.html" title="Class template set_base_hook">set_base_hook</a> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">make_set_base_hook</span><span class="special">::</span><span class="identifier">type</span> <span class="special">{</span> <span class="keyword">public</span><span class="special">:</span> <span class="comment">// <a class="link" href="set_base_hook.html#boost.intrusive.set_base_hookconstruct-copy-destruct">construct/copy/destruct</a></span> - <a class="link" href="set_base_hook.html#idm45971711790544-bb"><span class="identifier">set_base_hook</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <a class="link" href="set_base_hook.html#idm45971711786496-bb"><span class="identifier">set_base_hook</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="set_base_hook.html" title="Class template set_base_hook">set_base_hook</a> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <a class="link" href="set_base_hook.html" title="Class template set_base_hook">set_base_hook</a> <span class="special">&</span> <a class="link" href="set_base_hook.html#idm45971711779856-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="set_base_hook.html" title="Class template set_base_hook">set_base_hook</a> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <a class="link" href="set_base_hook.html#idm45971711774288-bb"><span class="special">~</span><span class="identifier">set_base_hook</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="set_base_hook.html#idm39233-bb"><span class="identifier">set_base_hook</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <a class="link" href="set_base_hook.html#idm39242-bb"><span class="identifier">set_base_hook</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="set_base_hook.html" title="Class template set_base_hook">set_base_hook</a> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <a class="link" href="set_base_hook.html" title="Class template set_base_hook">set_base_hook</a> <span class="special">&</span> <a class="link" href="set_base_hook.html#idm39257-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="set_base_hook.html" title="Class template set_base_hook">set_base_hook</a> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <a class="link" href="set_base_hook.html#idm39271-bb"><span class="special">~</span><span class="identifier">set_base_hook</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> - <span class="comment">// <a class="link" href="set_base_hook.html#idm45971711806704-bb">public member functions</a></span> - <span class="keyword">void</span> <a class="link" href="set_base_hook.html#idm45971711806144-bb"><span class="identifier">swap_nodes</span></a><span class="special">(</span><a class="link" href="set_base_hook.html" title="Class template set_base_hook">set_base_hook</a> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">bool</span> <a class="link" href="set_base_hook.html#idm45971711800864-bb"><span class="identifier">is_linked</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="set_base_hook.html#idm45971711794896-bb"><span class="identifier">unlink</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="set_base_hook.html#idm39198-bb">public member functions</a></span> + <span class="keyword">void</span> <a class="link" href="set_base_hook.html#idm39199-bb"><span class="identifier">swap_nodes</span></a><span class="special">(</span><a class="link" href="set_base_hook.html" title="Class template set_base_hook">set_base_hook</a> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">bool</span> <a class="link" href="set_base_hook.html#idm39211-bb"><span class="identifier">is_linked</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="set_base_hook.html#idm39224-bb"><span class="identifier">unlink</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</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.31.5.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.31.5.4"></a><h2>Description</h2> <p>Derive a class from <a class="link" href="set_base_hook.html" title="Class template set_base_hook">set_base_hook</a> in order to store objects in in a set/multiset. <a class="link" href="set_base_hook.html" title="Class template set_base_hook">set_base_hook</a> holds the data necessary to maintain the set/multiset and provides an appropriate <a class="link" href="value_traits.html" title="Struct template value_traits">value_traits</a> class for set/multiset.</p> <p>The hook admits the following options: <code class="computeroutput">tag<></code>, <code class="computeroutput">void_pointer<></code>, <code class="computeroutput">link_mode<></code> and <code class="computeroutput">optimize_size<></code>.</p> <p><code class="computeroutput">tag<></code> defines a tag to identify the node. The same tag value can be used in different classes, but if a class is derived from more than one <code class="computeroutput"><a class="link" href="list_base_hook.html" title="Class template list_base_hook">list_base_hook</a></code>, then each <code class="computeroutput"><a class="link" href="list_base_hook.html" title="Class template list_base_hook">list_base_hook</a></code> needs its unique tag.</p> @@ -55,53 +56,53 @@ <p><code class="computeroutput">link_mode<></code> will specify the linking mode of the hook (<code class="computeroutput">normal_link</code>, <code class="computeroutput">auto_unlink</code> or <code class="computeroutput">safe_link</code>).</p> <p><code class="computeroutput">optimize_size<></code> will tell the hook to optimize the hook for size instead of speed. </p> <div class="refsect2"> -<a name="id-1.3.20.42.31.5.4.8"></a><h3> +<a name="id-1.3.18.42.31.5.4.8"></a><h3> <a name="boost.intrusive.set_base_hookconstruct-copy-destruct"></a><code class="computeroutput">set_base_hook</code> public construct/copy/destruct</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> <li class="listitem"> -<pre class="literallayout"><a name="idm45971711790544-bb"></a><span class="identifier">set_base_hook</span><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm39233-bb"></a><span class="identifier">set_base_hook</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>: If <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is <code class="computeroutput">auto_unlink</code> or <code class="computeroutput">safe_link</code> initializes the node to an unlinked state.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><a name="idm45971711786496-bb"></a><span class="identifier">set_base_hook</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="set_base_hook.html" title="Class template set_base_hook">set_base_hook</a> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm39242-bb"></a><span class="identifier">set_base_hook</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="set_base_hook.html" title="Class template set_base_hook">set_base_hook</a> <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>: If <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is <code class="computeroutput">auto_unlink</code> or <code class="computeroutput">safe_link</code> initializes the node to an unlinked state. The argument is ignored.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Rationale</strong></span>: Providing a copy-constructor makes classes using the hook STL-compliant without forcing the user to do some additional work. <code class="computeroutput">swap</code> can be used to emulate move-semantics. </p> </li> <li class="listitem"> -<pre class="literallayout"><a class="link" href="set_base_hook.html" title="Class template set_base_hook">set_base_hook</a> <span class="special">&</span> <a name="idm45971711779856-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="set_base_hook.html" title="Class template set_base_hook">set_base_hook</a> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><a class="link" href="set_base_hook.html" title="Class template set_base_hook">set_base_hook</a> <span class="special">&</span> <a name="idm39257-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="set_base_hook.html" title="Class template set_base_hook">set_base_hook</a> <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>: Empty function. The argument is ignored.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Rationale</strong></span>: Providing an assignment operator makes classes using the hook STL-compliant without forcing the user to do some additional work. <code class="computeroutput">swap</code> can be used to emulate move-semantics. </p> </li> <li class="listitem"> -<pre class="literallayout"><a name="idm45971711774288-bb"></a><span class="special">~</span><span class="identifier">set_base_hook</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm39271-bb"></a><span class="special">~</span><span class="identifier">set_base_hook</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: If <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is <code class="computeroutput">normal_link</code>, the destructor does nothing (ie. no code is generated). If <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is <code class="computeroutput">safe_link</code> and the object is stored in a set an assertion is raised. If <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is <code class="computeroutput">auto_unlink</code> and <code class="computeroutput">is_linked()</code> is true, the node is unlinked.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> </ol></div> </div> <div class="refsect2"> -<a name="id-1.3.20.42.31.5.4.9"></a><h3> -<a name="idm45971711806704-bb"></a><code class="computeroutput">set_base_hook</code> public member functions</h3> +<a name="id-1.3.18.42.31.5.4.9"></a><h3> +<a name="idm39198-bb"></a><code class="computeroutput">set_base_hook</code> public member functions</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971711806144-bb"></a><span class="identifier">swap_nodes</span><span class="special">(</span><a class="link" href="set_base_hook.html" title="Class template set_base_hook">set_base_hook</a> <span class="special">&</span> other<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">void</span> <a name="idm39199-bb"></a><span class="identifier">swap_nodes</span><span class="special">(</span><a class="link" href="set_base_hook.html" title="Class template set_base_hook">set_base_hook</a> <span class="special">&</span> other<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Swapping two nodes swaps the position of the elements related to those nodes in one or two containers. That is, if the node this is part of the element e1, the node x is part of the element e2 and both elements are included in the containers s1 and s2, then after the swap-operation e1 is in s2 at the position of e2 and e2 is in s1 at the position of e1. If one element is not in a container, then after the swap-operation the other element is not in a container. Iterators to e1 and e2 related to those nodes are invalidated.</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="keyword">bool</span> <a name="idm45971711800864-bb"></a><span class="identifier">is_linked</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="idm39211-bb"></a><span class="identifier">is_linked</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>Precondition</strong></span>: <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> must be <code class="computeroutput">safe_link</code> or <code class="computeroutput">auto_unlink</code>.</p> <p><span class="bold"><strong>Returns</strong></span>: true, if the node belongs to a container, false otherwise. This function can be used to test whether <code class="computeroutput">set::iterator_to</code> will return a valid iterator.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971711794896-bb"></a><span class="identifier">unlink</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="idm39224-bb"></a><span class="identifier">unlink</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>: Removes the node if it's inserted in a container. This function is only allowed if <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is <code class="computeroutput">auto_unlink</code>.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> @@ -109,14 +110,11 @@ </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="make_set_member_hook.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.set_hook_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="set_member_hook.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/set_member_hook.html b/doc/html/boost/intrusive/set_member_hook.html index 1beb08533e..fa64afecba 100644 --- a/doc/html/boost/intrusive/set_member_hook.html +++ b/doc/html/boost/intrusive/set_member_hook.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.set_hook_hpp" title="Header <boost/intrusive/set_hook.hpp>"> <link rel="prev" href="set_base_hook.html" title="Class template set_base_hook"> <link rel="next" href="make_sg_multiset.html" title="Struct template make_sg_multiset"> +<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> @@ -29,78 +30,78 @@ <h2><span class="refentrytitle">Class template set_member_hook</span></h2> <p>boost::intrusive::set_member_hook</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.set_hook_hpp" title="Header <boost/intrusive/set_hook.hpp>">boost/intrusive/set_hook.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.set_hook_hpp" title="Header <boost/intrusive/set_hook.hpp>">boost/intrusive/set_hook.hpp</a>> </span><span class="keyword">template</span><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="set_member_hook.html" title="Class template set_member_hook">set_member_hook</a> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">make_set_member_hook</span><span class="special">::</span><span class="identifier">type</span><span class="special"><</span> <span class="identifier">O1</span><span class="special">,</span> <span class="identifier">O2</span><span class="special">,</span> <span class="identifier">O3</span><span class="special">,</span> <span class="identifier">O4</span> <span class="special">></span> <span class="special">{</span> +<span class="keyword">class</span> <a class="link" href="set_member_hook.html" title="Class template set_member_hook">set_member_hook</a> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">make_set_member_hook</span><span class="special">::</span><span class="identifier">type</span> <span class="special">{</span> <span class="keyword">public</span><span class="special">:</span> <span class="comment">// <a class="link" href="set_member_hook.html#boost.intrusive.set_member_hookconstruct-copy-destruct">construct/copy/destruct</a></span> - <a class="link" href="set_member_hook.html#idm45971711742112-bb"><span class="identifier">set_member_hook</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <a class="link" href="set_member_hook.html#idm45971711738064-bb"><span class="identifier">set_member_hook</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="set_member_hook.html" title="Class template set_member_hook">set_member_hook</a> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <a class="link" href="set_member_hook.html" title="Class template set_member_hook">set_member_hook</a> <span class="special">&</span> <a class="link" href="set_member_hook.html#idm45971711731424-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="set_member_hook.html" title="Class template set_member_hook">set_member_hook</a> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <a class="link" href="set_member_hook.html#idm45971711725856-bb"><span class="special">~</span><span class="identifier">set_member_hook</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="set_member_hook.html#idm39342-bb"><span class="identifier">set_member_hook</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <a class="link" href="set_member_hook.html#idm39351-bb"><span class="identifier">set_member_hook</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="set_member_hook.html" title="Class template set_member_hook">set_member_hook</a> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <a class="link" href="set_member_hook.html" title="Class template set_member_hook">set_member_hook</a> <span class="special">&</span> <a class="link" href="set_member_hook.html#idm39366-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="set_member_hook.html" title="Class template set_member_hook">set_member_hook</a> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <a class="link" href="set_member_hook.html#idm39380-bb"><span class="special">~</span><span class="identifier">set_member_hook</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> - <span class="comment">// <a class="link" href="set_member_hook.html#idm45971711758272-bb">public member functions</a></span> - <span class="keyword">void</span> <a class="link" href="set_member_hook.html#idm45971711757712-bb"><span class="identifier">swap_nodes</span></a><span class="special">(</span><a class="link" href="set_member_hook.html" title="Class template set_member_hook">set_member_hook</a> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">bool</span> <a class="link" href="set_member_hook.html#idm45971711752432-bb"><span class="identifier">is_linked</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="set_member_hook.html#idm45971711746464-bb"><span class="identifier">unlink</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="set_member_hook.html#idm39307-bb">public member functions</a></span> + <span class="keyword">void</span> <a class="link" href="set_member_hook.html#idm39308-bb"><span class="identifier">swap_nodes</span></a><span class="special">(</span><a class="link" href="set_member_hook.html" title="Class template set_member_hook">set_member_hook</a> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">bool</span> <a class="link" href="set_member_hook.html#idm39320-bb"><span class="identifier">is_linked</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="set_member_hook.html#idm39333-bb"><span class="identifier">unlink</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</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.31.6.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.31.6.4"></a><h2>Description</h2> <p>Put a public data member <a class="link" href="set_member_hook.html" title="Class template set_member_hook">set_member_hook</a> in order to store objects of this class in a set/multiset. <a class="link" href="set_member_hook.html" title="Class template set_member_hook">set_member_hook</a> holds the data necessary for maintaining the set/multiset and provides an appropriate <a class="link" href="value_traits.html" title="Struct template value_traits">value_traits</a> class for set/multiset.</p> <p>The hook admits the following options: <code class="computeroutput">void_pointer<></code>, <code class="computeroutput">link_mode<></code> and <code class="computeroutput">optimize_size<></code>.</p> <p><code class="computeroutput">void_pointer<></code> is the pointer type that will be used internally in the hook and the container configured to use this hook.</p> <p><code class="computeroutput">link_mode<></code> will specify the linking mode of the hook (<code class="computeroutput">normal_link</code>, <code class="computeroutput">auto_unlink</code> or <code class="computeroutput">safe_link</code>).</p> <p><code class="computeroutput">optimize_size<></code> will tell the hook to optimize the hook for size instead of speed. </p> <div class="refsect2"> -<a name="id-1.3.20.42.31.6.4.7"></a><h3> +<a name="id-1.3.18.42.31.6.4.7"></a><h3> <a name="boost.intrusive.set_member_hookconstruct-copy-destruct"></a><code class="computeroutput">set_member_hook</code> public construct/copy/destruct</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> <li class="listitem"> -<pre class="literallayout"><a name="idm45971711742112-bb"></a><span class="identifier">set_member_hook</span><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm39342-bb"></a><span class="identifier">set_member_hook</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>: If <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is <code class="computeroutput">auto_unlink</code> or <code class="computeroutput">safe_link</code> initializes the node to an unlinked state.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><a name="idm45971711738064-bb"></a><span class="identifier">set_member_hook</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="set_member_hook.html" title="Class template set_member_hook">set_member_hook</a> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm39351-bb"></a><span class="identifier">set_member_hook</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="set_member_hook.html" title="Class template set_member_hook">set_member_hook</a> <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>: If <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is <code class="computeroutput">auto_unlink</code> or <code class="computeroutput">safe_link</code> initializes the node to an unlinked state. The argument is ignored.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Rationale</strong></span>: Providing a copy-constructor makes classes using the hook STL-compliant without forcing the user to do some additional work. <code class="computeroutput">swap</code> can be used to emulate move-semantics. </p> </li> <li class="listitem"> -<pre class="literallayout"><a class="link" href="set_member_hook.html" title="Class template set_member_hook">set_member_hook</a> <span class="special">&</span> <a name="idm45971711731424-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="set_member_hook.html" title="Class template set_member_hook">set_member_hook</a> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><a class="link" href="set_member_hook.html" title="Class template set_member_hook">set_member_hook</a> <span class="special">&</span> <a name="idm39366-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="set_member_hook.html" title="Class template set_member_hook">set_member_hook</a> <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>: Empty function. The argument is ignored.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Rationale</strong></span>: Providing an assignment operator makes classes using the hook STL-compliant without forcing the user to do some additional work. <code class="computeroutput">swap</code> can be used to emulate move-semantics. </p> </li> <li class="listitem"> -<pre class="literallayout"><a name="idm45971711725856-bb"></a><span class="special">~</span><span class="identifier">set_member_hook</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm39380-bb"></a><span class="special">~</span><span class="identifier">set_member_hook</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: If <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is <code class="computeroutput">normal_link</code>, the destructor does nothing (ie. no code is generated). If <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is <code class="computeroutput">safe_link</code> and the object is stored in a set an assertion is raised. If <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is <code class="computeroutput">auto_unlink</code> and <code class="computeroutput">is_linked()</code> is true, the node is unlinked.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> </ol></div> </div> <div class="refsect2"> -<a name="id-1.3.20.42.31.6.4.8"></a><h3> -<a name="idm45971711758272-bb"></a><code class="computeroutput">set_member_hook</code> public member functions</h3> +<a name="id-1.3.18.42.31.6.4.8"></a><h3> +<a name="idm39307-bb"></a><code class="computeroutput">set_member_hook</code> public member functions</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971711757712-bb"></a><span class="identifier">swap_nodes</span><span class="special">(</span><a class="link" href="set_member_hook.html" title="Class template set_member_hook">set_member_hook</a> <span class="special">&</span> other<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">void</span> <a name="idm39308-bb"></a><span class="identifier">swap_nodes</span><span class="special">(</span><a class="link" href="set_member_hook.html" title="Class template set_member_hook">set_member_hook</a> <span class="special">&</span> other<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Swapping two nodes swaps the position of the elements related to those nodes in one or two containers. That is, if the node this is part of the element e1, the node x is part of the element e2 and both elements are included in the containers s1 and s2, then after the swap-operation e1 is in s2 at the position of e2 and e2 is in s1 at the position of e1. If one element is not in a container, then after the swap-operation the other element is not in a container. Iterators to e1 and e2 related to those nodes are invalidated.</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="keyword">bool</span> <a name="idm45971711752432-bb"></a><span class="identifier">is_linked</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="idm39320-bb"></a><span class="identifier">is_linked</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>Precondition</strong></span>: <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> must be <code class="computeroutput">safe_link</code> or <code class="computeroutput">auto_unlink</code>.</p> <p><span class="bold"><strong>Returns</strong></span>: true, if the node belongs to a container, false otherwise. This function can be used to test whether <code class="computeroutput">set::iterator_to</code> will return a valid iterator.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971711746464-bb"></a><span class="identifier">unlink</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="idm39333-bb"></a><span class="identifier">unlink</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>: Removes the node if it's inserted in a container. This function is only allowed if <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is <code class="computeroutput">auto_unlink</code>.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> @@ -108,14 +109,11 @@ </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="set_base_hook.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.set_hook_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_sg_multiset.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/sg_multiset.html b/doc/html/boost/intrusive/sg_multiset.html index ff42ca6a70..591f3c2945 100644 --- a/doc/html/boost/intrusive/sg_multiset.html +++ b/doc/html/boost/intrusive/sg_multiset.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.sg_set_hpp" title="Header <boost/intrusive/sg_set.hpp>"> <link rel="prev" href="make_sg_set.html" title="Struct template make_sg_set"> <link rel="next" href="sg_set.html" title="Class template sg_set"> +<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> @@ -29,8 +30,8 @@ <h2><span class="refentrytitle">Class template sg_multiset</span></h2> <p>boost::intrusive::sg_multiset</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.sg_set_hpp" title="Header <boost/intrusive/sg_set.hpp>">boost/intrusive/sg_set.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.sg_set_hpp" title="Header <boost/intrusive/sg_set.hpp>">boost/intrusive/sg_set.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="sg_multiset.html" title="Class template sg_multiset">sg_multiset</a> <span class="special">{</span> @@ -60,435 +61,369 @@ <span class="keyword">typedef</span> <span class="identifier">implementation_defined</span><span class="special">::</span><span class="identifier">node_algorithms</span> <a name="boost.intrusive.sg_multiset.node_algorithms"></a><span class="identifier">node_algorithms</span><span class="special">;</span> <span class="comment">// <a class="link" href="sg_multiset.html#boost.intrusive.sg_multisetconstruct-copy-destruct">construct/copy/destruct</a></span> - <a class="link" href="sg_multiset.html#idm45971711222768-bb"><span class="identifier">sg_multiset</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">explicit</span> <a class="link" href="sg_multiset.html#idm45971711219616-bb"><span class="identifier">sg_multiset</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span><span class="special">,</span> + <a class="link" href="sg_multiset.html#idm40342-bb"><span class="identifier">sg_multiset</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">explicit</span> <a class="link" href="sg_multiset.html#idm40350-bb"><span class="identifier">sg_multiset</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_compare</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="sg_multiset.html#idm45971711214496-bb"><span class="identifier">sg_multiset</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="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> <span class="special">=</span> <span class="identifier">key_compare</span><span class="special">(</span><span class="special">)</span><span class="special">,</span> + <a class="link" href="sg_multiset.html#idm40356-bb"><span class="identifier">sg_multiset</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="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> <span class="special">=</span> <span class="identifier">key_compare</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="sg_multiset.html#idm45971711206032-bb"><span class="identifier">sg_multiset</span></a><span class="special">(</span><a class="link" href="sg_multiset.html" title="Class template sg_multiset">sg_multiset</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> - <a class="link" href="sg_multiset.html" title="Class template sg_multiset">sg_multiset</a> <span class="special">&</span> <a class="link" href="sg_multiset.html#idm45971711201728-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><a class="link" href="sg_multiset.html" title="Class template sg_multiset">sg_multiset</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> - <a class="link" href="sg_multiset.html#idm45971711198912-bb"><span class="special">~</span><span class="identifier">sg_multiset</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="sg_multiset.html#idm40369-bb"><span class="identifier">sg_multiset</span></a><span class="special">(</span><a class="link" href="sg_multiset.html" title="Class template sg_multiset">sg_multiset</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="sg_multiset.html" title="Class template sg_multiset">sg_multiset</a> <span class="special">&</span> <a class="link" href="sg_multiset.html#idm40380-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><a class="link" href="sg_multiset.html" title="Class template sg_multiset">sg_multiset</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="sg_multiset.html#idm40389-bb"><span class="special">~</span><span class="identifier">sg_multiset</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> - <span class="comment">// <a class="link" href="sg_multiset.html#idm45971711682096-bb">public member functions</a></span> - <span class="identifier">iterator</span> <a class="link" href="sg_multiset.html#idm45971711681536-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="sg_multiset.html#idm45971711677696-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="sg_multiset.html#idm45971711673856-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="sg_multiset.html#idm45971711670016-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="sg_multiset.html#idm45971711666176-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="sg_multiset.html#idm45971711662336-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">reverse_iterator</span> <a class="link" href="sg_multiset.html#idm45971711658496-bb"><span class="identifier">rbegin</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="identifier">const_reverse_iterator</span> <a class="link" href="sg_multiset.html#idm45971711654640-bb"><span class="identifier">rbegin</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_reverse_iterator</span> <a class="link" href="sg_multiset.html#idm45971711650784-bb"><span class="identifier">crbegin</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">reverse_iterator</span> <a class="link" href="sg_multiset.html#idm45971711646928-bb"><span class="identifier">rend</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="identifier">const_reverse_iterator</span> <a class="link" href="sg_multiset.html#idm45971711643072-bb"><span class="identifier">rend</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_reverse_iterator</span> <a class="link" href="sg_multiset.html#idm45971711639216-bb"><span class="identifier">crend</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="sg_multiset.html#idm45971711635360-bb"><span class="identifier">root</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="sg_multiset.html#idm45971711631488-bb"><span class="identifier">root</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="sg_multiset.html#idm45971711627616-bb"><span class="identifier">croot</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">key_compare</span> <a class="link" href="sg_multiset.html#idm45971711623744-bb"><span class="identifier">key_comp</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">value_compare</span> <a class="link" href="sg_multiset.html#idm45971711619888-bb"><span class="identifier">value_comp</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="sg_multiset.html#idm45971711616016-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="sg_multiset.html#idm45971711612192-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="sg_multiset.html#idm45971711608256-bb"><span class="identifier">swap</span></a><span class="special">(</span><a class="link" href="sg_multiset.html" title="Class template sg_multiset">sg_multiset</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="comment">// <a class="link" href="sg_multiset.html#idm39479-bb">public member functions</a></span> + <span class="identifier">iterator</span> <a class="link" href="sg_multiset.html#idm39480-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="sg_multiset.html#idm39489-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="sg_multiset.html#idm39498-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="sg_multiset.html#idm39507-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="sg_multiset.html#idm39516-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="sg_multiset.html#idm39525-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">reverse_iterator</span> <a class="link" href="sg_multiset.html#idm39534-bb"><span class="identifier">rbegin</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">const_reverse_iterator</span> <a class="link" href="sg_multiset.html#idm39543-bb"><span class="identifier">rbegin</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_reverse_iterator</span> <a class="link" href="sg_multiset.html#idm39552-bb"><span class="identifier">crbegin</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">reverse_iterator</span> <a class="link" href="sg_multiset.html#idm39561-bb"><span class="identifier">rend</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">const_reverse_iterator</span> <a class="link" href="sg_multiset.html#idm39570-bb"><span class="identifier">rend</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_reverse_iterator</span> <a class="link" href="sg_multiset.html#idm39579-bb"><span class="identifier">crend</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="sg_multiset.html#idm39588-bb"><span class="identifier">root</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="sg_multiset.html#idm39597-bb"><span class="identifier">root</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="sg_multiset.html#idm39606-bb"><span class="identifier">croot</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">key_compare</span> <a class="link" href="sg_multiset.html#idm39615-bb"><span class="identifier">key_comp</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">value_compare</span> <a class="link" href="sg_multiset.html#idm39624-bb"><span class="identifier">value_comp</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="sg_multiset.html#idm39633-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="sg_multiset.html#idm39642-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="sg_multiset.html#idm39651-bb"><span class="identifier">swap</span></a><span class="special">(</span><a class="link" href="sg_multiset.html" title="Class template sg_multiset">sg_multiset</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="sg_multiset.html#idm45971711603712-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="sg_multiset.html" title="Class template sg_multiset">sg_multiset</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="sg_multiset.html#idm39663-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="sg_multiset.html" title="Class template sg_multiset">sg_multiset</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="sg_multiset.html#idm45971711594592-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><a class="link" href="sg_multiset.html" title="Class template sg_multiset">sg_multiset</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="sg_multiset.html#idm45971711584704-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="identifier">reference</span><span class="special">)</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="sg_multiset.html#idm45971711578544-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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="sg_multiset.html#idm45971711571520-bb"><span class="identifier">insert</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">iterator</span> <a class="link" href="sg_multiset.html#idm45971711563680-bb"><span class="identifier">insert_before</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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">void</span> <a class="link" href="sg_multiset.html#idm45971711556448-bb"><span class="identifier">push_back</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">void</span> <a class="link" href="sg_multiset.html#idm45971711549888-bb"><span class="identifier">push_front</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">iterator</span> <a class="link" href="sg_multiset.html#idm45971711543328-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="identifier">iterator</span> <a class="link" href="sg_multiset.html#idm45971711537840-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="sg_multiset.html#idm45971711531600-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">void</span> <a class="link" href="sg_multiset.html#idm39685-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><a class="link" href="sg_multiset.html" title="Class template sg_multiset">sg_multiset</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="sg_multiset.html#idm39709-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="identifier">reference</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="sg_multiset.html#idm39713-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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="sg_multiset.html#idm39719-bb"><span class="identifier">insert</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">iterator</span> <a class="link" href="sg_multiset.html#idm39738-bb"><span class="identifier">insert_before</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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">void</span> <a class="link" href="sg_multiset.html#idm39755-bb"><span class="identifier">push_back</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">void</span> <a class="link" href="sg_multiset.html#idm39770-bb"><span class="identifier">push_front</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">iterator</span> <a class="link" href="sg_multiset.html#idm39785-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="identifier">iterator</span> <a class="link" href="sg_multiset.html#idm39789-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="sg_multiset.html#idm39795-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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">size_type</span> <a class="link" href="sg_multiset.html#idm45971711525552-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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">size_type</span> <a class="link" href="sg_multiset.html#idm39799-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">KeyTypeKeyCompare</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="identifier">iterator</span> <a class="link" href="sg_multiset.html#idm45971711515456-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="identifier">iterator</span> <a class="link" href="sg_multiset.html#idm39823-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="identifier">iterator</span> <a class="link" href="sg_multiset.html#idm45971711507552-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="identifier">iterator</span> <a class="link" href="sg_multiset.html#idm39831-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="sg_multiset.html#idm45971711498896-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="sg_multiset.html#idm39841-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> KeyTypeKeyCompare<span class="special">,</span> <span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="identifier">size_type</span> <a class="link" href="sg_multiset.html#idm45971711490368-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">KeyTypeKeyCompare</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="sg_multiset.html#idm45971711478144-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="sg_multiset.html#idm45971711473280-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="sg_multiset.html#idm45971711466976-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="identifier">size_type</span> <a class="link" href="sg_multiset.html#idm39849-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">KeyTypeKeyCompare</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="sg_multiset.html#idm39878-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="sg_multiset.html#idm39889-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="sg_multiset.html#idm39903-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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">size_type</span> <a class="link" href="sg_multiset.html#idm45971711461904-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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="sg_multiset.html#idm45971711452848-bb"><span class="identifier">lower_bound</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="sg_multiset.html#idm39907-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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="sg_multiset.html#idm39928-bb"><span class="identifier">lower_bound</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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a class="link" href="sg_multiset.html#idm45971711448096-bb"><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> - <span class="identifier">const_iterator</span> <a class="link" href="sg_multiset.html#idm45971711441248-bb"><span class="identifier">lower_bound</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="sg_multiset.html#idm39932-bb"><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">const_iterator</span> <a class="link" href="sg_multiset.html#idm39941-bb"><span class="identifier">lower_bound</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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">const_iterator</span> <a class="link" href="sg_multiset.html#idm45971711436224-bb"><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="sg_multiset.html#idm45971711429104-bb"><span class="identifier">upper_bound</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="sg_multiset.html#idm39945-bb"><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="sg_multiset.html#idm39954-bb"><span class="identifier">upper_bound</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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a class="link" href="sg_multiset.html#idm45971711424352-bb"><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> - <span class="identifier">const_iterator</span> <a class="link" href="sg_multiset.html#idm45971711415648-bb"><span class="identifier">upper_bound</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="sg_multiset.html#idm39958-bb"><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">const_iterator</span> <a class="link" href="sg_multiset.html#idm39979-bb"><span class="identifier">upper_bound</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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">const_iterator</span> <a class="link" href="sg_multiset.html#idm45971711410624-bb"><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="sg_multiset.html#idm45971711401648-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">const_iterator</span> <a class="link" href="sg_multiset.html#idm39983-bb"><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="sg_multiset.html#idm40004-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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a class="link" href="sg_multiset.html#idm45971711396912-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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> - <span class="identifier">const_iterator</span> <a class="link" href="sg_multiset.html#idm45971711388176-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="sg_multiset.html#idm40008-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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">const_iterator</span> <a class="link" href="sg_multiset.html#idm40029-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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">const_iterator</span> <a class="link" href="sg_multiset.html#idm45971711383168-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">KeyTypeKeyCompare</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="sg_multiset.html#idm45971711374160-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="sg_multiset.html#idm40033-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">KeyTypeKeyCompare</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="sg_multiset.html#idm40054-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> KeyTypeKeyCompare<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="sg_multiset.html#idm45971711369328-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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="sg_multiset.html#idm40058-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">KeyTypeKeyCompare</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="sg_multiset.html#idm45971711360496-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="sg_multiset.html#idm40079-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> KeyTypeKeyCompare<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="sg_multiset.html#idm45971711355376-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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <a class="link" href="sg_multiset.html#idm40083-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">KeyTypeKeyCompare</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="sg_multiset.html#idm45971711346256-bb"><span class="identifier">bounded_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="identifier">key_type</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="sg_multiset.html#idm40104-bb"><span class="identifier">bounded_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="identifier">key_type</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</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> KeyTypeKeyCompare<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="sg_multiset.html#idm45971711333824-bb"><span class="identifier">bounded_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="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> + <a class="link" href="sg_multiset.html#idm40114-bb"><span class="identifier">bounded_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="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</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="sg_multiset.html#idm45971711317024-bb"><span class="identifier">bounded_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="identifier">key_type</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <a class="link" href="sg_multiset.html#idm40156-bb"><span class="identifier">bounded_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="identifier">key_type</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</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> KeyTypeKeyCompare<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="sg_multiset.html#idm45971711304304-bb"><span class="identifier">bounded_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="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> + <a class="link" href="sg_multiset.html#idm40166-bb"><span class="identifier">bounded_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="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="sg_multiset.html#idm45971711287216-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="sg_multiset.html#idm45971711281728-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">pointer</span> <a class="link" href="sg_multiset.html#idm45971711276240-bb"><span class="identifier">unlink_leftmost_without_rebalance</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="sg_multiset.html#idm45971711271328-bb"><span class="identifier">replace_node</span></a><span class="special">(</span><span class="identifier">iterator</span><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">void</span> <a class="link" href="sg_multiset.html#idm45971711264064-bb"><span class="identifier">remove_node</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">void</span> <a class="link" href="sg_multiset.html#idm45971711258224-bb"><span class="identifier">rebalance</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="sg_multiset.html#idm45971711254432-bb"><span class="identifier">rebalance_subtree</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">float</span> <a class="link" href="sg_multiset.html#idm45971711248160-bb"><span class="identifier">balance_factor</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="sg_multiset.html#idm45971711244336-bb"><span class="identifier">balance_factor</span></a><span class="special">(</span><span class="keyword">float</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">class</span> <span class="special">...</span> Options2<span class="special">></span> <span class="keyword">void</span> <a class="link" href="sg_multiset.html#idm45971711238832-bb"><span class="identifier">merge</span></a><span class="special">(</span><a class="link" href="sg_multiset.html" title="Class template sg_multiset">sg_multiset</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</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">class</span> <span class="special">...</span> Options2<span class="special">></span> <span class="keyword">void</span> <a class="link" href="sg_multiset.html#idm45971711230880-bb"><span class="identifier">merge</span></a><span class="special">(</span><a class="link" href="sg_set.html" title="Class template sg_set">sg_set</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="sg_multiset.html#idm40208-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="sg_multiset.html#idm40212-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">pointer</span> <a class="link" href="sg_multiset.html#idm40216-bb"><span class="identifier">unlink_leftmost_without_rebalance</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="sg_multiset.html#idm40227-bb"><span class="identifier">replace_node</span></a><span class="special">(</span><span class="identifier">iterator</span><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">void</span> <a class="link" href="sg_multiset.html#idm40244-bb"><span class="identifier">remove_node</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">void</span> <a class="link" href="sg_multiset.html#idm40258-bb"><span class="identifier">rebalance</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="sg_multiset.html#idm40267-bb"><span class="identifier">rebalance_subtree</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">float</span> <a class="link" href="sg_multiset.html#idm40282-bb"><span class="identifier">balance_factor</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="sg_multiset.html#idm40291-bb"><span class="identifier">balance_factor</span></a><span class="special">(</span><span class="keyword">float</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">class</span> <span class="special">...</span> Options2<span class="special">></span> <span class="keyword">void</span> <a class="link" href="sg_multiset.html#idm40304-bb"><span class="identifier">merge</span></a><span class="special">(</span><a class="link" href="sg_multiset.html" title="Class template sg_multiset">sg_multiset</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</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">class</span> <span class="special">...</span> Options2<span class="special">></span> <span class="keyword">void</span> <a class="link" href="sg_multiset.html#idm40323-bb"><span class="identifier">merge</span></a><span class="special">(</span><a class="link" href="sg_set.html" title="Class template sg_set">sg_set</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> - <span class="comment">// <a class="link" href="sg_multiset.html#idm45971711195008-bb">public static functions</a></span> - <span class="keyword">static</span> <a class="link" href="sg_multiset.html" title="Class template sg_multiset">sg_multiset</a> <span class="special">&</span> <a class="link" href="sg_multiset.html#idm45971711194448-bb"><span class="identifier">container_from_end_iterator</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="comment">// <a class="link" href="sg_multiset.html#idm40398-bb">public static functions</a></span> + <span class="keyword">static</span> <a class="link" href="sg_multiset.html" title="Class template sg_multiset">sg_multiset</a> <span class="special">&</span> <a class="link" href="sg_multiset.html#idm40399-bb"><span class="identifier">container_from_end_iterator</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> <span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="sg_multiset.html" title="Class template sg_multiset">sg_multiset</a> <span class="special">&</span> - <a class="link" href="sg_multiset.html#idm45971711188432-bb"><span class="identifier">container_from_end_iterator</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">static</span> <a class="link" href="sg_multiset.html" title="Class template sg_multiset">sg_multiset</a> <span class="special">&</span> <a class="link" href="sg_multiset.html#idm45971711182256-bb"><span class="identifier">container_from_iterator</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="sg_multiset.html" title="Class template sg_multiset">sg_multiset</a> <span class="special">&</span> <a class="link" href="sg_multiset.html#idm45971711176288-bb"><span class="identifier">container_from_iterator</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">static</span> <span class="identifier">iterator</span> <a class="link" href="sg_multiset.html#idm45971711170160-bb"><span class="identifier">s_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_iterator</span> <a class="link" href="sg_multiset.html#idm45971711163072-bb"><span class="identifier">s_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="keyword">void</span> <a class="link" href="sg_multiset.html#idm45971711155984-bb"><span class="identifier">init_node</span></a><span class="special">(</span><span class="identifier">reference</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <a class="link" href="sg_multiset.html#idm40404-bb"><span class="identifier">container_from_end_iterator</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">static</span> <a class="link" href="sg_multiset.html" title="Class template sg_multiset">sg_multiset</a> <span class="special">&</span> <a class="link" href="sg_multiset.html#idm40409-bb"><span class="identifier">container_from_iterator</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="sg_multiset.html" title="Class template sg_multiset">sg_multiset</a> <span class="special">&</span> <a class="link" href="sg_multiset.html#idm40414-bb"><span class="identifier">container_from_iterator</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">static</span> <span class="identifier">iterator</span> <a class="link" href="sg_multiset.html#idm40419-bb"><span class="identifier">s_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_iterator</span> <a class="link" href="sg_multiset.html#idm40423-bb"><span class="identifier">s_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="keyword">void</span> <a class="link" href="sg_multiset.html#idm40427-bb"><span class="identifier">init_node</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="comment">// public data members</span> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">bool</span> <span class="identifier">constant_time_size</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.32.5.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.32.5.4"></a><h2>Description</h2> <p>The class template <a class="link" href="sg_multiset.html" title="Class template sg_multiset">sg_multiset</a> is an intrusive container, that mimics most of the interface of std::sg_multiset as described in the C++ standard.</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> <p>The container supports the following options: <code class="computeroutput">base_hook<>/member_hook<>/value_traits<></code>, <code class="computeroutput">floating_point<></code>, <code class="computeroutput">size_type<></code> and <code class="computeroutput">compare<></code>. </p> <div class="refsect2"> -<a name="id-1.3.20.42.32.5.4.5"></a><h3> +<a name="id-1.3.18.42.32.5.4.5"></a><h3> <a name="boost.intrusive.sg_multisetconstruct-copy-destruct"></a><code class="computeroutput">sg_multiset</code> public construct/copy/destruct</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> <li class="listitem"> -<pre class="literallayout"><a name="idm45971711222768-bb"></a><span class="identifier">sg_multiset</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm40342-bb"></a><span class="identifier">sg_multiset</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Constructs an empty container.</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 constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor of the key_compare object throws. Basic guarantee. </p> +<p><span class="bold"><strong>Throws</strong></span>: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor of the key_compare object throws. Basic guarantee. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="keyword">explicit</span> <a name="idm40350-bb"></a><span class="identifier">sg_multiset</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> cmp<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></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="idm40356-bb"></a><span class="identifier">sg_multiset</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="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> cmp <span class="special">=</span> <span class="identifier">key_compare</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></li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">explicit</span> <a name="idm45971711219616-bb"></a><span class="identifier">sg_multiset</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> cmp<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> -<p><span class="bold"><strong>Effects</strong></span>: Constructs an empty container with given comparison and traits.</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 constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor of the key_compare object throws. Basic guarantee. </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> - <a name="idm45971711214496-bb"></a><span class="identifier">sg_multiset</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="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> cmp <span class="special">=</span> <span class="identifier">key_compare</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> -<p><span class="bold"><strong>Requires</strong></span>: Dereferencing iterator must yield an lvalue of type value_type. cmp must be a comparison function that induces a strict weak ordering.</p> -<p><span class="bold"><strong>Effects</strong></span>: Constructs an empty container and inserts elements from [b, e).</p> -<p><span class="bold"><strong>Complexity</strong></span>: Linear in N if [b, e) is already sorted using comp and otherwise N * log N, where N is the distance between first and last.</p> -<p><span class="bold"><strong>Throws</strong></span>: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor/operator() of the key_compare object throws. Basic guarantee. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><a name="idm45971711206032-bb"></a><span class="identifier">sg_multiset</span><span class="special">(</span><a class="link" href="sg_multiset.html" title="Class template sg_multiset">sg_multiset</a> <span class="special">&&</span> x<span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm40369-bb"></a><span class="identifier">sg_multiset</span><span class="special">(</span><a class="link" href="sg_multiset.html" title="Class template sg_multiset">sg_multiset</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 comparison object and value traits are move constructed and nodes belonging to x (except the node representing the "end") 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 the comparison objet throws. </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 the comparison objet throws. </p> </li> <li class="listitem"> -<pre class="literallayout"><a class="link" href="sg_multiset.html" title="Class template sg_multiset">sg_multiset</a> <span class="special">&</span> <a name="idm45971711201728-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><a class="link" href="sg_multiset.html" title="Class template sg_multiset">sg_multiset</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> +<pre class="literallayout"><a class="link" href="sg_multiset.html" title="Class template sg_multiset">sg_multiset</a> <span class="special">&</span> <a name="idm40380-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><a class="link" href="sg_multiset.html" title="Class template sg_multiset">sg_multiset</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="idm45971711198912-bb"></a><span class="special">~</span><span class="identifier">sg_multiset</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm40389-bb"></a><span class="special">~</span><span class="identifier">sg_multiset</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 set are not deleted (i.e. no destructors are called), but the nodes according to the <code class="computeroutput"><a class="link" href="value_traits.html" title="Struct template value_traits">value_traits</a></code> template parameter are reinitialized and thus can be reused.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to elements contained in *this.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> </ol></div> </div> <div class="refsect2"> -<a name="id-1.3.20.42.32.5.4.6"></a><h3> -<a name="idm45971711682096-bb"></a><code class="computeroutput">sg_multiset</code> public member functions</h3> +<a name="id-1.3.18.42.32.5.4.6"></a><h3> +<a name="idm39479-bb"></a><code class="computeroutput">sg_multiset</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="idm45971711681536-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="idm39480-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971711677696-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="idm39489-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971711673856-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="idm39498-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971711670016-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="idm39507-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971711666176-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="idm39516-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971711662336-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="idm39525-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">reverse_iterator</span> <a name="idm45971711658496-bb"></a><span class="identifier">rbegin</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">reverse_iterator</span> <a name="idm39534-bb"></a><span class="identifier">rbegin</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 a reverse_iterator pointing to the beginning of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45971711654640-bb"></a><span class="identifier">rbegin</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_reverse_iterator</span> <a name="idm39543-bb"></a><span class="identifier">rbegin</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_reverse_iterator pointing to the beginning of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45971711650784-bb"></a><span class="identifier">crbegin</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_reverse_iterator</span> <a name="idm39552-bb"></a><span class="identifier">crbegin</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_reverse_iterator pointing to the beginning of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">reverse_iterator</span> <a name="idm45971711646928-bb"></a><span class="identifier">rend</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">reverse_iterator</span> <a name="idm39561-bb"></a><span class="identifier">rend</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 a reverse_iterator pointing to the end of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45971711643072-bb"></a><span class="identifier">rend</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_reverse_iterator</span> <a name="idm39570-bb"></a><span class="identifier">rend</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_reverse_iterator pointing to the end of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45971711639216-bb"></a><span class="identifier">crend</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_reverse_iterator</span> <a name="idm39579-bb"></a><span class="identifier">crend</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_reverse_iterator pointing to the end of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971711635360-bb"></a><span class="identifier">root</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="idm39588-bb"></a><span class="identifier">root</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 a iterator pointing to the root node of the container or end() if not present.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971711631488-bb"></a><span class="identifier">root</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="idm39597-bb"></a><span class="identifier">root</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 root node of the container or cend() if not present.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971711627616-bb"></a><span class="identifier">croot</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="idm39606-bb"></a><span class="identifier">croot</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 root node of the container or cend() if not present.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">key_compare</span> <a name="idm45971711623744-bb"></a><span class="identifier">key_comp</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_compare</span> <a name="idm39615-bb"></a><span class="identifier">key_comp</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_compare object used by the container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: If key_compare copy-constructor throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If key_compare copy-constructor throws. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">value_compare</span> <a name="idm45971711619888-bb"></a><span class="identifier">value_comp</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">value_compare</span> <a name="idm39624-bb"></a><span class="identifier">value_comp</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 value_compare object used by the container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: If value_compare copy-constructor throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If value_compare copy-constructor throws. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">bool</span> <a name="idm45971711616016-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="idm39633-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>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971711612192-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="idm39642-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to elements contained in *this if constant-time size option is disabled. Constant time otherwise.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971711608256-bb"></a><span class="identifier">swap</span><span class="special">(</span><a class="link" href="sg_multiset.html" title="Class template sg_multiset">sg_multiset</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="idm39651-bb"></a><span class="identifier">swap</span><span class="special">(</span><a class="link" href="sg_multiset.html" title="Class template sg_multiset">sg_multiset</a> <span class="special">&</span> other<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Swaps the contents of two containers.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comparison functor's swap call throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If the comparison functor's swap call throws. </p> </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="idm45971711603712-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="sg_multiset.html" title="Class template sg_multiset">sg_multiset</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="idm39663-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="sg_multiset.html" title="Class template sg_multiset">sg_multiset</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 equivalent to the original nodes.</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. Copies the predicate from the source container.</p> <p>If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to erased plus inserted elements.</p> -<p><span class="bold"><strong>Throws</strong></span>: If cloner throws or predicate copy assignment throws. Basic guarantee. Additional notes: it also copies the alpha factor from the source container. </p> +<p><span class="bold"><strong>Throws</strong></span>: If cloner throws or predicate copy assignment throws. Basic guarantee. Additional notes: it also copies the alpha factor from the source container. </p> </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="idm45971711594592-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><a class="link" href="sg_multiset.html" title="Class template sg_multiset">sg_multiset</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="idm39685-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><a class="link" href="sg_multiset.html" title="Class template sg_multiset">sg_multiset</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 equivalent to the original nodes.</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. Copies the predicate from the source container.</p> <p>If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to erased plus inserted elements.</p> <p><span class="bold"><strong>Throws</strong></span>: If cloner throws or predicate copy assignment throws. Basic guarantee.</p> -<p><span class="bold"><strong>Note</strong></span>: This version can modify the source container, useful to implement move semantics. Additional notes: it also copies the alpha factor from the source container. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971711584704-bb"></a><span class="identifier">insert</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 value into the container before the upper bound.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Average complexity for insert element is at most logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the internal key_compare ordering function throws. Strong guarantee.</p> -<p><span class="bold"><strong>Note</strong></span>: Does not affect the validity of iterators and references. No copy-constructors are called. </p> +<p><span class="bold"><strong>Note</strong></span>: This version can modify the source container, useful to implement move semantics. Additional notes: it also copies the alpha factor from the source container. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm39709-bb"></a><span class="identifier">insert</span><span class="special">(</span><span class="identifier">reference</span> value<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm39713-bb"></a><span class="identifier">insert</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<span class="special">,</span> <span class="identifier">reference</span> value<span class="special">)</span><span class="special">;</span></pre></li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971711578544-bb"></a><span class="identifier">insert</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<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, and "hint" must be a valid iterator.</p> -<p><span class="bold"><strong>Effects</strong></span>: Inserts x into the container, using "hint" as a hint to where it will be inserted. If "hint" is the upper_bound the insertion takes constant time (two comparisons in the worst case)</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic in general, but it is amortized constant time if t is inserted immediately before hint.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the internal key_compare ordering function throws. Strong guarantee.</p> -<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="idm45971711571520-bb"></a><span class="identifier">insert</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="idm39719-bb"></a><span class="identifier">insert</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>: Inserts a each element of a range into the container before the upper bound of the key of each element.</p> <p><span class="bold"><strong>Complexity</strong></span>: Insert range is in general O(N * log(N)), where N is the size of the range. However, it is linear in N if the range is already sorted by value_comp().</p> <p><span class="bold"><strong>Throws</strong></span>: If the comparison functor call throws.</p> -<p><span class="bold"><strong>Note</strong></span>: Does not affect the validity of iterators and references. No copy-constructors are called. </p> +<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">iterator</span> <a name="idm45971711563680-bb"></a><span class="identifier">insert_before</span><span class="special">(</span><span class="identifier">const_iterator</span> pos<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="idm39738-bb"></a><span class="identifier">insert_before</span><span class="special">(</span><span class="identifier">const_iterator</span> pos<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, "pos" must be a valid iterator (or end) and must be the succesor of value once inserted according to the predicate</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts x into the container before "pos".</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if "pos" is not the successor of "value" container ordering invariant will be broken. This is a low-level function to be used only for performance reasons by advanced users. </p> +<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if "pos" is not the successor of "value" container ordering invariant will be broken. This is a low-level function to be used only for performance reasons by advanced users. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971711556448-bb"></a><span class="identifier">push_back</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">void</span> <a name="idm39755-bb"></a><span class="identifier">push_back</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 it must be no less than the greatest inserted key</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts x into the container in the last position.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if value is less than the greatest inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users. </p> +<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if value is less than the greatest inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971711549888-bb"></a><span class="identifier">push_front</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">void</span> <a name="idm39770-bb"></a><span class="identifier">push_front</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 it must be no greater than the minimum inserted key</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts x into the container in the first position.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if value is greater than the minimum inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971711543328-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 complexity for erase element is constant time.</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">iterator</span> <a name="idm45971711537840-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 complexity for erase range is at most O(log(size() + N)), where N is the number of elements in the range.</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="idm45971711531600-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>: O(log(size() + N).</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> +<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if value is greater than the minimum inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm39785-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm39789-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">size_type</span> <a name="idm39795-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></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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971711525552-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <span class="identifier">size_type</span> <a name="idm39799-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Erases all the elements with the given key. according to the comparison functor "comp".</p> <p><span class="bold"><strong>Returns</strong></span>: The number of erased elements.</p> <p><span class="bold"><strong>Complexity</strong></span>: O(log(size() + N).</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="identifier">iterator</span> <a name="idm45971711515456-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 complexity for erase element is constant time.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<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">template</span><span class="special"><</span><span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="identifier">iterator</span> <a name="idm45971711507552-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> -<p><span class="bold"><strong>Complexity</strong></span>: Average complexity for erase range is at most O(log(size() + N)), where N is the number of elements in the range.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<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">template</span><span class="special"><</span><span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971711498896-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> -<p><span class="bold"><strong>Complexity</strong></span>: O(log(size() + N).</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> +<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="identifier">iterator</span> <a name="idm39823-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></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">iterator</span> <a name="idm39831-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></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="idm39841-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></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> KeyTypeKeyCompare<span class="special">,</span> <span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971711490368-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">KeyTypeKeyCompare</span> comp<span class="special">,</span> + <span class="identifier">size_type</span> <a name="idm39849-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">KeyTypeKeyCompare</span> comp<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>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk) and nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Requires</strong></span>: Disposer::operator()(pointer) shouldn't throw.</p> @@ -496,168 +431,102 @@ <p><span class="bold"><strong>Returns</strong></span>: The number of erased elements.</p> <p><span class="bold"><strong>Complexity</strong></span>: O(log(size() + N).</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: Invalidates the iterators to the erased elements. </p> +<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="idm45971711478144-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="idm39878-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> +<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="idm45971711473280-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="idm39889-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>Effects</strong></span>: Erases all of the elements calling disposer(p) for each node to be erased. <span class="bold"><strong>Complexity</strong></span>: Average complexity for is at most O(log(size() + N)), where N is the number of elements in the container.</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. Calls N times to disposer functor. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">size_type</span> <a name="idm45971711466976-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>: Logarithmic to the number of elements contained plus lineal to number of objects with the given value.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Note</strong></span>: Invalidates the iterators (but not the references) to the erased elements. Calls N times to disposer functor. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">size_type</span> <a name="idm39903-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></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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971711461904-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> + <span class="identifier">size_type</span> <a name="idm39907-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns the number of contained elements with the given key</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic to the number of elements contained plus lineal to number of objects with the given key.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971711452848-bb"></a><span class="identifier">lower_bound</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 an iterator to the first element whose key is not less than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> 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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a name="idm45971711448096-bb"></a><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Effects</strong></span>: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971711441248-bb"></a><span class="identifier">lower_bound</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 an iterator to the first element whose key is not less than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> 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> KeyTypeKeyCompare<span class="special">></span> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm39928-bb"></a><span class="identifier">lower_bound</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></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> KeyTypeKeyCompare<span class="special">></span> + <span class="identifier">iterator</span> <a name="idm39932-bb"></a><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm39941-bb"></a><span class="identifier">lower_bound</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></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> KeyTypeKeyCompare<span class="special">></span> <span class="identifier">const_iterator</span> - <a name="idm45971711436224-bb"></a><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Effects</strong></span>: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971711429104-bb"></a><span class="identifier">upper_bound</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 an iterator to the first element whose key is greater than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> -</li> + <a name="idm39945-bb"></a><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm39954-bb"></a><span class="identifier">upper_bound</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></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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a name="idm45971711424352-bb"></a><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <span class="identifier">iterator</span> <a name="idm39958-bb"></a><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns an iterator to the first element whose key is greater than k according to comp or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971711415648-bb"></a><span class="identifier">upper_bound</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 an iterator to the first element whose key is greater than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm39979-bb"></a><span class="identifier">upper_bound</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></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> KeyTypeKeyCompare<span class="special">></span> <span class="identifier">const_iterator</span> - <a name="idm45971711410624-bb"></a><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> + <a name="idm39983-bb"></a><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns an iterator to the first element whose key is greater than k according to comp or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971711401648-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 whose key is k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm40004-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></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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a name="idm45971711396912-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <span class="identifier">iterator</span> <a name="idm40008-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Finds an iterator to the first element whose key is k or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971711388176-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 an iterator to the first element whose key is k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm40029-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></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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">const_iterator</span> <a name="idm45971711383168-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> + <span class="identifier">const_iterator</span> <a name="idm40033-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Finds an iterator to the first element whose key is k or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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="idm45971711374160-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>: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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="idm40054-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></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> KeyTypeKeyCompare<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="idm45971711369328-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <a name="idm40058-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">></span> -<a name="idm45971711360496-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>: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">></span> +<a name="idm40079-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></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> KeyTypeKeyCompare<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="idm45971711355376-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> + <a name="idm40083-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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="idm45971711346256-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> upper_key<span class="special">,</span> - <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: <code class="computeroutput">upper_key</code> shall not precede <code class="computeroutput">lower_key</code> according to key_compare. [key_comp()(upper_key, lower_key) shall be false]</p> -<p>If <code class="computeroutput">lower_key</code> is equivalent to <code class="computeroutput">upper_key</code> [!key_comp()(upper_key, lower_key) && !key_comp()(lower_key, upper_key)] then ('left_closed' || 'right_closed') must be false.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns an a pair with the following criteria:</p> -<p>first = lower_bound(lower_key) if left_closed, upper_bound(lower_key) otherwise</p> -<p>second = upper_bound(upper_key) if right_closed, lower_bound(upper_key) otherwise</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws.</p> -<p><span class="bold"><strong>Note</strong></span>: This function can be more efficient than calling upper_bound and lower_bound for lower_value and upper_value.</p> -<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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="idm40104-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> upper_key<span class="special">,</span> + <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span><span class="special">;</span></pre></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> KeyTypeKeyCompare<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="idm45971711333824-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> + <a name="idm40114-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span> comp<span class="special">,</span> <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: <code class="computeroutput">lower_key</code> is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, lower_key) if left_closed is true, with respect to !comp(lower_key, nk) otherwise.</p> <p><code class="computeroutput">upper_key</code> is a value such that <code class="computeroutput">*this</code> is partitioned with respect to !comp(upper_key, nk) if right_closed is true, with respect to comp(nk, upper_key) otherwise.</p> @@ -669,26 +538,15 @@ <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> <p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws.</p> <p><span class="bold"><strong>Note</strong></span>: This function can be more efficient than calling upper_bound and lower_bound for lower_key and upper_key.</p> -<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </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">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">></span> -<a name="idm45971711317024-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> upper_key<span class="special">,</span> - <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: <code class="computeroutput">upper_key</code> shall not precede <code class="computeroutput">lower_key</code> according to key_compare. [key_comp()(upper_key, lower_key) shall be false]</p> -<p>If <code class="computeroutput">lower_key</code> is equivalent to <code class="computeroutput">upper_key</code> [!key_comp()(upper_key, lower_key) && !key_comp()(lower_key, upper_key)] then ('left_closed' || 'right_closed') must be false.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns an a pair with the following criteria:</p> -<p>first = lower_bound(lower_key) if left_closed, upper_bound(lower_key) otherwise</p> -<p>second = upper_bound(upper_key) if right_closed, lower_bound(upper_key) otherwise</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws.</p> -<p><span class="bold"><strong>Note</strong></span>: This function can be more efficient than calling upper_bound and lower_bound for lower_value and upper_value.</p> -<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </p> +<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </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">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">></span> +<a name="idm40156-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> upper_key<span class="special">,</span> + <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></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> KeyTypeKeyCompare<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="idm45971711304304-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> + <a name="idm40166-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span> comp<span class="special">,</span> <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: <code class="computeroutput">lower_key</code> is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, lower_key) if left_closed is true, with respect to !comp(lower_key, nk) otherwise.</p> <p><code class="computeroutput">upper_key</code> is a value such that <code class="computeroutput">*this</code> is partitioned with respect to !comp(upper_key, nk) if right_closed is true, with respect to comp(nk, upper_key) otherwise.</p> @@ -700,161 +558,101 @@ <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> <p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws.</p> <p><span class="bold"><strong>Note</strong></span>: This function can be more efficient than calling upper_bound and lower_bound for lower_key and upper_key.</p> -<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971711287216-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 set of appropriate type. Otherwise the behavior is undefined.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns: a valid iterator i belonging to the set 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_iterator</span> <a name="idm45971711281728-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 set of appropriate type. Otherwise the behavior is undefined.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns: a valid const_iterator i belonging to the set 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> +<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm40208-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm40212-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></li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">pointer</span> <a name="idm45971711276240-bb"></a><span class="identifier">unlink_leftmost_without_rebalance</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">pointer</span> <a name="idm40216-bb"></a><span class="identifier">unlink_leftmost_without_rebalance</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>: Unlinks the leftmost node from the container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Average complexity is constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Notes</strong></span>: This function breaks the container and the container can only be used for more unlink_leftmost_without_rebalance calls. This function is normally used to achieve a step by step controlled destruction of the container. </p> +<p><span class="bold"><strong>Notes</strong></span>: This function breaks the container and the container can only be used for more unlink_leftmost_without_rebalance calls. This function is normally used to achieve a step by step controlled destruction of the container. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971711271328-bb"></a><span class="identifier">replace_node</span><span class="special">(</span><span class="identifier">iterator</span> replace_this<span class="special">,</span> <span class="identifier">reference</span> with_this<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">void</span> <a name="idm40227-bb"></a><span class="identifier">replace_node</span><span class="special">(</span><span class="identifier">iterator</span> replace_this<span class="special">,</span> <span class="identifier">reference</span> with_this<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: replace_this must be a valid iterator of *this and with_this must not be inserted in any container.</p> <p><span class="bold"><strong>Effects</strong></span>: Replaces replace_this in its position in the container with with_this. The container does not need to be rebalanced.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: This function will break container ordering invariants if with_this is not equivalent to *replace_this according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing or comparison is needed. </p> +<p><span class="bold"><strong>Note</strong></span>: This function will break container ordering invariants if with_this is not equivalent to *replace_this according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing or comparison is needed. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971711264064-bb"></a><span class="identifier">remove_node</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">void</span> <a name="idm40244-bb"></a><span class="identifier">remove_node</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>Effects</strong></span>: removes "value" from the container.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic time.</p> <p><span class="bold"><strong>Note</strong></span>: This static function is only usable with non-constant time size containers that have stateless comparison functors.</p> -<p>If the user calls this function with a constant time size container or stateful comparison functor a compilation error will be issued. </p> +<p>If the user calls this function with a constant time size container or stateful comparison functor a compilation error will be issued. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971711258224-bb"></a><span class="identifier">rebalance</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="idm40258-bb"></a><span class="identifier">rebalance</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>: Rebalances the tree.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Linear. </p> +<p><span class="bold"><strong>Complexity</strong></span>: Linear. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971711254432-bb"></a><span class="identifier">rebalance_subtree</span><span class="special">(</span><span class="identifier">iterator</span> root<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm40267-bb"></a><span class="identifier">rebalance_subtree</span><span class="special">(</span><span class="identifier">iterator</span> root<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: old_root is a node of a tree.</p> <p><span class="bold"><strong>Effects</strong></span>: Rebalances the subtree rooted at old_root.</p> <p><span class="bold"><strong>Returns</strong></span>: The new root of the subtree.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Linear to the elements in the subtree. </p> +<p><span class="bold"><strong>Complexity</strong></span>: Linear to the elements in the subtree. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">float</span> <a name="idm45971711248160-bb"></a><span class="identifier">balance_factor</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">float</span> <a name="idm40282-bb"></a><span class="identifier">balance_factor</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>Returns</strong></span>: The balance factor (alpha) used in this tree</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Constant. </p> +<p><span class="bold"><strong>Complexity</strong></span>: Constant. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971711244336-bb"></a><span class="identifier">balance_factor</span><span class="special">(</span><span class="keyword">float</span> new_alpha<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">void</span> <a name="idm40291-bb"></a><span class="identifier">balance_factor</span><span class="special">(</span><span class="keyword">float</span> new_alpha<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: new_alpha must be a value between 0.5 and 1.0</p> <p><span class="bold"><strong>Effects</strong></span>: Establishes a new balance factor (alpha) and rebalances the tree if the new balance factor is stricter (less) than the old factor.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Linear to the elements in the subtree. </p> +<p><span class="bold"><strong>Complexity</strong></span>: Linear to the elements in the subtree. </p> </li> <li class="listitem"> <pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="special">...</span> Options2<span class="special">></span> - <span class="keyword">void</span> <a name="idm45971711238832-bb"></a><span class="identifier">merge</span><span class="special">(</span><a class="link" href="sg_multiset.html" title="Class template sg_multiset">sg_multiset</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span> source<span class="special">)</span><span class="special">;</span></pre> + <span class="keyword">void</span> <a name="idm40304-bb"></a><span class="identifier">merge</span><span class="special">(</span><a class="link" href="sg_multiset.html" title="Class template sg_multiset">sg_multiset</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span> source<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "source" container's Options can only can differ in the comparison function from *this.</p> <p><span class="bold"><strong>Effects</strong></span>: Attempts to extract each element in source and insert it into a using the comparison object of *this. If there is an element in a with key equivalent to the key of an element from source, then that element is not extracted from source.</p> <p><span class="bold"><strong>Postcondition</strong></span>: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing unless the comparison object throws.</p> -<p><span class="bold"><strong>Complexity</strong></span>: N log(a.size() + N) (N has the value source.size()) </p> +<p><span class="bold"><strong>Complexity</strong></span>: N log(a.size() + N) (N has the value source.size()) </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="special">...</span> Options2<span class="special">></span> <span class="keyword">void</span> <a name="idm45971711230880-bb"></a><span class="identifier">merge</span><span class="special">(</span><a class="link" href="sg_set.html" title="Class template sg_set">sg_set</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span> source<span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="special">...</span> Options2<span class="special">></span> <span class="keyword">void</span> <a name="idm40323-bb"></a><span class="identifier">merge</span><span class="special">(</span><a class="link" href="sg_set.html" title="Class template sg_set">sg_set</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span> source<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "source" container's Options can only can differ in the comparison function from *this.</p> <p><span class="bold"><strong>Effects</strong></span>: Attempts to extract each element in source and insert it into a using the comparison object of *this. If there is an element in a with key equivalent to the key of an element from source, then that element is not extracted from source.</p> <p><span class="bold"><strong>Postcondition</strong></span>: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing unless the comparison object throws.</p> -<p><span class="bold"><strong>Complexity</strong></span>: N log(a.size() + N) (N has the value source.size()) </p> +<p><span class="bold"><strong>Complexity</strong></span>: N log(a.size() + N) (N has the value source.size()) </p> </li> </ol></div> </div> <div class="refsect2"> -<a name="id-1.3.20.42.32.5.4.7"></a><h3> -<a name="idm45971711195008-bb"></a><code class="computeroutput">sg_multiset</code> public static functions</h3> +<a name="id-1.3.18.42.32.5.4.7"></a><h3> +<a name="idm40398-bb"></a><code class="computeroutput">sg_multiset</code> public static functions</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <a class="link" href="sg_multiset.html" title="Class template sg_multiset">sg_multiset</a> <span class="special">&</span> -<a name="idm45971711194448-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Precondition</strong></span>: end_iterator must be a valid end iterator of the container.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the container associated to the end iterator</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Constant. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="sg_multiset.html" title="Class template sg_multiset">sg_multiset</a> <span class="special">&</span> -<a name="idm45971711188432-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">const_iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Precondition</strong></span>: end_iterator must be a valid end iterator of the container.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the container associated to the end iterator</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Constant. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <a class="link" href="sg_multiset.html" title="Class template sg_multiset">sg_multiset</a> <span class="special">&</span> <a name="idm45971711182256-bb"></a><span class="identifier">container_from_iterator</span><span class="special">(</span><span class="identifier">iterator</span> it<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Precondition</strong></span>: it must be a valid iterator of the container.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the container associated to the iterator</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="sg_multiset.html" title="Class template sg_multiset">sg_multiset</a> <span class="special">&</span> <a name="idm45971711176288-bb"></a><span class="identifier">container_from_iterator</span><span class="special">(</span><span class="identifier">const_iterator</span> it<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Precondition</strong></span>: it must be a valid iterator of the container.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the container associated to the iterator</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="identifier">iterator</span> <a name="idm45971711170160-bb"></a><span class="identifier">s_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 set of appropriate type. Otherwise the behavior is undefined.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns: a valid iterator i belonging to the set 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> -<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">const_iterator</span> <a name="idm45971711163072-bb"></a><span class="identifier">s_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 set of appropriate type. Otherwise the behavior is undefined.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns: a valid iterator i belonging to the set 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> -<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="keyword">void</span> <a name="idm45971711155984-bb"></a><span class="identifier">init_node</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 shall not be in a container.</p> -<p><span class="bold"><strong>Effects</strong></span>: init_node puts the hook of a value in a well-known default state.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> -<p><span class="bold"><strong>Note</strong></span>: This function puts the hook in the well-known default state used by auto_unlink and safe hooks. </p> -</li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <a class="link" href="sg_multiset.html" title="Class template sg_multiset">sg_multiset</a> <span class="special">&</span> +<a name="idm40399-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="sg_multiset.html" title="Class template sg_multiset">sg_multiset</a> <span class="special">&</span> +<a name="idm40404-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">const_iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <a class="link" href="sg_multiset.html" title="Class template sg_multiset">sg_multiset</a> <span class="special">&</span> <a name="idm40409-bb"></a><span class="identifier">container_from_iterator</span><span class="special">(</span><span class="identifier">iterator</span> it<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="sg_multiset.html" title="Class template sg_multiset">sg_multiset</a> <span class="special">&</span> <a name="idm40414-bb"></a><span class="identifier">container_from_iterator</span><span class="special">(</span><span class="identifier">const_iterator</span> it<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">iterator</span> <a name="idm40419-bb"></a><span class="identifier">s_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></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">const_iterator</span> <a name="idm40423-bb"></a><span class="identifier">s_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></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm40427-bb"></a><span class="identifier">init_node</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></li> </ol></div> </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="make_sg_set.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.sg_set_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="sg_set.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/sg_set.html b/doc/html/boost/intrusive/sg_set.html index c9df63c1b0..54224faaed 100644 --- a/doc/html/boost/intrusive/sg_set.html +++ b/doc/html/boost/intrusive/sg_set.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.sg_set_hpp" title="Header <boost/intrusive/sg_set.hpp>"> <link rel="prev" href="sg_multiset.html" title="Class template sg_multiset"> <link rel="next" href="make_sgtree.html" title="Struct template make_sgtree"> +<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> @@ -29,8 +30,8 @@ <h2><span class="refentrytitle">Class template sg_set</span></h2> <p>boost::intrusive::sg_set</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.sg_set_hpp" title="Header <boost/intrusive/sg_set.hpp>">boost/intrusive/sg_set.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.sg_set_hpp" title="Header <boost/intrusive/sg_set.hpp>">boost/intrusive/sg_set.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="sg_set.html" title="Class template sg_set">sg_set</a> <span class="special">{</span> @@ -60,500 +61,402 @@ <span class="keyword">typedef</span> <span class="identifier">implementation_defined</span><span class="special">::</span><span class="identifier">node_algorithms</span> <a name="boost.intrusive.sg_set.node_algorithms"></a><span class="identifier">node_algorithms</span><span class="special">;</span> <span class="comment">// <a class="link" href="sg_set.html#boost.intrusive.sg_setconstruct-copy-destruct">construct/copy/destruct</a></span> - <a class="link" href="sg_set.html#idm45971710618432-bb"><span class="identifier">sg_set</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">explicit</span> <a class="link" href="sg_set.html#idm45971710615280-bb"><span class="identifier">sg_set</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_compare</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="sg_set.html#idm41390-bb"><span class="identifier">sg_set</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">explicit</span> <a class="link" href="sg_set.html#idm41398-bb"><span class="identifier">sg_set</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_compare</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="sg_set.html#idm45971710610160-bb"><span class="identifier">sg_set</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="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> <span class="special">=</span> <span class="identifier">key_compare</span><span class="special">(</span><span class="special">)</span><span class="special">,</span> + <a class="link" href="sg_set.html#idm41404-bb"><span class="identifier">sg_set</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="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> <span class="special">=</span> <span class="identifier">key_compare</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="sg_set.html#idm45971710601696-bb"><span class="identifier">sg_set</span></a><span class="special">(</span><a class="link" href="sg_set.html" title="Class template sg_set">sg_set</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> - <a class="link" href="sg_set.html" title="Class template sg_set">sg_set</a> <span class="special">&</span> <a class="link" href="sg_set.html#idm45971710597392-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><a class="link" href="sg_set.html" title="Class template sg_set">sg_set</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> - <a class="link" href="sg_set.html#idm45971710594576-bb"><span class="special">~</span><span class="identifier">sg_set</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="sg_set.html#idm41417-bb"><span class="identifier">sg_set</span></a><span class="special">(</span><a class="link" href="sg_set.html" title="Class template sg_set">sg_set</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="sg_set.html" title="Class template sg_set">sg_set</a> <span class="special">&</span> <a class="link" href="sg_set.html#idm41428-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><a class="link" href="sg_set.html" title="Class template sg_set">sg_set</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="sg_set.html#idm41437-bb"><span class="special">~</span><span class="identifier">sg_set</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> - <span class="comment">// <a class="link" href="sg_set.html#idm45971711122704-bb">public member functions</a></span> - <span class="identifier">iterator</span> <a class="link" href="sg_set.html#idm45971711122144-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="sg_set.html#idm45971711118304-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="sg_set.html#idm45971711114464-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="sg_set.html#idm45971711110624-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="sg_set.html#idm45971711106784-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="sg_set.html#idm45971711102944-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">reverse_iterator</span> <a class="link" href="sg_set.html#idm45971711099104-bb"><span class="identifier">rbegin</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="identifier">const_reverse_iterator</span> <a class="link" href="sg_set.html#idm45971711095248-bb"><span class="identifier">rbegin</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_reverse_iterator</span> <a class="link" href="sg_set.html#idm45971711091392-bb"><span class="identifier">crbegin</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">reverse_iterator</span> <a class="link" href="sg_set.html#idm45971711087536-bb"><span class="identifier">rend</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="identifier">const_reverse_iterator</span> <a class="link" href="sg_set.html#idm45971711083680-bb"><span class="identifier">rend</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_reverse_iterator</span> <a class="link" href="sg_set.html#idm45971711079824-bb"><span class="identifier">crend</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="sg_set.html#idm45971711075968-bb"><span class="identifier">root</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="sg_set.html#idm45971711072096-bb"><span class="identifier">root</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="sg_set.html#idm45971711068224-bb"><span class="identifier">croot</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">key_compare</span> <a class="link" href="sg_set.html#idm45971711064352-bb"><span class="identifier">key_comp</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">value_compare</span> <a class="link" href="sg_set.html#idm45971711060496-bb"><span class="identifier">value_comp</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="sg_set.html#idm45971711056624-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="sg_set.html#idm45971711052800-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="sg_set.html#idm45971711048864-bb"><span class="identifier">swap</span></a><span class="special">(</span><a class="link" href="sg_set.html" title="Class template sg_set">sg_set</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="comment">// <a class="link" href="sg_set.html#idm40492-bb">public member functions</a></span> + <span class="identifier">iterator</span> <a class="link" href="sg_set.html#idm40493-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="sg_set.html#idm40502-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="sg_set.html#idm40511-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="sg_set.html#idm40520-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="sg_set.html#idm40529-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="sg_set.html#idm40538-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">reverse_iterator</span> <a class="link" href="sg_set.html#idm40547-bb"><span class="identifier">rbegin</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">const_reverse_iterator</span> <a class="link" href="sg_set.html#idm40556-bb"><span class="identifier">rbegin</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_reverse_iterator</span> <a class="link" href="sg_set.html#idm40565-bb"><span class="identifier">crbegin</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">reverse_iterator</span> <a class="link" href="sg_set.html#idm40574-bb"><span class="identifier">rend</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">const_reverse_iterator</span> <a class="link" href="sg_set.html#idm40583-bb"><span class="identifier">rend</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_reverse_iterator</span> <a class="link" href="sg_set.html#idm40592-bb"><span class="identifier">crend</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="sg_set.html#idm40601-bb"><span class="identifier">root</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="sg_set.html#idm40610-bb"><span class="identifier">root</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="sg_set.html#idm40619-bb"><span class="identifier">croot</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">key_compare</span> <a class="link" href="sg_set.html#idm40628-bb"><span class="identifier">key_comp</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">value_compare</span> <a class="link" href="sg_set.html#idm40637-bb"><span class="identifier">value_comp</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="sg_set.html#idm40646-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="sg_set.html#idm40655-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="sg_set.html#idm40664-bb"><span class="identifier">swap</span></a><span class="special">(</span><a class="link" href="sg_set.html" title="Class template sg_set">sg_set</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="sg_set.html#idm45971711044320-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="sg_set.html" title="Class template sg_set">sg_set</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="sg_set.html#idm40676-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="sg_set.html" title="Class template sg_set">sg_set</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="sg_set.html#idm45971711035200-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><a class="link" href="sg_set.html" title="Class template sg_set">sg_set</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">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="sg_set.html#idm45971711025312-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="identifier">reference</span><span class="special">)</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="sg_set.html#idm45971711019168-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">,</span> <span class="identifier">reference</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="sg_set.html#idm40698-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><a class="link" href="sg_set.html" title="Class template sg_set">sg_set</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">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="sg_set.html#idm40722-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="identifier">reference</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="sg_set.html#idm40726-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">,</span> <span class="identifier">reference</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="sg_set.html#idm45971711012208-bb"><span class="identifier">insert_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> + <a class="link" href="sg_set.html#idm40732-bb"><span class="identifier">insert_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">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="sg_set.html#idm45971711006016-bb"><span class="identifier">insert_check</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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> + <a class="link" href="sg_set.html#idm40738-bb"><span class="identifier">insert_check</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> KeyType<span class="special">,</span> <span class="keyword">typename</span> KeyTypeKeyCompare<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="sg_set.html#idm45971710999040-bb"><span class="identifier">insert_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">KeyTypeKeyCompare</span><span class="special">,</span> <span class="identifier">insert_commit_data</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="sg_set.html#idm40746-bb"><span class="identifier">insert_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">KeyTypeKeyCompare</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="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> KeyType<span class="special">,</span> <span class="keyword">typename</span> KeyTypeKeyCompare<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="sg_set.html#idm45971710987632-bb"><span class="identifier">insert_check</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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">KeyTypeKeyCompare</span><span class="special">,</span> + <a class="link" href="sg_set.html#idm40757-bb"><span class="identifier">insert_check</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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">KeyTypeKeyCompare</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="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="sg_set.html#idm45971710975440-bb"><span class="identifier">insert</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">iterator</span> <a class="link" href="sg_set.html#idm45971710967648-bb"><span class="identifier">insert_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="identifier">iterator</span> <a class="link" href="sg_set.html#idm45971710959344-bb"><span class="identifier">insert_before</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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">void</span> <a class="link" href="sg_set.html#idm45971710952112-bb"><span class="identifier">push_back</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">void</span> <a class="link" href="sg_set.html#idm45971710945552-bb"><span class="identifier">push_front</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">iterator</span> <a class="link" href="sg_set.html#idm45971710938992-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="identifier">iterator</span> <a class="link" href="sg_set.html#idm45971710933504-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="sg_set.html#idm45971710927264-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> Iterator<span class="special">></span> <span class="keyword">void</span> <a class="link" href="sg_set.html#idm40770-bb"><span class="identifier">insert</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">iterator</span> <a class="link" href="sg_set.html#idm40789-bb"><span class="identifier">insert_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="identifier">iterator</span> <a class="link" href="sg_set.html#idm40808-bb"><span class="identifier">insert_before</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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">void</span> <a class="link" href="sg_set.html#idm40825-bb"><span class="identifier">push_back</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">void</span> <a class="link" href="sg_set.html#idm40840-bb"><span class="identifier">push_front</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">iterator</span> <a class="link" href="sg_set.html#idm40855-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="identifier">iterator</span> <a class="link" href="sg_set.html#idm40859-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="sg_set.html#idm40865-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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">size_type</span> <a class="link" href="sg_set.html#idm45971710921216-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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">size_type</span> <a class="link" href="sg_set.html#idm40869-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">KeyTypeKeyCompare</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="identifier">iterator</span> <a class="link" href="sg_set.html#idm45971710911120-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="identifier">iterator</span> <a class="link" href="sg_set.html#idm40893-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="identifier">iterator</span> <a class="link" href="sg_set.html#idm45971710903216-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="identifier">iterator</span> <a class="link" href="sg_set.html#idm40901-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="sg_set.html#idm45971710894560-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="sg_set.html#idm40911-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> KeyTypeKeyCompare<span class="special">,</span> <span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="identifier">size_type</span> <a class="link" href="sg_set.html#idm45971710886032-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">KeyTypeKeyCompare</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="sg_set.html#idm45971710873808-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="sg_set.html#idm45971710868944-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="sg_set.html#idm45971710862640-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="identifier">size_type</span> <a class="link" href="sg_set.html#idm40919-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">KeyTypeKeyCompare</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="sg_set.html#idm40948-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="sg_set.html#idm40959-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="sg_set.html#idm40973-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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">size_type</span> <a class="link" href="sg_set.html#idm45971710857568-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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="sg_set.html#idm45971710848512-bb"><span class="identifier">lower_bound</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="sg_set.html#idm40977-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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="sg_set.html#idm40998-bb"><span class="identifier">lower_bound</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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a class="link" href="sg_set.html#idm45971710843760-bb"><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> - <span class="identifier">const_iterator</span> <a class="link" href="sg_set.html#idm45971710836912-bb"><span class="identifier">lower_bound</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="sg_set.html#idm41002-bb"><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">const_iterator</span> <a class="link" href="sg_set.html#idm41011-bb"><span class="identifier">lower_bound</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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">const_iterator</span> <a class="link" href="sg_set.html#idm45971710831888-bb"><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="sg_set.html#idm45971710824768-bb"><span class="identifier">upper_bound</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="sg_set.html#idm41015-bb"><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="sg_set.html#idm41024-bb"><span class="identifier">upper_bound</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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a class="link" href="sg_set.html#idm45971710820016-bb"><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> - <span class="identifier">const_iterator</span> <a class="link" href="sg_set.html#idm45971710811312-bb"><span class="identifier">upper_bound</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="sg_set.html#idm41028-bb"><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">const_iterator</span> <a class="link" href="sg_set.html#idm41049-bb"><span class="identifier">upper_bound</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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">const_iterator</span> <a class="link" href="sg_set.html#idm45971710806288-bb"><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="sg_set.html#idm45971710797312-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">const_iterator</span> <a class="link" href="sg_set.html#idm41053-bb"><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="sg_set.html#idm41074-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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a class="link" href="sg_set.html#idm45971710792576-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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> - <span class="identifier">const_iterator</span> <a class="link" href="sg_set.html#idm45971710783840-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="sg_set.html#idm41078-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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">const_iterator</span> <a class="link" href="sg_set.html#idm41099-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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">const_iterator</span> <a class="link" href="sg_set.html#idm45971710778832-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">KeyTypeKeyCompare</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="sg_set.html#idm45971710769824-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="sg_set.html#idm41103-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">KeyTypeKeyCompare</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="sg_set.html#idm41124-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> KeyTypeKeyCompare<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="sg_set.html#idm45971710764992-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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="sg_set.html#idm41128-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">KeyTypeKeyCompare</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="sg_set.html#idm45971710756160-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="sg_set.html#idm41149-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> KeyTypeKeyCompare<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="sg_set.html#idm45971710751040-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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <a class="link" href="sg_set.html#idm41153-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">KeyTypeKeyCompare</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="sg_set.html#idm45971710741920-bb"><span class="identifier">bounded_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="identifier">key_type</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="sg_set.html#idm41174-bb"><span class="identifier">bounded_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="identifier">key_type</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</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> KeyTypeKeyCompare<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="sg_set.html#idm45971710729488-bb"><span class="identifier">bounded_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="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> + <a class="link" href="sg_set.html#idm41184-bb"><span class="identifier">bounded_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="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</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="sg_set.html#idm45971710712688-bb"><span class="identifier">bounded_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="identifier">key_type</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <a class="link" href="sg_set.html#idm41226-bb"><span class="identifier">bounded_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="identifier">key_type</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</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> KeyTypeKeyCompare<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="sg_set.html#idm45971710699968-bb"><span class="identifier">bounded_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="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> + <a class="link" href="sg_set.html#idm41236-bb"><span class="identifier">bounded_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="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="sg_set.html#idm45971710682880-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="sg_set.html#idm45971710677392-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">pointer</span> <a class="link" href="sg_set.html#idm45971710671904-bb"><span class="identifier">unlink_leftmost_without_rebalance</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="sg_set.html#idm45971710666992-bb"><span class="identifier">replace_node</span></a><span class="special">(</span><span class="identifier">iterator</span><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">void</span> <a class="link" href="sg_set.html#idm45971710659728-bb"><span class="identifier">remove_node</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">void</span> <a class="link" href="sg_set.html#idm45971710653888-bb"><span class="identifier">rebalance</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="sg_set.html#idm45971710650096-bb"><span class="identifier">rebalance_subtree</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">float</span> <a class="link" href="sg_set.html#idm45971710643824-bb"><span class="identifier">balance_factor</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="sg_set.html#idm45971710640000-bb"><span class="identifier">balance_factor</span></a><span class="special">(</span><span class="keyword">float</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">class</span> <span class="special">...</span> Options2<span class="special">></span> <span class="keyword">void</span> <a class="link" href="sg_set.html#idm45971710634496-bb"><span class="identifier">merge</span></a><span class="special">(</span><a class="link" href="sg_set.html" title="Class template sg_set">sg_set</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</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">class</span> <span class="special">...</span> Options2<span class="special">></span> <span class="keyword">void</span> <a class="link" href="sg_set.html#idm45971710626544-bb"><span class="identifier">merge</span></a><span class="special">(</span><a class="link" href="sg_multiset.html" title="Class template sg_multiset">sg_multiset</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="sg_set.html#idm41278-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="sg_set.html#idm41282-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">pointer</span> <a class="link" href="sg_set.html#idm41286-bb"><span class="identifier">unlink_leftmost_without_rebalance</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="sg_set.html#idm41297-bb"><span class="identifier">replace_node</span></a><span class="special">(</span><span class="identifier">iterator</span><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">void</span> <a class="link" href="sg_set.html#idm41314-bb"><span class="identifier">remove_node</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">void</span> <a class="link" href="sg_set.html#idm41328-bb"><span class="identifier">rebalance</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="sg_set.html#idm41337-bb"><span class="identifier">rebalance_subtree</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">float</span> <a class="link" href="sg_set.html#idm41352-bb"><span class="identifier">balance_factor</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="sg_set.html#idm41361-bb"><span class="identifier">balance_factor</span></a><span class="special">(</span><span class="keyword">float</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">class</span> <span class="special">...</span> Options2<span class="special">></span> <span class="keyword">void</span> <a class="link" href="sg_set.html#idm41374-bb"><span class="identifier">merge</span></a><span class="special">(</span><a class="link" href="sg_set.html" title="Class template sg_set">sg_set</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</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">class</span> <span class="special">...</span> Options2<span class="special">></span> <span class="keyword">void</span> <a class="link" href="sg_set.html#idm41382-bb"><span class="identifier">merge</span></a><span class="special">(</span><a class="link" href="sg_multiset.html" title="Class template sg_multiset">sg_multiset</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> - <span class="comment">// <a class="link" href="sg_set.html#idm45971710590672-bb">public static functions</a></span> - <span class="keyword">static</span> <a class="link" href="sg_set.html" title="Class template sg_set">sg_set</a> <span class="special">&</span> <a class="link" href="sg_set.html#idm45971710590112-bb"><span class="identifier">container_from_end_iterator</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="sg_set.html" title="Class template sg_set">sg_set</a> <span class="special">&</span> <a class="link" href="sg_set.html#idm45971710584096-bb"><span class="identifier">container_from_end_iterator</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">static</span> <a class="link" href="sg_set.html" title="Class template sg_set">sg_set</a> <span class="special">&</span> <a class="link" href="sg_set.html#idm45971710577920-bb"><span class="identifier">container_from_iterator</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="sg_set.html" title="Class template sg_set">sg_set</a> <span class="special">&</span> <a class="link" href="sg_set.html#idm45971710571952-bb"><span class="identifier">container_from_iterator</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">static</span> <span class="identifier">iterator</span> <a class="link" href="sg_set.html#idm45971710565824-bb"><span class="identifier">s_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_iterator</span> <a class="link" href="sg_set.html#idm45971710558736-bb"><span class="identifier">s_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="keyword">void</span> <a class="link" href="sg_set.html#idm45971710551648-bb"><span class="identifier">init_node</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="comment">// <a class="link" href="sg_set.html#idm41446-bb">public static functions</a></span> + <span class="keyword">static</span> <a class="link" href="sg_set.html" title="Class template sg_set">sg_set</a> <span class="special">&</span> <a class="link" href="sg_set.html#idm41447-bb"><span class="identifier">container_from_end_iterator</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="sg_set.html" title="Class template sg_set">sg_set</a> <span class="special">&</span> <a class="link" href="sg_set.html#idm41452-bb"><span class="identifier">container_from_end_iterator</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">static</span> <a class="link" href="sg_set.html" title="Class template sg_set">sg_set</a> <span class="special">&</span> <a class="link" href="sg_set.html#idm41457-bb"><span class="identifier">container_from_iterator</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="sg_set.html" title="Class template sg_set">sg_set</a> <span class="special">&</span> <a class="link" href="sg_set.html#idm41462-bb"><span class="identifier">container_from_iterator</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">static</span> <span class="identifier">iterator</span> <a class="link" href="sg_set.html#idm41467-bb"><span class="identifier">s_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_iterator</span> <a class="link" href="sg_set.html#idm41471-bb"><span class="identifier">s_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="keyword">void</span> <a class="link" href="sg_set.html#idm41475-bb"><span class="identifier">init_node</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="comment">// public data members</span> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">bool</span> <span class="identifier">constant_time_size</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.32.6.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.32.6.4"></a><h2>Description</h2> <p>The class template <a class="link" href="sg_set.html" title="Class template sg_set">sg_set</a> is an intrusive container, that mimics most of the interface of std::sg_set as described in the C++ standard.</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> <p>The container supports the following options: <code class="computeroutput">base_hook<>/member_hook<>/value_traits<></code>, <code class="computeroutput">floating_point<></code>, <code class="computeroutput">size_type<></code> and <code class="computeroutput">compare<></code>. </p> <div class="refsect2"> -<a name="id-1.3.20.42.32.6.4.5"></a><h3> +<a name="id-1.3.18.42.32.6.4.5"></a><h3> <a name="boost.intrusive.sg_setconstruct-copy-destruct"></a><code class="computeroutput">sg_set</code> public construct/copy/destruct</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> <li class="listitem"> -<pre class="literallayout"><a name="idm45971710618432-bb"></a><span class="identifier">sg_set</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm41390-bb"></a><span class="identifier">sg_set</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Constructs an empty container.</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 constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor of the key_compare object throws. Basic guarantee. </p> +<p><span class="bold"><strong>Throws</strong></span>: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor of the key_compare object throws. Basic guarantee. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="keyword">explicit</span> <a name="idm41398-bb"></a><span class="identifier">sg_set</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> cmp<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></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="idm41404-bb"></a><span class="identifier">sg_set</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="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> cmp <span class="special">=</span> <span class="identifier">key_compare</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></li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">explicit</span> <a name="idm45971710615280-bb"></a><span class="identifier">sg_set</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> cmp<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> -<p><span class="bold"><strong>Effects</strong></span>: Constructs an empty container with given comparison and traits.</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 constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor of the key_compare object throws. Basic guarantee. </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> - <a name="idm45971710610160-bb"></a><span class="identifier">sg_set</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="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> cmp <span class="special">=</span> <span class="identifier">key_compare</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> -<p><span class="bold"><strong>Requires</strong></span>: Dereferencing iterator must yield an lvalue of type value_type. cmp must be a comparison function that induces a strict weak ordering.</p> -<p><span class="bold"><strong>Effects</strong></span>: Constructs an empty container and inserts elements from [b, e).</p> -<p><span class="bold"><strong>Complexity</strong></span>: Linear in N if [b, e) is already sorted using comp and otherwise N * log N, where N is the distance between first and last.</p> -<p><span class="bold"><strong>Throws</strong></span>: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor/operator() of the key_compare object throws. Basic guarantee. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><a name="idm45971710601696-bb"></a><span class="identifier">sg_set</span><span class="special">(</span><a class="link" href="sg_set.html" title="Class template sg_set">sg_set</a> <span class="special">&&</span> x<span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm41417-bb"></a><span class="identifier">sg_set</span><span class="special">(</span><a class="link" href="sg_set.html" title="Class template sg_set">sg_set</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 comparison object and value traits are move constructed and nodes belonging to x (except the node representing the "end") 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 the comparison objet throws. </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 the comparison objet throws. </p> </li> <li class="listitem"> -<pre class="literallayout"><a class="link" href="sg_set.html" title="Class template sg_set">sg_set</a> <span class="special">&</span> <a name="idm45971710597392-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><a class="link" href="sg_set.html" title="Class template sg_set">sg_set</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> +<pre class="literallayout"><a class="link" href="sg_set.html" title="Class template sg_set">sg_set</a> <span class="special">&</span> <a name="idm41428-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><a class="link" href="sg_set.html" title="Class template sg_set">sg_set</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="idm45971710594576-bb"></a><span class="special">~</span><span class="identifier">sg_set</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm41437-bb"></a><span class="special">~</span><span class="identifier">sg_set</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 set are not deleted (i.e. no destructors are called), but the nodes according to the <code class="computeroutput"><a class="link" href="value_traits.html" title="Struct template value_traits">value_traits</a></code> template parameter are reinitialized and thus can be reused.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to elements contained in *this.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> </ol></div> </div> <div class="refsect2"> -<a name="id-1.3.20.42.32.6.4.6"></a><h3> -<a name="idm45971711122704-bb"></a><code class="computeroutput">sg_set</code> public member functions</h3> +<a name="id-1.3.18.42.32.6.4.6"></a><h3> +<a name="idm40492-bb"></a><code class="computeroutput">sg_set</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="idm45971711122144-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="idm40493-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971711118304-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="idm40502-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971711114464-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="idm40511-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971711110624-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="idm40520-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971711106784-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="idm40529-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971711102944-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="idm40538-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">reverse_iterator</span> <a name="idm45971711099104-bb"></a><span class="identifier">rbegin</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">reverse_iterator</span> <a name="idm40547-bb"></a><span class="identifier">rbegin</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 a reverse_iterator pointing to the beginning of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45971711095248-bb"></a><span class="identifier">rbegin</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_reverse_iterator</span> <a name="idm40556-bb"></a><span class="identifier">rbegin</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_reverse_iterator pointing to the beginning of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45971711091392-bb"></a><span class="identifier">crbegin</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_reverse_iterator</span> <a name="idm40565-bb"></a><span class="identifier">crbegin</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_reverse_iterator pointing to the beginning of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">reverse_iterator</span> <a name="idm45971711087536-bb"></a><span class="identifier">rend</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">reverse_iterator</span> <a name="idm40574-bb"></a><span class="identifier">rend</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 a reverse_iterator pointing to the end of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45971711083680-bb"></a><span class="identifier">rend</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_reverse_iterator</span> <a name="idm40583-bb"></a><span class="identifier">rend</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_reverse_iterator pointing to the end of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45971711079824-bb"></a><span class="identifier">crend</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_reverse_iterator</span> <a name="idm40592-bb"></a><span class="identifier">crend</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_reverse_iterator pointing to the end of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971711075968-bb"></a><span class="identifier">root</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="idm40601-bb"></a><span class="identifier">root</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 a iterator pointing to the root node of the container or end() if not present.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971711072096-bb"></a><span class="identifier">root</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="idm40610-bb"></a><span class="identifier">root</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 root node of the container or cend() if not present.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971711068224-bb"></a><span class="identifier">croot</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="idm40619-bb"></a><span class="identifier">croot</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 root node of the container or cend() if not present.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">key_compare</span> <a name="idm45971711064352-bb"></a><span class="identifier">key_comp</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_compare</span> <a name="idm40628-bb"></a><span class="identifier">key_comp</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_compare object used by the container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: If key_compare copy-constructor throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If key_compare copy-constructor throws. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">value_compare</span> <a name="idm45971711060496-bb"></a><span class="identifier">value_comp</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">value_compare</span> <a name="idm40637-bb"></a><span class="identifier">value_comp</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 value_compare object used by the container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: If value_compare copy-constructor throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If value_compare copy-constructor throws. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">bool</span> <a name="idm45971711056624-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="idm40646-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>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971711052800-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="idm40655-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to elements contained in *this if constant-time size option is disabled. Constant time otherwise.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971711048864-bb"></a><span class="identifier">swap</span><span class="special">(</span><a class="link" href="sg_set.html" title="Class template sg_set">sg_set</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="idm40664-bb"></a><span class="identifier">swap</span><span class="special">(</span><a class="link" href="sg_set.html" title="Class template sg_set">sg_set</a> <span class="special">&</span> other<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Swaps the contents of two containers.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comparison functor's swap call throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If the comparison functor's swap call throws. </p> </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="idm45971711044320-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="sg_set.html" title="Class template sg_set">sg_set</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="idm40676-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="sg_set.html" title="Class template sg_set">sg_set</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 equivalent to the original nodes.</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. Copies the predicate from the source container.</p> <p>If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to erased plus inserted elements.</p> -<p><span class="bold"><strong>Throws</strong></span>: If cloner throws or predicate copy assignment throws. Basic guarantee. Additional notes: it also copies the alpha factor from the source container. </p> +<p><span class="bold"><strong>Throws</strong></span>: If cloner throws or predicate copy assignment throws. Basic guarantee. Additional notes: it also copies the alpha factor from the source container. </p> </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="idm45971711035200-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><a class="link" href="sg_set.html" title="Class template sg_set">sg_set</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="idm40698-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><a class="link" href="sg_set.html" title="Class template sg_set">sg_set</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 equivalent to the original nodes.</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. Copies the predicate from the source container.</p> <p>If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to erased plus inserted elements.</p> <p><span class="bold"><strong>Throws</strong></span>: If cloner throws or predicate copy assignment throws. Basic guarantee.</p> -<p><span class="bold"><strong>Note</strong></span>: This version can modify the source container, useful to implement move semantics. Additional notes: it also copies the alpha factor from the source container. </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="idm45971711025312-bb"></a><span class="identifier">insert</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 value into the container if the value is not already present.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Average complexity for insert element is at most logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comparison functor call throws.</p> -<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">iterator</span> <a name="idm45971711019168-bb"></a><span class="identifier">insert</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<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, and "hint" must be a valid iterator</p> -<p><span class="bold"><strong>Effects</strong></span>: Tries to insert x into the container, using "hint" as a hint to where it will be inserted.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic in general, but it is amortized constant time (two comparisons in the worst case) if t is inserted immediately before hint.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comparison functor call throws.</p> -<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="idm45971711012208-bb"></a><span class="identifier">insert_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 container, 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 complexity is at most logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comp ordering function throws. Strong guarantee. </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="idm45971711006016-bb"></a><span class="identifier">insert_check</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<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 container, using a user provided key instead of the value itself, using "hint" as a hint to where it will be inserted.</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>: Logarithmic in general, but it's amortized constant time if t is inserted immediately before hint.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comp ordering function throws. Strong guarantee. </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> KeyTypeKeyCompare<span class="special">></span> +<p><span class="bold"><strong>Note</strong></span>: This version can modify the source container, useful to implement move semantics. Additional notes: it also copies the alpha factor from the source container. </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="idm40722-bb"></a><span class="identifier">insert</span><span class="special">(</span><span class="identifier">reference</span> value<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm40726-bb"></a><span class="identifier">insert</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<span class="special">,</span> <span class="identifier">reference</span> value<span class="special">)</span><span class="special">;</span></pre></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="idm40732-bb"></a><span class="identifier">insert_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></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="idm40738-bb"></a><span class="identifier">insert_check</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<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></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> KeyTypeKeyCompare<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="idm45971710999040-bb"></a><span class="identifier">insert_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">KeyTypeKeyCompare</span> comp<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>: comp must be a comparison function that induces the same strict weak ordering as key_compare. The difference is that comp compares an arbitrary key with the contained values.</p> -<p><span class="bold"><strong>Effects</strong></span>: Checks if a value can be inserted in the container, 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 complexity is at most logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comp ordering function throws. Strong guarantee.</p> -<p><span class="bold"><strong>Notes</strong></span>: This function is used to improve performance when constructing a value_type is expensive: if there is an equivalent value the constructed object must be discarded. Many times, the part of the node that is used to impose the order is much cheaper to construct than the value_type and this function offers the possibility to use that part to check if the insertion will be successful.</p> -<p>If the check is successful, the user can construct the value_type and use "insert_commit" to insert the object in constant-time. This gives a total logarithmic complexity to the insertion: check(O(log(N)) + commit(O(1)).</p> -<p>"commit_data" remains valid for a subsequent "insert_commit" only if no more objects are inserted or erased from the container. </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> KeyTypeKeyCompare<span class="special">></span> + <a name="idm40746-bb"></a><span class="identifier">insert_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">KeyTypeKeyCompare</span> comp<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></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> KeyTypeKeyCompare<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="idm45971710987632-bb"></a><span class="identifier">insert_check</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<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">KeyTypeKeyCompare</span> comp<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>: comp must be a comparison function that induces the same strict weak ordering as key_compare. The difference is that comp compares an arbitrary key with the contained values.</p> -<p><span class="bold"><strong>Effects</strong></span>: Checks if a value can be inserted in the container, using a user provided key instead of the value itself, using "hint" as a hint to where it will be inserted.</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>: Logarithmic in general, but it's amortized constant time if t is inserted immediately before hint.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comp ordering function throws. Strong guarantee.</p> -<p><span class="bold"><strong>Notes</strong></span>: This function is used to improve performance when constructing a value_type is expensive: if there is an equivalent value the constructed object must be discarded. Many times, the part of the constructing that is used to impose the order is much cheaper to construct than the value_type and this function offers the possibility to use that key to check if the insertion will be successful.</p> -<p>If the check is successful, the user can construct the value_type and use "insert_commit" to insert the object in constant-time. This can give a total constant-time complexity to the insertion: check(O(1)) + commit(O(1)).</p> -<p>"commit_data" remains valid for a subsequent "insert_commit" only if no more objects are inserted or erased from the container. </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="idm45971710975440-bb"></a><span class="identifier">insert</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> + <a name="idm40757-bb"></a><span class="identifier">insert_check</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<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">KeyTypeKeyCompare</span> comp<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></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="idm40770-bb"></a><span class="identifier">insert</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>: Tries to insert each element of a range into the container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Insert range is in general O(N * log(N)), where N is the size of the range. However, it is linear in N if the range is already sorted by value_comp().</p> <p><span class="bold"><strong>Throws</strong></span>: If the comparison functor call throws.</p> -<p><span class="bold"><strong>Note</strong></span>: Does not affect the validity of iterators and references. No copy-constructors are called. </p> +<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">iterator</span> <a name="idm45971710967648-bb"></a><span class="identifier">insert_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="idm40789-bb"></a><span class="identifier">insert_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 container 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 container using the information obtained from the "commit_data" that a previous "insert_check" filled.</p> <p><span class="bold"><strong>Returns</strong></span>: An iterator to the newly inserted object.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Notes</strong></span>: This function has only sense if a "insert_check" has been previously executed to fill "commit_data". No value should be inserted or erased between the "insert_check" and "insert_commit" calls. </p> +<p><span class="bold"><strong>Notes</strong></span>: This function has only sense if a "insert_check" has been previously executed to fill "commit_data". No value should be inserted or erased between the "insert_check" and "insert_commit" calls. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971710959344-bb"></a><span class="identifier">insert_before</span><span class="special">(</span><span class="identifier">const_iterator</span> pos<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="idm40808-bb"></a><span class="identifier">insert_before</span><span class="special">(</span><span class="identifier">const_iterator</span> pos<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, "pos" must be a valid iterator (or end) and must be the succesor of value once inserted according to the predicate</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts x into the container before "pos".</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if "pos" is not the successor of "value" container ordering invariant will be broken. This is a low-level function to be used only for performance reasons by advanced users. </p> +<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if "pos" is not the successor of "value" container ordering invariant will be broken. This is a low-level function to be used only for performance reasons by advanced users. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971710952112-bb"></a><span class="identifier">push_back</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">void</span> <a name="idm40825-bb"></a><span class="identifier">push_back</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 it must be no less than the greatest inserted key</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts x into the container in the last position.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if value is less than the greatest inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users. </p> +<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if value is less than the greatest inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971710945552-bb"></a><span class="identifier">push_front</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">void</span> <a name="idm40840-bb"></a><span class="identifier">push_front</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 it must be no greater than the minimum inserted key</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts x into the container in the first position.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if value is greater than the minimum inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971710938992-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 complexity for erase element is constant time.</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">iterator</span> <a name="idm45971710933504-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 complexity for erase range is at most O(log(size() + N)), where N is the number of elements in the range.</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="idm45971710927264-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>: O(log(size() + N).</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> +<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if value is greater than the minimum inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm40855-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm40859-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">size_type</span> <a name="idm40865-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></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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971710921216-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <span class="identifier">size_type</span> <a name="idm40869-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Erases all the elements with the given key. according to the comparison functor "comp".</p> <p><span class="bold"><strong>Returns</strong></span>: The number of erased elements.</p> <p><span class="bold"><strong>Complexity</strong></span>: O(log(size() + N).</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="identifier">iterator</span> <a name="idm45971710911120-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 complexity for erase element is constant time.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<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">template</span><span class="special"><</span><span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="identifier">iterator</span> <a name="idm45971710903216-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> -<p><span class="bold"><strong>Complexity</strong></span>: Average complexity for erase range is at most O(log(size() + N)), where N is the number of elements in the range.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<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">template</span><span class="special"><</span><span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971710894560-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> -<p><span class="bold"><strong>Complexity</strong></span>: O(log(size() + N).</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> +<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="identifier">iterator</span> <a name="idm40893-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></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">iterator</span> <a name="idm40901-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></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="idm40911-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></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> KeyTypeKeyCompare<span class="special">,</span> <span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971710886032-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">KeyTypeKeyCompare</span> comp<span class="special">,</span> + <span class="identifier">size_type</span> <a name="idm40919-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">KeyTypeKeyCompare</span> comp<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>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk) and nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Requires</strong></span>: Disposer::operator()(pointer) shouldn't throw.</p> @@ -561,168 +464,102 @@ <p><span class="bold"><strong>Returns</strong></span>: The number of erased elements.</p> <p><span class="bold"><strong>Complexity</strong></span>: O(log(size() + N).</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: Invalidates the iterators to the erased elements. </p> +<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="idm45971710873808-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="idm40948-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> +<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="idm45971710868944-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="idm40959-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>Effects</strong></span>: Erases all of the elements calling disposer(p) for each node to be erased. <span class="bold"><strong>Complexity</strong></span>: Average complexity for is at most O(log(size() + N)), where N is the number of elements in the container.</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. Calls N times to disposer functor. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">size_type</span> <a name="idm45971710862640-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>: Logarithmic to the number of elements contained plus lineal to number of objects with the given value.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Note</strong></span>: Invalidates the iterators (but not the references) to the erased elements. Calls N times to disposer functor. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">size_type</span> <a name="idm40973-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></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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971710857568-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> + <span class="identifier">size_type</span> <a name="idm40977-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns the number of contained elements with the given key</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic to the number of elements contained plus lineal to number of objects with the given key.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> </li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971710848512-bb"></a><span class="identifier">lower_bound</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 an iterator to the first element whose key is not less than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> 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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a name="idm45971710843760-bb"></a><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Effects</strong></span>: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971710836912-bb"></a><span class="identifier">lower_bound</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 an iterator to the first element whose key is not less than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> 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> KeyTypeKeyCompare<span class="special">></span> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm40998-bb"></a><span class="identifier">lower_bound</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></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> KeyTypeKeyCompare<span class="special">></span> + <span class="identifier">iterator</span> <a name="idm41002-bb"></a><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm41011-bb"></a><span class="identifier">lower_bound</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></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> KeyTypeKeyCompare<span class="special">></span> <span class="identifier">const_iterator</span> - <a name="idm45971710831888-bb"></a><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Effects</strong></span>: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971710824768-bb"></a><span class="identifier">upper_bound</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 an iterator to the first element whose key is greater than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> -</li> + <a name="idm41015-bb"></a><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm41024-bb"></a><span class="identifier">upper_bound</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></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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a name="idm45971710820016-bb"></a><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <span class="identifier">iterator</span> <a name="idm41028-bb"></a><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns an iterator to the first element whose key is greater than k according to comp or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971710811312-bb"></a><span class="identifier">upper_bound</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 an iterator to the first element whose key is greater than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm41049-bb"></a><span class="identifier">upper_bound</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></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> KeyTypeKeyCompare<span class="special">></span> <span class="identifier">const_iterator</span> - <a name="idm45971710806288-bb"></a><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> + <a name="idm41053-bb"></a><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns an iterator to the first element whose key is greater than k according to comp or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971710797312-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 whose key is k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm41074-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></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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a name="idm45971710792576-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <span class="identifier">iterator</span> <a name="idm41078-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Finds an iterator to the first element whose key is k or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971710783840-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 an iterator to the first element whose key is k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm41099-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></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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">const_iterator</span> <a name="idm45971710778832-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> + <span class="identifier">const_iterator</span> <a name="idm41103-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Finds an iterator to the first element whose key is k or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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="idm45971710769824-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>: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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="idm41124-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></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> KeyTypeKeyCompare<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="idm45971710764992-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <a name="idm41128-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">></span> -<a name="idm45971710756160-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>: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">></span> +<a name="idm41149-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></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> KeyTypeKeyCompare<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="idm45971710751040-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> + <a name="idm41153-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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="idm45971710741920-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> upper_key<span class="special">,</span> - <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: <code class="computeroutput">upper_key</code> shall not precede <code class="computeroutput">lower_key</code> according to key_compare. [key_comp()(upper_key, lower_key) shall be false]</p> -<p>If <code class="computeroutput">lower_key</code> is equivalent to <code class="computeroutput">upper_key</code> [!key_comp()(upper_key, lower_key) && !key_comp()(lower_key, upper_key)] then ('left_closed' || 'right_closed') must be false.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns an a pair with the following criteria:</p> -<p>first = lower_bound(lower_key) if left_closed, upper_bound(lower_key) otherwise</p> -<p>second = upper_bound(upper_key) if right_closed, lower_bound(upper_key) otherwise</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws.</p> -<p><span class="bold"><strong>Note</strong></span>: This function can be more efficient than calling upper_bound and lower_bound for lower_value and upper_value.</p> -<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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="idm41174-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> upper_key<span class="special">,</span> + <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span><span class="special">;</span></pre></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> KeyTypeKeyCompare<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="idm45971710729488-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> + <a name="idm41184-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span> comp<span class="special">,</span> <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: <code class="computeroutput">lower_key</code> is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, lower_key) if left_closed is true, with respect to !comp(lower_key, nk) otherwise.</p> <p><code class="computeroutput">upper_key</code> is a value such that <code class="computeroutput">*this</code> is partitioned with respect to !comp(upper_key, nk) if right_closed is true, with respect to comp(nk, upper_key) otherwise.</p> @@ -734,26 +571,15 @@ <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> <p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws.</p> <p><span class="bold"><strong>Note</strong></span>: This function can be more efficient than calling upper_bound and lower_bound for lower_key and upper_key.</p> -<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </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">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">></span> -<a name="idm45971710712688-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> upper_key<span class="special">,</span> - <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: <code class="computeroutput">upper_key</code> shall not precede <code class="computeroutput">lower_key</code> according to key_compare. [key_comp()(upper_key, lower_key) shall be false]</p> -<p>If <code class="computeroutput">lower_key</code> is equivalent to <code class="computeroutput">upper_key</code> [!key_comp()(upper_key, lower_key) && !key_comp()(lower_key, upper_key)] then ('left_closed' || 'right_closed') must be false.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns an a pair with the following criteria:</p> -<p>first = lower_bound(lower_key) if left_closed, upper_bound(lower_key) otherwise</p> -<p>second = upper_bound(upper_key) if right_closed, lower_bound(upper_key) otherwise</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws.</p> -<p><span class="bold"><strong>Note</strong></span>: This function can be more efficient than calling upper_bound and lower_bound for lower_value and upper_value.</p> -<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </p> +<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </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">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">></span> +<a name="idm41226-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> upper_key<span class="special">,</span> + <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></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> KeyTypeKeyCompare<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="idm45971710699968-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> + <a name="idm41236-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span> comp<span class="special">,</span> <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: <code class="computeroutput">lower_key</code> is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, lower_key) if left_closed is true, with respect to !comp(lower_key, nk) otherwise.</p> <p><code class="computeroutput">upper_key</code> is a value such that <code class="computeroutput">*this</code> is partitioned with respect to !comp(upper_key, nk) if right_closed is true, with respect to comp(nk, upper_key) otherwise.</p> @@ -765,160 +591,86 @@ <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> <p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws.</p> <p><span class="bold"><strong>Note</strong></span>: This function can be more efficient than calling upper_bound and lower_bound for lower_key and upper_key.</p> -<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971710682880-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 set of appropriate type. Otherwise the behavior is undefined.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns: a valid iterator i belonging to the set 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_iterator</span> <a name="idm45971710677392-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 set of appropriate type. Otherwise the behavior is undefined.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns: a valid const_iterator i belonging to the set 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> +<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm41278-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm41282-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></li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">pointer</span> <a name="idm45971710671904-bb"></a><span class="identifier">unlink_leftmost_without_rebalance</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">pointer</span> <a name="idm41286-bb"></a><span class="identifier">unlink_leftmost_without_rebalance</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>: Unlinks the leftmost node from the container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Average complexity is constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Notes</strong></span>: This function breaks the container and the container can only be used for more unlink_leftmost_without_rebalance calls. This function is normally used to achieve a step by step controlled destruction of the container. </p> +<p><span class="bold"><strong>Notes</strong></span>: This function breaks the container and the container can only be used for more unlink_leftmost_without_rebalance calls. This function is normally used to achieve a step by step controlled destruction of the container. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971710666992-bb"></a><span class="identifier">replace_node</span><span class="special">(</span><span class="identifier">iterator</span> replace_this<span class="special">,</span> <span class="identifier">reference</span> with_this<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">void</span> <a name="idm41297-bb"></a><span class="identifier">replace_node</span><span class="special">(</span><span class="identifier">iterator</span> replace_this<span class="special">,</span> <span class="identifier">reference</span> with_this<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: replace_this must be a valid iterator of *this and with_this must not be inserted in any container.</p> <p><span class="bold"><strong>Effects</strong></span>: Replaces replace_this in its position in the container with with_this. The container does not need to be rebalanced.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: This function will break container ordering invariants if with_this is not equivalent to *replace_this according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing or comparison is needed. </p> +<p><span class="bold"><strong>Note</strong></span>: This function will break container ordering invariants if with_this is not equivalent to *replace_this according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing or comparison is needed. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971710659728-bb"></a><span class="identifier">remove_node</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">void</span> <a name="idm41314-bb"></a><span class="identifier">remove_node</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>Effects</strong></span>: removes "value" from the container.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic time.</p> <p><span class="bold"><strong>Note</strong></span>: This static function is only usable with non-constant time size containers that have stateless comparison functors.</p> -<p>If the user calls this function with a constant time size container or stateful comparison functor a compilation error will be issued. </p> +<p>If the user calls this function with a constant time size container or stateful comparison functor a compilation error will be issued. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971710653888-bb"></a><span class="identifier">rebalance</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="idm41328-bb"></a><span class="identifier">rebalance</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>: Rebalances the tree.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Linear. </p> +<p><span class="bold"><strong>Complexity</strong></span>: Linear. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971710650096-bb"></a><span class="identifier">rebalance_subtree</span><span class="special">(</span><span class="identifier">iterator</span> root<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm41337-bb"></a><span class="identifier">rebalance_subtree</span><span class="special">(</span><span class="identifier">iterator</span> root<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: old_root is a node of a tree.</p> <p><span class="bold"><strong>Effects</strong></span>: Rebalances the subtree rooted at old_root.</p> <p><span class="bold"><strong>Returns</strong></span>: The new root of the subtree.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Linear to the elements in the subtree. </p> +<p><span class="bold"><strong>Complexity</strong></span>: Linear to the elements in the subtree. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">float</span> <a name="idm45971710643824-bb"></a><span class="identifier">balance_factor</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">float</span> <a name="idm41352-bb"></a><span class="identifier">balance_factor</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>Returns</strong></span>: The balance factor (alpha) used in this tree</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Constant. </p> +<p><span class="bold"><strong>Complexity</strong></span>: Constant. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971710640000-bb"></a><span class="identifier">balance_factor</span><span class="special">(</span><span class="keyword">float</span> new_alpha<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">void</span> <a name="idm41361-bb"></a><span class="identifier">balance_factor</span><span class="special">(</span><span class="keyword">float</span> new_alpha<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: new_alpha must be a value between 0.5 and 1.0</p> <p><span class="bold"><strong>Effects</strong></span>: Establishes a new balance factor (alpha) and rebalances the tree if the new balance factor is stricter (less) than the old factor.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Linear to the elements in the subtree. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="special">...</span> Options2<span class="special">></span> <span class="keyword">void</span> <a name="idm45971710634496-bb"></a><span class="identifier">merge</span><span class="special">(</span><a class="link" href="sg_set.html" title="Class template sg_set">sg_set</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span> source<span class="special">)</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: "source" container's Options can only can differ in the comparison function from *this.</p> -<p><span class="bold"><strong>Effects</strong></span>: Attempts to extract each element in source and insert it into a using the comparison object of *this. If there is an element in a with key equivalent to the key of an element from source, then that element is not extracted from source.</p> -<p><span class="bold"><strong>Postcondition</strong></span>: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing unless the comparison object throws.</p> -<p><span class="bold"><strong>Complexity</strong></span>: N log(a.size() + N) (N has the value source.size()) </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="special">...</span> Options2<span class="special">></span> - <span class="keyword">void</span> <a name="idm45971710626544-bb"></a><span class="identifier">merge</span><span class="special">(</span><a class="link" href="sg_multiset.html" title="Class template sg_multiset">sg_multiset</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span> source<span class="special">)</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: "source" container's Options can only can differ in the comparison function from *this.</p> -<p><span class="bold"><strong>Effects</strong></span>: Attempts to extract each element in source and insert it into a using the comparison object of *this. If there is an element in a with key equivalent to the key of an element from source, then that element is not extracted from source.</p> -<p><span class="bold"><strong>Postcondition</strong></span>: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing unless the comparison object throws.</p> -<p><span class="bold"><strong>Complexity</strong></span>: N log(a.size() + N) (N has the value source.size()) </p> +<p><span class="bold"><strong>Complexity</strong></span>: Linear to the elements in the subtree. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="special">...</span> Options2<span class="special">></span> <span class="keyword">void</span> <a name="idm41374-bb"></a><span class="identifier">merge</span><span class="special">(</span><a class="link" href="sg_set.html" title="Class template sg_set">sg_set</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span> source<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="special">...</span> Options2<span class="special">></span> + <span class="keyword">void</span> <a name="idm41382-bb"></a><span class="identifier">merge</span><span class="special">(</span><a class="link" href="sg_multiset.html" title="Class template sg_multiset">sg_multiset</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span> source<span class="special">)</span><span class="special">;</span></pre></li> </ol></div> </div> <div class="refsect2"> -<a name="id-1.3.20.42.32.6.4.7"></a><h3> -<a name="idm45971710590672-bb"></a><code class="computeroutput">sg_set</code> public static functions</h3> +<a name="id-1.3.18.42.32.6.4.7"></a><h3> +<a name="idm41446-bb"></a><code class="computeroutput">sg_set</code> public static functions</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <a class="link" href="sg_set.html" title="Class template sg_set">sg_set</a> <span class="special">&</span> <a name="idm45971710590112-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Precondition</strong></span>: end_iterator must be a valid end iterator of the container.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the container associated to the end iterator</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Constant. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="sg_set.html" title="Class template sg_set">sg_set</a> <span class="special">&</span> -<a name="idm45971710584096-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">const_iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Precondition</strong></span>: end_iterator must be a valid end iterator of the container.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the container associated to the end iterator</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Constant. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <a class="link" href="sg_set.html" title="Class template sg_set">sg_set</a> <span class="special">&</span> <a name="idm45971710577920-bb"></a><span class="identifier">container_from_iterator</span><span class="special">(</span><span class="identifier">iterator</span> it<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Precondition</strong></span>: it must be a valid iterator of the container.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the container associated to the iterator</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="sg_set.html" title="Class template sg_set">sg_set</a> <span class="special">&</span> <a name="idm45971710571952-bb"></a><span class="identifier">container_from_iterator</span><span class="special">(</span><span class="identifier">const_iterator</span> it<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Precondition</strong></span>: it must be a valid iterator of the container.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the container associated to the iterator</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="identifier">iterator</span> <a name="idm45971710565824-bb"></a><span class="identifier">s_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 set of appropriate type. Otherwise the behavior is undefined.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns: a valid iterator i belonging to the set 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> -<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">const_iterator</span> <a name="idm45971710558736-bb"></a><span class="identifier">s_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 set of appropriate type. Otherwise the behavior is undefined.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns: a valid iterator i belonging to the set 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> -<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="keyword">void</span> <a name="idm45971710551648-bb"></a><span class="identifier">init_node</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 shall not be in a container.</p> -<p><span class="bold"><strong>Effects</strong></span>: init_node puts the hook of a value in a well-known default state.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> -<p><span class="bold"><strong>Note</strong></span>: This function puts the hook in the well-known default state used by auto_unlink and safe hooks. </p> -</li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <a class="link" href="sg_set.html" title="Class template sg_set">sg_set</a> <span class="special">&</span> <a name="idm41447-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="sg_set.html" title="Class template sg_set">sg_set</a> <span class="special">&</span> +<a name="idm41452-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">const_iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <a class="link" href="sg_set.html" title="Class template sg_set">sg_set</a> <span class="special">&</span> <a name="idm41457-bb"></a><span class="identifier">container_from_iterator</span><span class="special">(</span><span class="identifier">iterator</span> it<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="sg_set.html" title="Class template sg_set">sg_set</a> <span class="special">&</span> <a name="idm41462-bb"></a><span class="identifier">container_from_iterator</span><span class="special">(</span><span class="identifier">const_iterator</span> it<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">iterator</span> <a name="idm41467-bb"></a><span class="identifier">s_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></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">const_iterator</span> <a name="idm41471-bb"></a><span class="identifier">s_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></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm41475-bb"></a><span class="identifier">init_node</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></li> </ol></div> </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="sg_multiset.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.sg_set_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_sgtree.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/sgtree.html b/doc/html/boost/intrusive/sgtree.html index 1a6d97c8f5..2568a69a3b 100644 --- a/doc/html/boost/intrusive/sgtree.html +++ b/doc/html/boost/intrusive/sgtree.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.sgtree_hpp" title="Header <boost/intrusive/sgtree.hpp>"> <link rel="prev" href="make_sgtree.html" title="Struct template make_sgtree"> <link rel="next" href="sgtree_algorithms.html" title="Class template sgtree_algorithms"> +<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> @@ -29,8 +30,8 @@ <h2><span class="refentrytitle">Class template sgtree</span></h2> <p>boost::intrusive::sgtree</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.sgtree_hpp" title="Header <boost/intrusive/sgtree.hpp>">boost/intrusive/sgtree.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.sgtree_hpp" title="Header <boost/intrusive/sgtree.hpp>">boost/intrusive/sgtree.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="sgtree.html" title="Class template sgtree">sgtree</a> <span class="special">{</span> @@ -60,143 +61,143 @@ <span class="keyword">typedef</span> <span class="identifier">implementation_defined</span> <a name="boost.intrusive.sgtree.insert_commit_data"></a><span class="identifier">insert_commit_data</span><span class="special">;</span> <span class="comment">// <a class="link" href="sgtree.html#boost.intrusive.sgtreeconstruct-copy-destruct">construct/copy/destruct</a></span> - <a class="link" href="sgtree.html#idm45971709931984-bb"><span class="identifier">sgtree</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">explicit</span> <a class="link" href="sgtree.html#idm45971709928832-bb"><span class="identifier">sgtree</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_compare</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="sgtree.html#idm42639-bb"><span class="identifier">sgtree</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">explicit</span> <a class="link" href="sgtree.html#idm42647-bb"><span class="identifier">sgtree</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_compare</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="sgtree.html#idm45971709923712-bb"><span class="identifier">sgtree</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> <span class="identifier">key_compare</span> <span class="special">&</span> <span class="special">=</span> <span class="identifier">key_compare</span><span class="special">(</span><span class="special">)</span><span class="special">,</span> + <a class="link" href="sgtree.html#idm42653-bb"><span class="identifier">sgtree</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> <span class="identifier">key_compare</span> <span class="special">&</span> <span class="special">=</span> <span class="identifier">key_compare</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="sgtree.html#idm45971709914560-bb"><span class="identifier">sgtree</span></a><span class="special">(</span><a class="link" href="sgtree.html" title="Class template sgtree">sgtree</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> - <a class="link" href="sgtree.html" title="Class template sgtree">sgtree</a> <span class="special">&</span> <a class="link" href="sgtree.html#idm45971709910256-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><a class="link" href="sgtree.html" title="Class template sgtree">sgtree</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> - <a class="link" href="sgtree.html#idm45971709907440-bb"><span class="special">~</span><span class="identifier">sgtree</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="sgtree.html#idm42668-bb"><span class="identifier">sgtree</span></a><span class="special">(</span><a class="link" href="sgtree.html" title="Class template sgtree">sgtree</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="sgtree.html" title="Class template sgtree">sgtree</a> <span class="special">&</span> <a class="link" href="sgtree.html#idm42679-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><a class="link" href="sgtree.html" title="Class template sgtree">sgtree</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="sgtree.html#idm42688-bb"><span class="special">~</span><span class="identifier">sgtree</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> - <span class="comment">// <a class="link" href="sgtree.html#idm45971710461600-bb">public member functions</a></span> - <span class="identifier">iterator</span> <a class="link" href="sgtree.html#idm45971710461040-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="sgtree.html#idm45971710457200-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="sgtree.html#idm45971710453360-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="sgtree.html#idm45971710449520-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="sgtree.html#idm45971710445680-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="sgtree.html#idm45971710441840-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">reverse_iterator</span> <a class="link" href="sgtree.html#idm45971710438000-bb"><span class="identifier">rbegin</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="identifier">const_reverse_iterator</span> <a class="link" href="sgtree.html#idm45971710434144-bb"><span class="identifier">rbegin</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_reverse_iterator</span> <a class="link" href="sgtree.html#idm45971710430288-bb"><span class="identifier">crbegin</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">reverse_iterator</span> <a class="link" href="sgtree.html#idm45971710426432-bb"><span class="identifier">rend</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="identifier">const_reverse_iterator</span> <a class="link" href="sgtree.html#idm45971710422576-bb"><span class="identifier">rend</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_reverse_iterator</span> <a class="link" href="sgtree.html#idm45971710418720-bb"><span class="identifier">crend</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="sgtree.html#idm45971710414864-bb"><span class="identifier">root</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="sgtree.html#idm45971710410992-bb"><span class="identifier">root</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="sgtree.html#idm45971710407120-bb"><span class="identifier">croot</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">key_compare</span> <a class="link" href="sgtree.html#idm45971710403248-bb"><span class="identifier">key_comp</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">value_compare</span> <a class="link" href="sgtree.html#idm45971710399392-bb"><span class="identifier">value_comp</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="sgtree.html#idm45971710395520-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="sgtree.html#idm45971710391696-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="sgtree.html#idm45971710387760-bb"><span class="identifier">swap</span></a><span class="special">(</span><a class="link" href="sgtree.html" title="Class template sgtree">sgtree</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="comment">// <a class="link" href="sgtree.html#idm41678-bb">public member functions</a></span> + <span class="identifier">iterator</span> <a class="link" href="sgtree.html#idm41679-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="sgtree.html#idm41688-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="sgtree.html#idm41697-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="sgtree.html#idm41706-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="sgtree.html#idm41715-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="sgtree.html#idm41724-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">reverse_iterator</span> <a class="link" href="sgtree.html#idm41733-bb"><span class="identifier">rbegin</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">const_reverse_iterator</span> <a class="link" href="sgtree.html#idm41742-bb"><span class="identifier">rbegin</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_reverse_iterator</span> <a class="link" href="sgtree.html#idm41751-bb"><span class="identifier">crbegin</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">reverse_iterator</span> <a class="link" href="sgtree.html#idm41760-bb"><span class="identifier">rend</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">const_reverse_iterator</span> <a class="link" href="sgtree.html#idm41769-bb"><span class="identifier">rend</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_reverse_iterator</span> <a class="link" href="sgtree.html#idm41778-bb"><span class="identifier">crend</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="sgtree.html#idm41787-bb"><span class="identifier">root</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="sgtree.html#idm41796-bb"><span class="identifier">root</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="sgtree.html#idm41805-bb"><span class="identifier">croot</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">key_compare</span> <a class="link" href="sgtree.html#idm41814-bb"><span class="identifier">key_comp</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">value_compare</span> <a class="link" href="sgtree.html#idm41823-bb"><span class="identifier">value_comp</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="sgtree.html#idm41832-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="sgtree.html#idm41841-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="sgtree.html#idm41850-bb"><span class="identifier">swap</span></a><span class="special">(</span><a class="link" href="sgtree.html" title="Class template sgtree">sgtree</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="sgtree.html#idm45971710383216-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="sgtree.html" title="Class template sgtree">sgtree</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="sgtree.html#idm41862-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="sgtree.html" title="Class template sgtree">sgtree</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="sgtree.html#idm45971710374096-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><a class="link" href="sgtree.html" title="Class template sgtree">sgtree</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="sgtree.html#idm45971710364208-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="identifier">iterator</span> <a class="link" href="sgtree.html#idm45971710358048-bb"><span class="identifier">insert_equal</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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="sgtree.html#idm45971710351024-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="sgtree.html#idm45971710343184-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="identifier">iterator</span> <a class="link" href="sgtree.html#idm45971710337040-bb"><span class="identifier">insert_unique</span></a><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">,</span> <span class="identifier">reference</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="sgtree.html#idm41884-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><a class="link" href="sgtree.html" title="Class template sgtree">sgtree</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="sgtree.html#idm41908-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="identifier">iterator</span> <a class="link" href="sgtree.html#idm41912-bb"><span class="identifier">insert_equal</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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="sgtree.html#idm41918-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="sgtree.html#idm41937-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="identifier">iterator</span> <a class="link" href="sgtree.html#idm41941-bb"><span class="identifier">insert_unique</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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> KeyType<span class="special">,</span> <span class="keyword">typename</span> KeyTypeKeyCompare<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="identifier">BOOST_INTRUSIVE_I</span> <span class="keyword">bool</span> <span class="special">></span> - <a class="link" href="sgtree.html#idm45971710330080-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">KeyTypeKeyCompare</span><span class="special">,</span> + <a class="link" href="sgtree.html#idm41947-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">KeyTypeKeyCompare</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="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> KeyType<span class="special">,</span> <span class="keyword">typename</span> KeyTypeKeyCompare<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="sgtree.html#idm45971710318656-bb"><span class="identifier">insert_unique_check</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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">KeyTypeKeyCompare</span><span class="special">,</span> + <a class="link" href="sgtree.html#idm41958-bb"><span class="identifier">insert_unique_check</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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">KeyTypeKeyCompare</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="sgtree.html#idm45971710306464-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> + <a class="link" href="sgtree.html#idm41971-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">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="sgtree.html#idm45971710300272-bb"><span class="identifier">insert_unique_check</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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="sgtree.html#idm45971710293296-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">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="sgtree.html#idm45971710284992-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="identifier">iterator</span> <a class="link" href="sgtree.html#idm45971710277200-bb"><span class="identifier">insert_before</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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">void</span> <a class="link" href="sgtree.html#idm45971710269968-bb"><span class="identifier">push_back</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">void</span> <a class="link" href="sgtree.html#idm45971710263408-bb"><span class="identifier">push_front</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">iterator</span> <a class="link" href="sgtree.html#idm45971710256848-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="identifier">iterator</span> <a class="link" href="sgtree.html#idm45971710251360-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="sgtree.html#idm45971710245120-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="sgtree.html#idm41977-bb"><span class="identifier">insert_unique_check</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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="sgtree.html#idm41985-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">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="sgtree.html#idm42004-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="identifier">iterator</span> <a class="link" href="sgtree.html#idm42023-bb"><span class="identifier">insert_before</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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">void</span> <a class="link" href="sgtree.html#idm42040-bb"><span class="identifier">push_back</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">void</span> <a class="link" href="sgtree.html#idm42055-bb"><span class="identifier">push_front</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">iterator</span> <a class="link" href="sgtree.html#idm42070-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="identifier">iterator</span> <a class="link" href="sgtree.html#idm42074-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="sgtree.html#idm42080-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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">size_type</span> <a class="link" href="sgtree.html#idm45971710239072-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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">size_type</span> <a class="link" href="sgtree.html#idm42084-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">KeyTypeKeyCompare</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="identifier">iterator</span> <a class="link" href="sgtree.html#idm45971710228976-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="identifier">iterator</span> <a class="link" href="sgtree.html#idm42108-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="identifier">iterator</span> <a class="link" href="sgtree.html#idm45971710221072-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="identifier">iterator</span> <a class="link" href="sgtree.html#idm42116-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="sgtree.html#idm45971710212416-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="sgtree.html#idm42126-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> KeyTypeKeyCompare<span class="special">,</span> <span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="identifier">size_type</span> <a class="link" href="sgtree.html#idm45971710203888-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">KeyTypeKeyCompare</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="sgtree.html#idm45971710191664-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="sgtree.html#idm45971710186800-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="sgtree.html#idm42134-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">KeyTypeKeyCompare</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="sgtree.html#idm42163-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="sgtree.html#idm42174-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="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> Options2<span class="special">></span> - <span class="keyword">void</span> <a class="link" href="sgtree.html#idm45971710180496-bb"><span class="identifier">merge_unique</span></a><span class="special">(</span><a class="link" href="sgtree.html" title="Class template sgtree">sgtree</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> - <a class="link" href="sgtree.html#idm45971710171984-bb"><span class="keyword">while</span></a><span class="special">(</span><span class="identifier">it</span> <span class="special">!</span> <span class="special">=</span> <span class="identifier">itend</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="sgtree.html#idm42188-bb"><span class="identifier">merge_unique</span></a><span class="special">(</span><a class="link" href="sgtree.html" title="Class template sgtree">sgtree</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="sgtree.html#idm42208-bb"><span class="keyword">while</span></a><span class="special">(</span><span class="identifier">it</span> <span class="special">!</span> <span class="special">=</span> <span class="identifier">itend</span><span class="special">)</span><span class="special">;</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> Options2<span class="special">></span> - <span class="keyword">void</span> <a class="link" href="sgtree.html#idm45971710170320-bb"><span class="identifier">merge_equal</span></a><span class="special">(</span><a class="link" href="sgtree.html" title="Class template sgtree">sgtree</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> - <a class="link" href="sgtree.html#idm45971710161952-bb"><span class="keyword">while</span></a><span class="special">(</span><span class="identifier">it</span> <span class="special">!</span> <span class="special">=</span> <span class="identifier">itend</span><span class="special">)</span><span class="special">;</span> - <span class="identifier">size_type</span> <a class="link" href="sgtree.html#idm45971710160288-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="sgtree.html#idm42213-bb"><span class="identifier">merge_equal</span></a><span class="special">(</span><a class="link" href="sgtree.html" title="Class template sgtree">sgtree</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="sgtree.html#idm42233-bb"><span class="keyword">while</span></a><span class="special">(</span><span class="identifier">it</span> <span class="special">!</span> <span class="special">=</span> <span class="identifier">itend</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">size_type</span> <a class="link" href="sgtree.html#idm42238-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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">size_type</span> <a class="link" href="sgtree.html#idm45971710155216-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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="sgtree.html#idm45971710146160-bb"><span class="identifier">lower_bound</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="sgtree.html#idm42242-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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="sgtree.html#idm42263-bb"><span class="identifier">lower_bound</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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a class="link" href="sgtree.html#idm45971710141408-bb"><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> - <span class="identifier">const_iterator</span> <a class="link" href="sgtree.html#idm45971710134560-bb"><span class="identifier">lower_bound</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="sgtree.html#idm42267-bb"><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">const_iterator</span> <a class="link" href="sgtree.html#idm42276-bb"><span class="identifier">lower_bound</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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">const_iterator</span> <a class="link" href="sgtree.html#idm45971710129536-bb"><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="sgtree.html#idm45971710122416-bb"><span class="identifier">upper_bound</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="sgtree.html#idm42280-bb"><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="sgtree.html#idm42289-bb"><span class="identifier">upper_bound</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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a class="link" href="sgtree.html#idm45971710117664-bb"><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> - <span class="identifier">const_iterator</span> <a class="link" href="sgtree.html#idm45971710108960-bb"><span class="identifier">upper_bound</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="sgtree.html#idm42293-bb"><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">const_iterator</span> <a class="link" href="sgtree.html#idm42314-bb"><span class="identifier">upper_bound</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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">const_iterator</span> <a class="link" href="sgtree.html#idm45971710103936-bb"><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="sgtree.html#idm45971710094960-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">const_iterator</span> <a class="link" href="sgtree.html#idm42318-bb"><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="sgtree.html#idm42339-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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a class="link" href="sgtree.html#idm45971710090224-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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> - <span class="identifier">const_iterator</span> <a class="link" href="sgtree.html#idm45971710081488-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="sgtree.html#idm42343-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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">const_iterator</span> <a class="link" href="sgtree.html#idm42364-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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">const_iterator</span> <a class="link" href="sgtree.html#idm45971710076480-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">KeyTypeKeyCompare</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="sgtree.html#idm45971710067472-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="sgtree.html#idm42368-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">KeyTypeKeyCompare</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="sgtree.html#idm42389-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> KeyTypeKeyCompare<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="sgtree.html#idm45971710062640-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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="sgtree.html#idm42393-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">KeyTypeKeyCompare</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="sgtree.html#idm45971710053808-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="sgtree.html#idm42414-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> KeyTypeKeyCompare<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="sgtree.html#idm45971710048688-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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <a class="link" href="sgtree.html#idm42418-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">KeyTypeKeyCompare</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="sgtree.html#idm45971710039568-bb"><span class="identifier">bounded_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="identifier">key_type</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="sgtree.html#idm42439-bb"><span class="identifier">bounded_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="identifier">key_type</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</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> KeyTypeKeyCompare<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="sgtree.html#idm45971710027136-bb"><span class="identifier">bounded_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="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> + <a class="link" href="sgtree.html#idm42449-bb"><span class="identifier">bounded_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="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</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="sgtree.html#idm45971710010336-bb"><span class="identifier">bounded_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="identifier">key_type</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <a class="link" href="sgtree.html#idm42491-bb"><span class="identifier">bounded_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="identifier">key_type</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</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> KeyTypeKeyCompare<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="sgtree.html#idm45971709997616-bb"><span class="identifier">bounded_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="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> + <a class="link" href="sgtree.html#idm42501-bb"><span class="identifier">bounded_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="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="sgtree.html#idm45971709980528-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="sgtree.html#idm45971709975040-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">pointer</span> <a class="link" href="sgtree.html#idm45971709969552-bb"><span class="identifier">unlink_leftmost_without_rebalance</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="sgtree.html#idm45971709964640-bb"><span class="identifier">replace_node</span></a><span class="special">(</span><span class="identifier">iterator</span><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">void</span> <a class="link" href="sgtree.html#idm45971709957376-bb"><span class="identifier">remove_node</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">void</span> <a class="link" href="sgtree.html#idm45971709951536-bb"><span class="identifier">rebalance</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="sgtree.html#idm45971709947744-bb"><span class="identifier">rebalance_subtree</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">float</span> <a class="link" href="sgtree.html#idm45971709941472-bb"><span class="identifier">balance_factor</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="sgtree.html#idm45971709937648-bb"><span class="identifier">balance_factor</span></a><span class="special">(</span><span class="keyword">float</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="sgtree.html#idm42543-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="sgtree.html#idm42547-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">pointer</span> <a class="link" href="sgtree.html#idm42551-bb"><span class="identifier">unlink_leftmost_without_rebalance</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="sgtree.html#idm42562-bb"><span class="identifier">replace_node</span></a><span class="special">(</span><span class="identifier">iterator</span><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">void</span> <a class="link" href="sgtree.html#idm42579-bb"><span class="identifier">remove_node</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">void</span> <a class="link" href="sgtree.html#idm42593-bb"><span class="identifier">rebalance</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="sgtree.html#idm42602-bb"><span class="identifier">rebalance_subtree</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">float</span> <a class="link" href="sgtree.html#idm42617-bb"><span class="identifier">balance_factor</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="sgtree.html#idm42626-bb"><span class="identifier">balance_factor</span></a><span class="special">(</span><span class="keyword">float</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="comment">// <a class="link" href="sgtree.html#idm45971709903536-bb">public static functions</a></span> - <span class="keyword">static</span> <a class="link" href="sgtree.html" title="Class template sgtree">sgtree</a> <span class="special">&</span> <a class="link" href="sgtree.html#idm45971709902976-bb"><span class="identifier">container_from_end_iterator</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="sgtree.html" title="Class template sgtree">sgtree</a> <span class="special">&</span> <a class="link" href="sgtree.html#idm45971709896960-bb"><span class="identifier">container_from_end_iterator</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">static</span> <a class="link" href="sgtree.html" title="Class template sgtree">sgtree</a> <span class="special">&</span> <a class="link" href="sgtree.html#idm45971709890784-bb"><span class="identifier">container_from_iterator</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="sgtree.html" title="Class template sgtree">sgtree</a> <span class="special">&</span> <a class="link" href="sgtree.html#idm45971709884816-bb"><span class="identifier">container_from_iterator</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">static</span> <span class="identifier">iterator</span> <a class="link" href="sgtree.html#idm45971709878688-bb"><span class="identifier">s_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_iterator</span> <a class="link" href="sgtree.html#idm45971709871600-bb"><span class="identifier">s_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="keyword">void</span> <a class="link" href="sgtree.html#idm45971709864512-bb"><span class="identifier">init_node</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="comment">// <a class="link" href="sgtree.html#idm42697-bb">public static functions</a></span> + <span class="keyword">static</span> <a class="link" href="sgtree.html" title="Class template sgtree">sgtree</a> <span class="special">&</span> <a class="link" href="sgtree.html#idm42698-bb"><span class="identifier">container_from_end_iterator</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="sgtree.html" title="Class template sgtree">sgtree</a> <span class="special">&</span> <a class="link" href="sgtree.html#idm42703-bb"><span class="identifier">container_from_end_iterator</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">static</span> <a class="link" href="sgtree.html" title="Class template sgtree">sgtree</a> <span class="special">&</span> <a class="link" href="sgtree.html#idm42708-bb"><span class="identifier">container_from_iterator</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="sgtree.html" title="Class template sgtree">sgtree</a> <span class="special">&</span> <a class="link" href="sgtree.html#idm42713-bb"><span class="identifier">container_from_iterator</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">static</span> <span class="identifier">iterator</span> <a class="link" href="sgtree.html#idm42718-bb"><span class="identifier">s_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_iterator</span> <a class="link" href="sgtree.html#idm42722-bb"><span class="identifier">s_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="keyword">void</span> <a class="link" href="sgtree.html#idm42726-bb"><span class="identifier">init_node</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="comment">// public data members</span> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">bool</span> <span class="identifier">constant_time_size</span><span class="special">;</span> @@ -204,392 +205,280 @@ <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> <span class="special">}</span><span class="special">;</span></pre></div> <div class="refsect1"> -<a name="id-1.3.20.42.33.4.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.33.4.4"></a><h2>Description</h2> <p>The class template sgtree is an intrusive scapegoat tree container, that is used to construct intrusive <a class="link" href="sg_set.html" title="Class template sg_set">sg_set</a> and <a class="link" href="sg_multiset.html" title="Class template sg_multiset">sg_multiset</a> containers. The no-throw guarantee holds only, if the value_compare object doesn't throw.</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> <p>The container supports the following options: <code class="computeroutput">base_hook<>/member_hook<>/value_traits<></code>, <code class="computeroutput">floating_point<></code>, <code class="computeroutput">size_type<></code> and <code class="computeroutput">compare<></code>. </p> <div class="refsect2"> -<a name="id-1.3.20.42.33.4.4.5"></a><h3> +<a name="id-1.3.18.42.33.4.4.5"></a><h3> <a name="boost.intrusive.sgtreeconstruct-copy-destruct"></a><code class="computeroutput">sgtree</code> public construct/copy/destruct</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> <li class="listitem"> -<pre class="literallayout"><a name="idm45971709931984-bb"></a><span class="identifier">sgtree</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm42639-bb"></a><span class="identifier">sgtree</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Constructs an empty container.</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 constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor of the key_compare object throws. Basic guarantee. </p> +<p><span class="bold"><strong>Throws</strong></span>: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor of the key_compare object throws. Basic guarantee. </p> </li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">explicit</span> <a name="idm45971709928832-bb"></a><span class="identifier">sgtree</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> cmp<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> -<p><span class="bold"><strong>Effects</strong></span>: Constructs an empty container with given comparison and traits.</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 constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor of the key_compare object throws. Basic guarantee. </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> - <a name="idm45971709923712-bb"></a><span class="identifier">sgtree</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> +<li class="listitem"><pre class="literallayout"><span class="keyword">explicit</span> <a name="idm42647-bb"></a><span class="identifier">sgtree</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> cmp<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></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="idm42653-bb"></a><span class="identifier">sgtree</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> <span class="identifier">key_compare</span> <span class="special">&</span> cmp <span class="special">=</span> <span class="identifier">key_compare</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> -<p><span class="bold"><strong>Requires</strong></span>: Dereferencing iterator must yield an lvalue of type value_type. cmp must be a comparison function that induces a strict weak ordering.</p> -<p><span class="bold"><strong>Effects</strong></span>: Constructs an empty container and inserts elements from [b, e).</p> -<p><span class="bold"><strong>Complexity</strong></span>: Linear in N if [b, e) is already sorted using comp and otherwise N * log N, where N is the distance between first and last.</p> -<p><span class="bold"><strong>Throws</strong></span>: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor/operator() of the key_compare object throws. Basic guarantee. </p> -</li> + <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></li> <li class="listitem"> -<pre class="literallayout"><a name="idm45971709914560-bb"></a><span class="identifier">sgtree</span><span class="special">(</span><a class="link" href="sgtree.html" title="Class template sgtree">sgtree</a> <span class="special">&&</span> x<span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm42668-bb"></a><span class="identifier">sgtree</span><span class="special">(</span><a class="link" href="sgtree.html" title="Class template sgtree">sgtree</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 comparison object and value traits are move constructed and nodes belonging to x (except the node representing the "end") 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 the comparison objet throws. </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 the comparison objet throws. </p> </li> <li class="listitem"> -<pre class="literallayout"><a class="link" href="sgtree.html" title="Class template sgtree">sgtree</a> <span class="special">&</span> <a name="idm45971709910256-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><a class="link" href="sgtree.html" title="Class template sgtree">sgtree</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> +<pre class="literallayout"><a class="link" href="sgtree.html" title="Class template sgtree">sgtree</a> <span class="special">&</span> <a name="idm42679-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><a class="link" href="sgtree.html" title="Class template sgtree">sgtree</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="idm45971709907440-bb"></a><span class="special">~</span><span class="identifier">sgtree</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm42688-bb"></a><span class="special">~</span><span class="identifier">sgtree</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 set are not deleted (i.e. no destructors are called), but the nodes according to the <code class="computeroutput"><a class="link" href="value_traits.html" title="Struct template value_traits">value_traits</a></code> template parameter are reinitialized and thus can be reused.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to elements contained in *this.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> </ol></div> </div> <div class="refsect2"> -<a name="id-1.3.20.42.33.4.4.6"></a><h3> -<a name="idm45971710461600-bb"></a><code class="computeroutput">sgtree</code> public member functions</h3> +<a name="id-1.3.18.42.33.4.4.6"></a><h3> +<a name="idm41678-bb"></a><code class="computeroutput">sgtree</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="idm45971710461040-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="idm41679-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971710457200-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="idm41688-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971710453360-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="idm41697-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971710449520-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="idm41706-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971710445680-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="idm41715-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971710441840-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="idm41724-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">reverse_iterator</span> <a name="idm45971710438000-bb"></a><span class="identifier">rbegin</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">reverse_iterator</span> <a name="idm41733-bb"></a><span class="identifier">rbegin</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 a reverse_iterator pointing to the beginning of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45971710434144-bb"></a><span class="identifier">rbegin</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_reverse_iterator</span> <a name="idm41742-bb"></a><span class="identifier">rbegin</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_reverse_iterator pointing to the beginning of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45971710430288-bb"></a><span class="identifier">crbegin</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_reverse_iterator</span> <a name="idm41751-bb"></a><span class="identifier">crbegin</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_reverse_iterator pointing to the beginning of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">reverse_iterator</span> <a name="idm45971710426432-bb"></a><span class="identifier">rend</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">reverse_iterator</span> <a name="idm41760-bb"></a><span class="identifier">rend</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 a reverse_iterator pointing to the end of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45971710422576-bb"></a><span class="identifier">rend</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_reverse_iterator</span> <a name="idm41769-bb"></a><span class="identifier">rend</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_reverse_iterator pointing to the end of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45971710418720-bb"></a><span class="identifier">crend</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_reverse_iterator</span> <a name="idm41778-bb"></a><span class="identifier">crend</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_reverse_iterator pointing to the end of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971710414864-bb"></a><span class="identifier">root</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="idm41787-bb"></a><span class="identifier">root</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 a iterator pointing to the root node of the container or end() if not present.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971710410992-bb"></a><span class="identifier">root</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="idm41796-bb"></a><span class="identifier">root</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 root node of the container or cend() if not present.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971710407120-bb"></a><span class="identifier">croot</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="idm41805-bb"></a><span class="identifier">croot</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 root node of the container or cend() if not present.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">key_compare</span> <a name="idm45971710403248-bb"></a><span class="identifier">key_comp</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_compare</span> <a name="idm41814-bb"></a><span class="identifier">key_comp</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_compare object used by the container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: If key_compare copy-constructor throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If key_compare copy-constructor throws. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">value_compare</span> <a name="idm45971710399392-bb"></a><span class="identifier">value_comp</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">value_compare</span> <a name="idm41823-bb"></a><span class="identifier">value_comp</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 value_compare object used by the container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: If value_compare copy-constructor throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If value_compare copy-constructor throws. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">bool</span> <a name="idm45971710395520-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="idm41832-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>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971710391696-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="idm41841-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to elements contained in *this if constant-time size option is disabled. Constant time otherwise.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971710387760-bb"></a><span class="identifier">swap</span><span class="special">(</span><a class="link" href="sgtree.html" title="Class template sgtree">sgtree</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="idm41850-bb"></a><span class="identifier">swap</span><span class="special">(</span><a class="link" href="sgtree.html" title="Class template sgtree">sgtree</a> <span class="special">&</span> other<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Swaps the contents of two containers.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comparison functor's swap call throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If the comparison functor's swap call throws. </p> </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="idm45971710383216-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="sgtree.html" title="Class template sgtree">sgtree</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="idm41862-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="sgtree.html" title="Class template sgtree">sgtree</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 equivalent to the original nodes.</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. Copies the predicate from the source container.</p> <p>If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to erased plus inserted elements.</p> -<p><span class="bold"><strong>Throws</strong></span>: If cloner throws or predicate copy assignment throws. Basic guarantee. Additional notes: it also copies the alpha factor from the source container. </p> +<p><span class="bold"><strong>Throws</strong></span>: If cloner throws or predicate copy assignment throws. Basic guarantee. Additional notes: it also copies the alpha factor from the source container. </p> </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="idm45971710374096-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><a class="link" href="sgtree.html" title="Class template sgtree">sgtree</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="idm41884-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><a class="link" href="sgtree.html" title="Class template sgtree">sgtree</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 equivalent to the original nodes.</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. Copies the predicate from the source container.</p> <p>If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to erased plus inserted elements.</p> <p><span class="bold"><strong>Throws</strong></span>: If cloner throws or predicate copy assignment throws. Basic guarantee.</p> -<p><span class="bold"><strong>Note</strong></span>: This version can modify the source container, useful to implement move semantics. Additional notes: it also copies the alpha factor from the source container. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971710364208-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 value into the container before the upper bound.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Average complexity for insert element is at most logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the internal key_compare ordering function throws. Strong guarantee.</p> -<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">iterator</span> <a name="idm45971710358048-bb"></a><span class="identifier">insert_equal</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<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, and "hint" must be a valid iterator.</p> -<p><span class="bold"><strong>Effects</strong></span>: Inserts x into the container, using "hint" as a hint to where it will be inserted. If "hint" is the upper_bound the insertion takes constant time (two comparisons in the worst case)</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic in general, but it is amortized constant time if t is inserted immediately before hint.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the internal key_compare ordering function throws. Strong guarantee.</p> -<p><span class="bold"><strong>Note</strong></span>: Does not affect the validity of iterators and references. No copy-constructors are called. </p> +<p><span class="bold"><strong>Note</strong></span>: This version can modify the source container, useful to implement move semantics. Additional notes: it also copies the alpha factor from the source container. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm41908-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm41912-bb"></a><span class="identifier">insert_equal</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<span class="special">,</span> <span class="identifier">reference</span> value<span class="special">)</span><span class="special">;</span></pre></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="idm45971710351024-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="idm41918-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>: Inserts a each element of a range into the container before the upper bound of the key of each element.</p> <p><span class="bold"><strong>Complexity</strong></span>: Insert range is in general O(N * log(N)), where N is the size of the range. However, it is linear in N if the range is already sorted by value_comp().</p> <p><span class="bold"><strong>Throws</strong></span>: If the comparison functor call throws.</p> -<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="idm45971710343184-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>: Inserts value into the container if the value is not already present.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Average complexity for insert element is at most logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comparison functor call throws.</p> -<p><span class="bold"><strong>Note</strong></span>: Does not affect the validity of iterators and references. No copy-constructors are called. </p> +<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">iterator</span> <a name="idm45971710337040-bb"></a><span class="identifier">insert_unique</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<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, and "hint" must be a valid iterator</p> -<p><span class="bold"><strong>Effects</strong></span>: Tries to insert x into the container, using "hint" as a hint to where it will be inserted.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic in general, but it is amortized constant time (two comparisons in the worst case) if t is inserted immediately before hint.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comparison functor call throws.</p> -<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> KeyType<span class="special">,</span> <span class="keyword">typename</span> KeyTypeKeyCompare<span class="special">></span> +<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="idm41937-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm41941-bb"></a><span class="identifier">insert_unique</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<span class="special">,</span> <span class="identifier">reference</span> value<span class="special">)</span><span class="special">;</span></pre></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> KeyTypeKeyCompare<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="identifier">BOOST_INTRUSIVE_I</span> <span class="keyword">bool</span> <span class="special">></span> - <a name="idm45971710330080-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">KeyTypeKeyCompare</span> comp<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>: comp must be a comparison function that induces the same strict weak ordering as key_compare. The difference is that comp compares an arbitrary key with the contained values.</p> -<p><span class="bold"><strong>Effects</strong></span>: Checks if a value can be inserted in the container, 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 complexity is at most logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comp ordering function throws. Strong guarantee.</p> -<p><span class="bold"><strong>Notes</strong></span>: This function is used to improve performance when constructing a value_type is expensive: if there is an equivalent value the constructed object must be discarded. Many times, the part of the node that is used to impose the order is much cheaper to construct than the value_type and this function offers the possibility to use that part to check if the insertion will be successful.</p> -<p>If the check is successful, the user can construct the value_type and use "insert_commit" to insert the object in constant-time. This gives a total logarithmic complexity to the insertion: check(O(log(N)) + commit(O(1)).</p> -<p>"commit_data" remains valid for a subsequent "insert_commit" only if no more objects are inserted or erased from the container. </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> KeyTypeKeyCompare<span class="special">></span> + <a name="idm41947-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">KeyTypeKeyCompare</span> comp<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></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> KeyTypeKeyCompare<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="idm45971710318656-bb"></a><span class="identifier">insert_unique_check</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> key<span class="special">,</span> + <a name="idm41958-bb"></a><span class="identifier">insert_unique_check</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<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">KeyTypeKeyCompare</span> comp<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>: comp must be a comparison function that induces the same strict weak ordering as key_compare. The difference is that comp compares an arbitrary key with the contained values.</p> -<p><span class="bold"><strong>Effects</strong></span>: Checks if a value can be inserted in the container, using a user provided key instead of the value itself, using "hint" as a hint to where it will be inserted.</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>: Logarithmic in general, but it's amortized constant time if t is inserted immediately before hint.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comp ordering function throws. Strong guarantee.</p> -<p><span class="bold"><strong>Notes</strong></span>: This function is used to improve performance when constructing a value_type is expensive: if there is an equivalent value the constructed object must be discarded. Many times, the part of the constructing that is used to impose the order is much cheaper to construct than the value_type and this function offers the possibility to use that key to check if the insertion will be successful.</p> -<p>If the check is successful, the user can construct the value_type and use "insert_commit" to insert the object in constant-time. This can give a total constant-time complexity to the insertion: check(O(1)) + commit(O(1)).</p> -<p>"commit_data" remains valid for a subsequent "insert_commit" only if no more objects are inserted or erased from the container. </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="idm45971710306464-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 container, 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 complexity is at most logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comp ordering function throws. Strong guarantee. </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="idm45971710300272-bb"></a><span class="identifier">insert_unique_check</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<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 container, using a user provided key instead of the value itself, using "hint" as a hint to where it will be inserted.</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>: Logarithmic in general, but it's amortized constant time if t is inserted immediately before hint.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comp ordering function throws. Strong guarantee. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971710293296-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="identifier">insert_commit_data</span> <span class="special">&</span> commit_data<span class="special">)</span><span class="special">;</span></pre></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="idm41971-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></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="idm41977-bb"></a><span class="identifier">insert_unique_check</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<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></li> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm41985-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 container 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 container using the information obtained from the "commit_data" that a previous "insert_check" filled.</p> <p><span class="bold"><strong>Returns</strong></span>: An iterator to the newly inserted object.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Notes</strong></span>: This function has only sense if a "insert_check" has been previously executed to fill "commit_data". No value should be inserted or erased between the "insert_check" and "insert_commit" calls. </p> +<p><span class="bold"><strong>Notes</strong></span>: This function has only sense if a "insert_check" has been previously executed to fill "commit_data". No value should be inserted or erased between the "insert_check" and "insert_commit" calls. </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="idm45971710284992-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="idm42004-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>: Tries to insert each element of a range into the container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Insert range is in general O(N * log(N)), where N is the size of the range. However, it is linear in N if the range is already sorted by value_comp().</p> <p><span class="bold"><strong>Throws</strong></span>: If the comparison functor call throws.</p> -<p><span class="bold"><strong>Note</strong></span>: Does not affect the validity of iterators and references. No copy-constructors are called. </p> +<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">iterator</span> <a name="idm45971710277200-bb"></a><span class="identifier">insert_before</span><span class="special">(</span><span class="identifier">const_iterator</span> pos<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="idm42023-bb"></a><span class="identifier">insert_before</span><span class="special">(</span><span class="identifier">const_iterator</span> pos<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, "pos" must be a valid iterator (or end) and must be the succesor of value once inserted according to the predicate</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts x into the container before "pos".</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if "pos" is not the successor of "value" container ordering invariant will be broken. This is a low-level function to be used only for performance reasons by advanced users. </p> +<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if "pos" is not the successor of "value" container ordering invariant will be broken. This is a low-level function to be used only for performance reasons by advanced users. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971710269968-bb"></a><span class="identifier">push_back</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">void</span> <a name="idm42040-bb"></a><span class="identifier">push_back</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 it must be no less than the greatest inserted key</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts x into the container in the last position.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if value is less than the greatest inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users. </p> +<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if value is less than the greatest inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971710263408-bb"></a><span class="identifier">push_front</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">void</span> <a name="idm42055-bb"></a><span class="identifier">push_front</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 it must be no greater than the minimum inserted key</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts x into the container in the first position.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if value is greater than the minimum inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971710256848-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 complexity for erase element is constant time.</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">iterator</span> <a name="idm45971710251360-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 complexity for erase range is at most O(log(size() + N)), where N is the number of elements in the range.</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="idm45971710245120-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>: O(log(size() + N).</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> +<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if value is greater than the minimum inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm42070-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm42074-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">size_type</span> <a name="idm42080-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></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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971710239072-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <span class="identifier">size_type</span> <a name="idm42084-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Erases all the elements with the given key. according to the comparison functor "comp".</p> <p><span class="bold"><strong>Returns</strong></span>: The number of erased elements.</p> <p><span class="bold"><strong>Complexity</strong></span>: O(log(size() + N).</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="identifier">iterator</span> <a name="idm45971710228976-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 complexity for erase element is constant time.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<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">template</span><span class="special"><</span><span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="identifier">iterator</span> <a name="idm45971710221072-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> -<p><span class="bold"><strong>Complexity</strong></span>: Average complexity for erase range is at most O(log(size() + N)), where N is the number of elements in the range.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<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">template</span><span class="special"><</span><span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971710212416-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> -<p><span class="bold"><strong>Complexity</strong></span>: O(log(size() + N).</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> +<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="identifier">iterator</span> <a name="idm42108-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></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">iterator</span> <a name="idm42116-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></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="idm42126-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></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> KeyTypeKeyCompare<span class="special">,</span> <span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971710203888-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">KeyTypeKeyCompare</span> comp<span class="special">,</span> + <span class="identifier">size_type</span> <a name="idm42134-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">KeyTypeKeyCompare</span> comp<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>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk) and nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Requires</strong></span>: Disposer::operator()(pointer) shouldn't throw.</p> @@ -597,188 +486,122 @@ <p><span class="bold"><strong>Returns</strong></span>: The number of erased elements.</p> <p><span class="bold"><strong>Complexity</strong></span>: O(log(size() + N).</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: Invalidates the iterators to the erased elements. </p> +<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="idm45971710191664-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="idm42163-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> +<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="idm45971710186800-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="idm42174-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>Effects</strong></span>: Erases all of the elements calling disposer(p) for each node to be erased. <span class="bold"><strong>Complexity</strong></span>: Average complexity for is at most O(log(size() + N)), where N is the number of elements in the container.</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. Calls N times to disposer functor. </p> +<p><span class="bold"><strong>Note</strong></span>: Invalidates the iterators (but not the references) to the erased elements. Calls N times to disposer functor. </p> </li> <li class="listitem"> <pre class="literallayout"><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> Options2<span class="special">></span> - <span class="keyword">void</span> <a name="idm45971710180496-bb"></a><span class="identifier">merge_unique</span><span class="special">(</span><a class="link" href="sgtree.html" title="Class template sgtree">sgtree</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span></pre> + <span class="keyword">void</span> <a name="idm42188-bb"></a><span class="identifier">merge_unique</span><span class="special">(</span><a class="link" href="sgtree.html" title="Class template sgtree">sgtree</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "source" container's Options can only can differ in the comparison function from *this.</p> <p><span class="bold"><strong>Effects</strong></span>: Attempts to extract each element in source and insert it into a using the comparison object of *this. If there is an element in a with key equivalent to the key of an element from source, then that element is not extracted from source.</p> <p><span class="bold"><strong>Postcondition</strong></span>: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing unless the comparison object throws.</p> -<p><span class="bold"><strong>Complexity</strong></span>: N log(a.size() + N) (N has the value source.size()) </p> +<p><span class="bold"><strong>Complexity</strong></span>: N log(a.size() + N) (N has the value source.size()) </p> </li> -<li class="listitem"><pre class="literallayout"> <a name="idm45971710171984-bb"></a><span class="keyword">while</span><span class="special">(</span><span class="identifier">it</span> <span class="special">!</span> <span class="special">=</span> <span class="identifier">itend</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"> <a name="idm42208-bb"></a><span class="keyword">while</span><span class="special">(</span><span class="identifier">it</span> <span class="special">!</span> <span class="special">=</span> <span class="identifier">itend</span><span class="special">)</span><span class="special">;</span></pre></li> <li class="listitem"> <pre class="literallayout"><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> Options2<span class="special">></span> - <span class="keyword">void</span> <a name="idm45971710170320-bb"></a><span class="identifier">merge_equal</span><span class="special">(</span><a class="link" href="sgtree.html" title="Class template sgtree">sgtree</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span></pre> + <span class="keyword">void</span> <a name="idm42213-bb"></a><span class="identifier">merge_equal</span><span class="special">(</span><a class="link" href="sgtree.html" title="Class template sgtree">sgtree</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "source" container's Options can only can differ in the comparison function from *this.</p> <p><span class="bold"><strong>Effects</strong></span>: Extracts each element in source and insert it into a using the comparison object of *this.</p> <p><span class="bold"><strong>Postcondition</strong></span>: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing unless the comparison object throws.</p> -<p><span class="bold"><strong>Complexity</strong></span>: N log(a.size() + N) (N has the value source.size()) </p> -</li> -<li class="listitem"><pre class="literallayout"> <a name="idm45971710161952-bb"></a><span class="keyword">while</span><span class="special">(</span><span class="identifier">it</span> <span class="special">!</span> <span class="special">=</span> <span class="identifier">itend</span><span class="special">)</span><span class="special">;</span></pre></li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">size_type</span> <a name="idm45971710160288-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>: Logarithmic to the number of elements contained plus lineal to number of objects with the given value.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Complexity</strong></span>: N log(a.size() + N) (N has the value source.size()) </p> </li> +<li class="listitem"><pre class="literallayout"> <a name="idm42233-bb"></a><span class="keyword">while</span><span class="special">(</span><span class="identifier">it</span> <span class="special">!</span> <span class="special">=</span> <span class="identifier">itend</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">size_type</span> <a name="idm42238-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></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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971710155216-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> + <span class="identifier">size_type</span> <a name="idm42242-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns the number of contained elements with the given key</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic to the number of elements contained plus lineal to number of objects with the given key.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> </li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971710146160-bb"></a><span class="identifier">lower_bound</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 an iterator to the first element whose key is not less than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> 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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a name="idm45971710141408-bb"></a><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Effects</strong></span>: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971710134560-bb"></a><span class="identifier">lower_bound</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 an iterator to the first element whose key is not less than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> 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> KeyTypeKeyCompare<span class="special">></span> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm42263-bb"></a><span class="identifier">lower_bound</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></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> KeyTypeKeyCompare<span class="special">></span> + <span class="identifier">iterator</span> <a name="idm42267-bb"></a><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm42276-bb"></a><span class="identifier">lower_bound</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></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> KeyTypeKeyCompare<span class="special">></span> <span class="identifier">const_iterator</span> - <a name="idm45971710129536-bb"></a><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Effects</strong></span>: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971710122416-bb"></a><span class="identifier">upper_bound</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 an iterator to the first element whose key is greater than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> -</li> + <a name="idm42280-bb"></a><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm42289-bb"></a><span class="identifier">upper_bound</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></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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a name="idm45971710117664-bb"></a><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <span class="identifier">iterator</span> <a name="idm42293-bb"></a><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns an iterator to the first element whose key is greater than k according to comp or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971710108960-bb"></a><span class="identifier">upper_bound</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 an iterator to the first element whose key is greater than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm42314-bb"></a><span class="identifier">upper_bound</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></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> KeyTypeKeyCompare<span class="special">></span> <span class="identifier">const_iterator</span> - <a name="idm45971710103936-bb"></a><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> + <a name="idm42318-bb"></a><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns an iterator to the first element whose key is greater than k according to comp or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971710094960-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 whose key is k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm42339-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></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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a name="idm45971710090224-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <span class="identifier">iterator</span> <a name="idm42343-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Finds an iterator to the first element whose key is k or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971710081488-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 an iterator to the first element whose key is k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm42364-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></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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">const_iterator</span> <a name="idm45971710076480-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> + <span class="identifier">const_iterator</span> <a name="idm42368-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Finds an iterator to the first element whose key is k or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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="idm45971710067472-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>: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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="idm42389-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></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> KeyTypeKeyCompare<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="idm45971710062640-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <a name="idm42393-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">></span> -<a name="idm45971710053808-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>: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">></span> +<a name="idm42414-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></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> KeyTypeKeyCompare<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="idm45971710048688-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> + <a name="idm42418-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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="idm45971710039568-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> upper_key<span class="special">,</span> - <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: <code class="computeroutput">upper_key</code> shall not precede <code class="computeroutput">lower_key</code> according to key_compare. [key_comp()(upper_key, lower_key) shall be false]</p> -<p>If <code class="computeroutput">lower_key</code> is equivalent to <code class="computeroutput">upper_key</code> [!key_comp()(upper_key, lower_key) && !key_comp()(lower_key, upper_key)] then ('left_closed' || 'right_closed') must be false.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns an a pair with the following criteria:</p> -<p>first = lower_bound(lower_key) if left_closed, upper_bound(lower_key) otherwise</p> -<p>second = upper_bound(upper_key) if right_closed, lower_bound(upper_key) otherwise</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws.</p> -<p><span class="bold"><strong>Note</strong></span>: This function can be more efficient than calling upper_bound and lower_bound for lower_value and upper_value.</p> -<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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="idm42439-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> upper_key<span class="special">,</span> + <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span><span class="special">;</span></pre></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> KeyTypeKeyCompare<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="idm45971710027136-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> + <a name="idm42449-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span> comp<span class="special">,</span> <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: <code class="computeroutput">lower_key</code> is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, lower_key) if left_closed is true, with respect to !comp(lower_key, nk) otherwise.</p> <p><code class="computeroutput">upper_key</code> is a value such that <code class="computeroutput">*this</code> is partitioned with respect to !comp(upper_key, nk) if right_closed is true, with respect to comp(nk, upper_key) otherwise.</p> @@ -790,26 +613,15 @@ <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> <p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws.</p> <p><span class="bold"><strong>Note</strong></span>: This function can be more efficient than calling upper_bound and lower_bound for lower_key and upper_key.</p> -<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </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">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">></span> -<a name="idm45971710010336-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> upper_key<span class="special">,</span> - <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: <code class="computeroutput">upper_key</code> shall not precede <code class="computeroutput">lower_key</code> according to key_compare. [key_comp()(upper_key, lower_key) shall be false]</p> -<p>If <code class="computeroutput">lower_key</code> is equivalent to <code class="computeroutput">upper_key</code> [!key_comp()(upper_key, lower_key) && !key_comp()(lower_key, upper_key)] then ('left_closed' || 'right_closed') must be false.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns an a pair with the following criteria:</p> -<p>first = lower_bound(lower_key) if left_closed, upper_bound(lower_key) otherwise</p> -<p>second = upper_bound(upper_key) if right_closed, lower_bound(upper_key) otherwise</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws.</p> -<p><span class="bold"><strong>Note</strong></span>: This function can be more efficient than calling upper_bound and lower_bound for lower_value and upper_value.</p> -<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </p> +<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </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">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">></span> +<a name="idm42491-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> upper_key<span class="special">,</span> + <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></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> KeyTypeKeyCompare<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="idm45971709997616-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> + <a name="idm42501-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span> comp<span class="special">,</span> <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: <code class="computeroutput">lower_key</code> is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, lower_key) if left_closed is true, with respect to !comp(lower_key, nk) otherwise.</p> <p><code class="computeroutput">upper_key</code> is a value such that <code class="computeroutput">*this</code> is partitioned with respect to !comp(upper_key, nk) if right_closed is true, with respect to comp(nk, upper_key) otherwise.</p> @@ -821,67 +633,55 @@ <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> <p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws.</p> <p><span class="bold"><strong>Note</strong></span>: This function can be more efficient than calling upper_bound and lower_bound for lower_key and upper_key.</p> -<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </p> +<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm42543-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm42547-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></li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971709980528-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 set of appropriate type. Otherwise the behavior is undefined.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns: a valid iterator i belonging to the set 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_iterator</span> <a name="idm45971709975040-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 set of appropriate type. Otherwise the behavior is undefined.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns: a valid const_iterator i belonging to the set 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">pointer</span> <a name="idm45971709969552-bb"></a><span class="identifier">unlink_leftmost_without_rebalance</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">pointer</span> <a name="idm42551-bb"></a><span class="identifier">unlink_leftmost_without_rebalance</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>: Unlinks the leftmost node from the container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Average complexity is constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Notes</strong></span>: This function breaks the container and the container can only be used for more unlink_leftmost_without_rebalance calls. This function is normally used to achieve a step by step controlled destruction of the container. </p> +<p><span class="bold"><strong>Notes</strong></span>: This function breaks the container and the container can only be used for more unlink_leftmost_without_rebalance calls. This function is normally used to achieve a step by step controlled destruction of the container. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971709964640-bb"></a><span class="identifier">replace_node</span><span class="special">(</span><span class="identifier">iterator</span> replace_this<span class="special">,</span> <span class="identifier">reference</span> with_this<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">void</span> <a name="idm42562-bb"></a><span class="identifier">replace_node</span><span class="special">(</span><span class="identifier">iterator</span> replace_this<span class="special">,</span> <span class="identifier">reference</span> with_this<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: replace_this must be a valid iterator of *this and with_this must not be inserted in any container.</p> <p><span class="bold"><strong>Effects</strong></span>: Replaces replace_this in its position in the container with with_this. The container does not need to be rebalanced.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: This function will break container ordering invariants if with_this is not equivalent to *replace_this according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing or comparison is needed. </p> +<p><span class="bold"><strong>Note</strong></span>: This function will break container ordering invariants if with_this is not equivalent to *replace_this according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing or comparison is needed. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971709957376-bb"></a><span class="identifier">remove_node</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">void</span> <a name="idm42579-bb"></a><span class="identifier">remove_node</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>Effects</strong></span>: removes "value" from the container.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic time.</p> <p><span class="bold"><strong>Note</strong></span>: This static function is only usable with non-constant time size containers that have stateless comparison functors.</p> -<p>If the user calls this function with a constant time size container or stateful comparison functor a compilation error will be issued. </p> +<p>If the user calls this function with a constant time size container or stateful comparison functor a compilation error will be issued. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971709951536-bb"></a><span class="identifier">rebalance</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="idm42593-bb"></a><span class="identifier">rebalance</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>: Rebalances the tree.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Linear. </p> +<p><span class="bold"><strong>Complexity</strong></span>: Linear. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971709947744-bb"></a><span class="identifier">rebalance_subtree</span><span class="special">(</span><span class="identifier">iterator</span> root<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm42602-bb"></a><span class="identifier">rebalance_subtree</span><span class="special">(</span><span class="identifier">iterator</span> root<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: old_root is a node of a tree.</p> <p><span class="bold"><strong>Effects</strong></span>: Rebalances the subtree rooted at old_root.</p> <p><span class="bold"><strong>Returns</strong></span>: The new root of the subtree.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Linear to the elements in the subtree. </p> +<p><span class="bold"><strong>Complexity</strong></span>: Linear to the elements in the subtree. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">float</span> <a name="idm45971709941472-bb"></a><span class="identifier">balance_factor</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">float</span> <a name="idm42617-bb"></a><span class="identifier">balance_factor</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>Returns</strong></span>: The balance factor (alpha) used in this tree</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971709937648-bb"></a><span class="identifier">balance_factor</span><span class="special">(</span><span class="keyword">float</span> new_alpha<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">void</span> <a name="idm42626-bb"></a><span class="identifier">balance_factor</span><span class="special">(</span><span class="keyword">float</span> new_alpha<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: new_alpha must be a value between 0.5 and 1.0</p> <p><span class="bold"><strong>Effects</strong></span>: Establishes a new balance factor (alpha) and rebalances the tree if the new balance factor is stricter (less) than the old factor.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> @@ -890,74 +690,26 @@ </ol></div> </div> <div class="refsect2"> -<a name="id-1.3.20.42.33.4.4.7"></a><h3> -<a name="idm45971709903536-bb"></a><code class="computeroutput">sgtree</code> public static functions</h3> +<a name="id-1.3.18.42.33.4.4.7"></a><h3> +<a name="idm42697-bb"></a><code class="computeroutput">sgtree</code> public static functions</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <a class="link" href="sgtree.html" title="Class template sgtree">sgtree</a> <span class="special">&</span> <a name="idm45971709902976-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Precondition</strong></span>: end_iterator must be a valid end iterator of the container.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the container associated to the end iterator</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Constant. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="sgtree.html" title="Class template sgtree">sgtree</a> <span class="special">&</span> -<a name="idm45971709896960-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">const_iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Precondition</strong></span>: end_iterator must be a valid end iterator of the container.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the container associated to the end iterator</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Constant. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <a class="link" href="sgtree.html" title="Class template sgtree">sgtree</a> <span class="special">&</span> <a name="idm45971709890784-bb"></a><span class="identifier">container_from_iterator</span><span class="special">(</span><span class="identifier">iterator</span> it<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Precondition</strong></span>: it must be a valid iterator of the container.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the container associated to the iterator</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="sgtree.html" title="Class template sgtree">sgtree</a> <span class="special">&</span> <a name="idm45971709884816-bb"></a><span class="identifier">container_from_iterator</span><span class="special">(</span><span class="identifier">const_iterator</span> it<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Precondition</strong></span>: it must be a valid iterator of the container.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the container associated to the iterator</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="identifier">iterator</span> <a name="idm45971709878688-bb"></a><span class="identifier">s_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 set of appropriate type. Otherwise the behavior is undefined.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns: a valid iterator i belonging to the set 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> -<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">const_iterator</span> <a name="idm45971709871600-bb"></a><span class="identifier">s_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 set of appropriate type. Otherwise the behavior is undefined.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns: a valid iterator i belonging to the set 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> -<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="keyword">void</span> <a name="idm45971709864512-bb"></a><span class="identifier">init_node</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 shall not be in a container.</p> -<p><span class="bold"><strong>Effects</strong></span>: init_node puts the hook of a value in a well-known default state.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> -<p><span class="bold"><strong>Note</strong></span>: This function puts the hook in the well-known default state used by auto_unlink and safe hooks. </p> -</li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <a class="link" href="sgtree.html" title="Class template sgtree">sgtree</a> <span class="special">&</span> <a name="idm42698-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="sgtree.html" title="Class template sgtree">sgtree</a> <span class="special">&</span> +<a name="idm42703-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">const_iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <a class="link" href="sgtree.html" title="Class template sgtree">sgtree</a> <span class="special">&</span> <a name="idm42708-bb"></a><span class="identifier">container_from_iterator</span><span class="special">(</span><span class="identifier">iterator</span> it<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="sgtree.html" title="Class template sgtree">sgtree</a> <span class="special">&</span> <a name="idm42713-bb"></a><span class="identifier">container_from_iterator</span><span class="special">(</span><span class="identifier">const_iterator</span> it<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">iterator</span> <a name="idm42718-bb"></a><span class="identifier">s_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></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">const_iterator</span> <a name="idm42722-bb"></a><span class="identifier">s_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></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm42726-bb"></a><span class="identifier">init_node</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></li> </ol></div> </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="make_sgtree.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.sgtree_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="sgtree_algorithms.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/sgtree_algorithms.html b/doc/html/boost/intrusive/sgtree_algorithms.html index 145946823e..3c160649b5 100644 --- a/doc/html/boost/intrusive/sgtree_algorithms.html +++ b/doc/html/boost/intrusive/sgtree_algorithms.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.sgtree_algorithms_hpp" title="Header <boost/intrusive/sgtree_algorithms.hpp>"> <link rel="prev" href="sgtree.html" title="Class template sgtree"> <link rel="next" href="sgtree_algorithms/insert_commit_data.html" title="Struct insert_commit_data"> +<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> @@ -29,8 +30,8 @@ <h2><span class="refentrytitle">Class template sgtree_algorithms</span></h2> <p>boost::intrusive::sgtree_algorithms</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.sgtree_algorithms_hpp" title="Header <boost/intrusive/sgtree_algorithms.hpp>">boost/intrusive/sgtree_algorithms.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.sgtree_algorithms_hpp" title="Header <boost/intrusive/sgtree_algorithms.hpp>">boost/intrusive/sgtree_algorithms.hpp</a>> </span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodeTraits<span class="special">></span> <span class="keyword">class</span> <a class="link" href="sgtree_algorithms.html" title="Class template sgtree_algorithms">sgtree_algorithms</a> <span class="special">{</span> @@ -43,102 +44,102 @@ <span class="comment">// member classes/structs/unions</span> - <span class="keyword">struct</span> <a class="link" href="sgtree_algorithms/insert_commit_data.html" title="Struct insert_commit_data">insert_commit_data</a> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">insert_commit_data</span> <span class="special">{</span> + <span class="keyword">struct</span> <a class="link" href="sgtree_algorithms/insert_commit_data.html" title="Struct insert_commit_data">insert_commit_data</a> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">bstree_algo</span><span class="special">::</span><span class="identifier">insert_commit_data</span> <span class="special">{</span> <span class="comment">// public data members</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">depth</span><span class="special">;</span> <span class="special">}</span><span class="special">;</span> - <span class="comment">// <a class="link" href="sgtree_algorithms.html#idm45971709840976-bb">public static functions</a></span> - <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="sgtree_algorithms.html#idm45971709840416-bb"><span class="identifier">get_header</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="sgtree_algorithms.html#idm45971709834768-bb"><span class="identifier">begin_node</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="sgtree_algorithms.html#idm45971709829088-bb"><span class="identifier">end_node</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="sgtree_algorithms.html#idm45971709823440-bb"><span class="identifier">swap_tree</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="sgtree_algorithms.html#idm45971709816992-bb"><span class="identifier">swap_nodes</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="sgtree_algorithms.html#idm45971709809264-bb"><span class="identifier">swap_nodes</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="sgtree_algorithms.html#idm45971709800128-bb"><span class="identifier">replace_node</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="sgtree_algorithms.html#idm45971709792560-bb"><span class="identifier">replace_node</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="sgtree_algorithms.html#idm45971709784288-bb"><span class="identifier">unlink_leftmost_without_rebalance</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">bool</span> <a class="link" href="sgtree_algorithms.html#idm45971709777200-bb"><span class="identifier">unique</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a class="link" href="sgtree_algorithms.html#idm45971709771488-bb"><span class="identifier">size</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="sgtree_algorithms.html#idm45971709765824-bb"><span class="identifier">next_node</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="sgtree_algorithms.html#idm45971709760160-bb"><span class="identifier">prev_node</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="sgtree_algorithms.html#idm45971709754464-bb"><span class="identifier">init</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="sgtree_algorithms.html#idm45971709747920-bb"><span class="identifier">init_header</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="comment">// <a class="link" href="sgtree_algorithms.html#idm42775-bb">public static functions</a></span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="sgtree_algorithms.html#idm42776-bb"><span class="identifier">get_header</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="sgtree_algorithms.html#idm42789-bb"><span class="identifier">begin_node</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="sgtree_algorithms.html#idm42802-bb"><span class="identifier">end_node</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="sgtree_algorithms.html#idm42815-bb"><span class="identifier">swap_tree</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="sgtree_algorithms.html#idm42830-bb"><span class="identifier">swap_nodes</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="sgtree_algorithms.html#idm42848-bb"><span class="identifier">swap_nodes</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="sgtree_algorithms.html#idm42870-bb"><span class="identifier">replace_node</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="sgtree_algorithms.html#idm42887-bb"><span class="identifier">replace_node</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="sgtree_algorithms.html#idm42906-bb"><span class="identifier">unlink_leftmost_without_rebalance</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">bool</span> <a class="link" href="sgtree_algorithms.html#idm42922-bb"><span class="identifier">unique</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a class="link" href="sgtree_algorithms.html#idm42935-bb"><span class="identifier">size</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="sgtree_algorithms.html#idm42948-bb"><span class="identifier">next_node</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="sgtree_algorithms.html#idm42961-bb"><span class="identifier">prev_node</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="sgtree_algorithms.html#idm42974-bb"><span class="identifier">init</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="sgtree_algorithms.html#idm42989-bb"><span class="identifier">init_header</span></a><span class="special">(</span><span class="identifier">node_ptr</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> AlphaByMaxSize<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a class="link" href="sgtree_algorithms.html#idm45971709741344-bb"><span class="identifier">erase</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">AlphaByMaxSize</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="sgtree_algorithms.html#idm43004-bb"><span class="identifier">erase</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">AlphaByMaxSize</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">static</span> <span class="keyword">void</span> <a class="link" href="sgtree_algorithms.html#idm45971709732304-bb"><span class="identifier">clone</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</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">static</span> <span class="keyword">void</span> <a class="link" href="sgtree_algorithms.html#idm43027-bb"><span class="identifier">clone</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</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> Disposer<span class="special">></span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="sgtree_algorithms.html#idm45971709721280-bb"><span class="identifier">clear_and_dispose</span></a><span class="special">(</span><span class="identifier">node_ptr</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">static</span> <span class="keyword">void</span> <a class="link" href="sgtree_algorithms.html#idm43053-bb"><span class="identifier">clear_and_dispose</span></a><span class="special">(</span><span class="identifier">node_ptr</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> KeyType<span class="special">,</span> <span class="keyword">typename</span> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a class="link" href="sgtree_algorithms.html#idm45971709713424-bb"><span class="identifier">lower_bound</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><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">KeyNodePtrCompare</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="sgtree_algorithms.html#idm43071-bb"><span class="identifier">lower_bound</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><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">KeyNodePtrCompare</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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a class="link" href="sgtree_algorithms.html#idm45971709704960-bb"><span class="identifier">upper_bound</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><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">KeyNodePtrCompare</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="sgtree_algorithms.html#idm43091-bb"><span class="identifier">upper_bound</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><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">KeyNodePtrCompare</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> KeyNodePtrCompare<span class="special">></span> - <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="sgtree_algorithms.html#idm45971709696496-bb"><span class="identifier">find</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><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">KeyNodePtrCompare</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="sgtree_algorithms.html#idm43111-bb"><span class="identifier">find</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><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">KeyNodePtrCompare</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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span> <span class="special">></span> - <a class="link" href="sgtree_algorithms.html#idm45971709688032-bb"><span class="identifier">equal_range</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><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">KeyNodePtrCompare</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="sgtree_algorithms.html#idm43131-bb"><span class="identifier">equal_range</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><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">KeyNodePtrCompare</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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span> <span class="special">></span> - <a class="link" href="sgtree_algorithms.html#idm45971709679440-bb"><span class="identifier">bounded_range</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> + <a class="link" href="sgtree_algorithms.html#idm43151-bb"><span class="identifier">bounded_range</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><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">KeyNodePtrCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> - <a class="link" href="sgtree_algorithms.html#idm45971709666304-bb"><span class="identifier">count</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><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">KeyNodePtrCompare</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="sgtree_algorithms.html#idm43183-bb"><span class="identifier">count</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><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">KeyNodePtrCompare</span><span class="special">)</span><span class="special">;</span> <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodePtrCompare<span class="special">,</span> <span class="keyword">typename</span> H_Alpha<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a class="link" href="sgtree_algorithms.html#idm45971709657888-bb"><span class="identifier">insert_equal_upper_bound</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">NodePtrCompare</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">,</span> + <a class="link" href="sgtree_algorithms.html#idm43203-bb"><span class="identifier">insert_equal_upper_bound</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">NodePtrCompare</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">,</span> <span class="identifier">H_Alpha</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</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> NodePtrCompare<span class="special">,</span> <span class="keyword">typename</span> H_Alpha<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a class="link" href="sgtree_algorithms.html#idm45971709647376-bb"><span class="identifier">insert_equal_lower_bound</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">NodePtrCompare</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">,</span> + <a class="link" href="sgtree_algorithms.html#idm43229-bb"><span class="identifier">insert_equal_lower_bound</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">NodePtrCompare</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">,</span> <span class="identifier">H_Alpha</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</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> NodePtrCompare<span class="special">,</span> <span class="keyword">typename</span> H_Alpha<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a class="link" href="sgtree_algorithms.html#idm45971709636864-bb"><span class="identifier">insert_equal</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">NodePtrCompare</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">,</span> + <a class="link" href="sgtree_algorithms.html#idm43255-bb"><span class="identifier">insert_equal</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">NodePtrCompare</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">,</span> <span class="identifier">H_Alpha</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</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> H_Alpha<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a class="link" href="sgtree_algorithms.html#idm45971709625472-bb"><span class="identifier">insert_before</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">,</span> <span class="identifier">H_Alpha</span><span class="special">,</span> + <a class="link" href="sgtree_algorithms.html#idm43283-bb"><span class="identifier">insert_before</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">,</span> <span class="identifier">H_Alpha</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</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> H_Alpha<span class="special">></span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="sgtree_algorithms.html#idm45971709614592-bb"><span class="identifier">push_back</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">,</span> <span class="identifier">H_Alpha</span><span class="special">,</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="sgtree_algorithms.html#idm43310-bb"><span class="identifier">push_back</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">,</span> <span class="identifier">H_Alpha</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <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> H_Alpha<span class="special">></span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="sgtree_algorithms.html#idm45971709604256-bb"><span class="identifier">push_front</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">,</span> <span class="identifier">H_Alpha</span><span class="special">,</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="sgtree_algorithms.html#idm43335-bb"><span class="identifier">push_front</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">,</span> <span class="identifier">H_Alpha</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <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> KeyType<span class="special">,</span> <span class="keyword">typename</span> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="keyword">bool</span> <span class="special">></span> - <a class="link" href="sgtree_algorithms.html#idm45971709593920-bb"><span class="identifier">insert_unique_check</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><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">KeyNodePtrCompare</span><span class="special">,</span> + <a class="link" href="sgtree_algorithms.html#idm43360-bb"><span class="identifier">insert_unique_check</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><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">KeyNodePtrCompare</span><span class="special">,</span> <a class="link" href="sgtree_algorithms/insert_commit_data.html" title="Struct insert_commit_data">insert_commit_data</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> KeyType<span class="special">,</span> <span class="keyword">typename</span> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="keyword">bool</span> <span class="special">></span> - <a class="link" href="sgtree_algorithms.html#idm45971709581056-bb"><span class="identifier">insert_unique_check</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> + <a class="link" href="sgtree_algorithms.html#idm43374-bb"><span class="identifier">insert_unique_check</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><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">KeyNodePtrCompare</span><span class="special">,</span> <a class="link" href="sgtree_algorithms/insert_commit_data.html" title="Struct insert_commit_data">insert_commit_data</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> H_Alpha<span class="special">></span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="sgtree_algorithms.html#idm45971709567200-bb"><span class="identifier">insert_unique_commit</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="sgtree_algorithms.html#idm43390-bb"><span class="identifier">insert_unique_commit</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="sgtree_algorithms/insert_commit_data.html" title="Struct insert_commit_data">insert_commit_data</a> <span class="special">&</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">,</span> <span class="identifier">H_Alpha</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</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> NodePtrCompare<span class="special">,</span> <span class="keyword">typename</span> H_Alpha<span class="special">,</span> <span class="keyword">typename</span> AlphaByMaxSize<span class="special">></span> - <span class="keyword">static</span> <span class="keyword">bool</span> <a class="link" href="sgtree_algorithms.html#idm45971709555712-bb"><span class="identifier">transfer_unique</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">NodePtrCompare</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">,</span> + <span class="keyword">static</span> <span class="keyword">bool</span> <a class="link" href="sgtree_algorithms.html#idm43407-bb"><span class="identifier">transfer_unique</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">NodePtrCompare</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">H_Alpha</span><span class="special">,</span> <span class="identifier">AlphaByMaxSize</span><span class="special">)</span><span class="special">;</span> <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodePtrCompare<span class="special">,</span> <span class="keyword">typename</span> H_Alpha<span class="special">,</span> <span class="keyword">typename</span> AlphaByMaxSize<span class="special">></span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="sgtree_algorithms.html#idm45971709541104-bb"><span class="identifier">transfer_equal</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">NodePtrCompare</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">,</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="sgtree_algorithms.html#idm43444-bb"><span class="identifier">transfer_equal</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">NodePtrCompare</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">H_Alpha</span><span class="special">,</span> <span class="identifier">AlphaByMaxSize</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">bool</span> <a class="link" href="sgtree_algorithms.html#idm45971709527424-bb"><span class="identifier">is_header</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="sgtree_algorithms.html#idm45971709521776-bb"><span class="identifier">rebalance</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">bool</span> <a class="link" href="sgtree_algorithms.html#idm43479-bb"><span class="identifier">is_header</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="sgtree_algorithms.html#idm43492-bb"><span class="identifier">rebalance</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</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.34.3.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.34.3.4"></a><h2>Description</h2> <p><a class="link" href="sgtree_algorithms.html" title="Class template sgtree_algorithms">sgtree_algorithms</a> is configured with a NodeTraits class, which encapsulates the information about the node to be manipulated. NodeTraits must support the following interface:</p> <p><span class="bold"><strong>Typedefs</strong></span>:</p> <p><code class="computeroutput">node</code>: The type of the node that forms the binary search tree</p> @@ -152,195 +153,195 @@ <p><code class="computeroutput">static node_ptr get_right(const_node_ptr n);</code></p> <p><code class="computeroutput">static void set_right(node_ptr n, node_ptr right);</code> </p> <div class="refsect2"> -<a name="id-1.3.20.42.34.3.4.14"></a><h3> -<a name="idm45971709840976-bb"></a><code class="computeroutput">sgtree_algorithms</code> public static functions</h3> +<a name="id-1.3.18.42.34.3.4.14"></a><h3> +<a name="idm42775-bb"></a><code class="computeroutput">sgtree_algorithms</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">node_ptr</span> <a name="idm45971709840416-bb"></a><span class="identifier">get_header</span><span class="special">(</span><span class="identifier">const_node_ptr</span> n<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: 'node' is a node of the tree or a header node.</p> +<pre class="literallayout"><span class="keyword">static</span> <span class="identifier">node_ptr</span> <a name="idm42776-bb"></a><span class="identifier">get_header</span><span class="special">(</span><span class="identifier">const_node_ptr</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 a node of the tree or a header node.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns the header of the tree.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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">node_ptr</span> <a name="idm45971709834768-bb"></a><span class="identifier">begin_node</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<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">node_ptr</span> <a name="idm42789-bb"></a><span class="identifier">begin_node</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: 'header' is the header node of a tree.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns the first node of the tree, the header if the tree is empty.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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">node_ptr</span> <a name="idm45971709829088-bb"></a><span class="identifier">end_node</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<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">node_ptr</span> <a name="idm42802-bb"></a><span class="identifier">end_node</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: 'header' is the header node of a tree.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns the header of the tree.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="keyword">void</span> <a name="idm45971709823440-bb"></a><span class="identifier">swap_tree</span><span class="special">(</span><span class="identifier">node_ptr</span> header1<span class="special">,</span> <span class="identifier">node_ptr</span> header2<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm42815-bb"></a><span class="identifier">swap_tree</span><span class="special">(</span><span class="identifier">node_ptr</span> header1<span class="special">,</span> <span class="identifier">node_ptr</span> header2<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: header1 and header2 must be the header nodes of two trees.</p> <p><span class="bold"><strong>Effects</strong></span>: Swaps two trees. After the function header1 will contain links to the second tree and header2 will have links to the first tree.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="keyword">void</span> <a name="idm45971709816992-bb"></a><span class="identifier">swap_nodes</span><span class="special">(</span><span class="identifier">node_ptr</span> node1<span class="special">,</span> <span class="identifier">node_ptr</span> node2<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm42830-bb"></a><span class="identifier">swap_nodes</span><span class="special">(</span><span class="identifier">node_ptr</span> node1<span class="special">,</span> <span class="identifier">node_ptr</span> node2<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: node1 and node2 can't be header nodes of two trees.</p> <p><span class="bold"><strong>Effects</strong></span>: Swaps two nodes. After the function node1 will be inserted in the position node2 before the function. node2 will be inserted in the position node1 had before the function.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Note</strong></span>: This function will break container ordering invariants if node1 and node2 are not equivalent according to the ordering rules.</p> -<p>Experimental function </p> +<p>Experimental function </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971709809264-bb"></a><span class="identifier">swap_nodes</span><span class="special">(</span><span class="identifier">node_ptr</span> node1<span class="special">,</span> <span class="identifier">node_ptr</span> header1<span class="special">,</span> <span class="identifier">node_ptr</span> node2<span class="special">,</span> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm42848-bb"></a><span class="identifier">swap_nodes</span><span class="special">(</span><span class="identifier">node_ptr</span> node1<span class="special">,</span> <span class="identifier">node_ptr</span> header1<span class="special">,</span> <span class="identifier">node_ptr</span> node2<span class="special">,</span> <span class="identifier">node_ptr</span> header2<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: node1 and node2 can't be header nodes of two trees with header header1 and header2.</p> <p><span class="bold"><strong>Effects</strong></span>: Swaps two nodes. After the function node1 will be inserted in the position node2 before the function. node2 will be inserted in the position node1 had before the function.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Note</strong></span>: This function will break container ordering invariants if node1 and node2 are not equivalent according to the ordering rules.</p> -<p>Experimental function </p> +<p>Experimental function </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971709800128-bb"></a><span class="identifier">replace_node</span><span class="special">(</span><span class="identifier">node_ptr</span> node_to_be_replaced<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm42870-bb"></a><span class="identifier">replace_node</span><span class="special">(</span><span class="identifier">node_ptr</span> node_to_be_replaced<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: node_to_be_replaced must be inserted in a tree and new_node must not be inserted in a tree.</p> <p><span class="bold"><strong>Effects</strong></span>: Replaces node_to_be_replaced in its position in the tree with new_node. The tree does not need to be rebalanced</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: This function will break container ordering invariants if new_node is not equivalent to node_to_be_replaced according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing and comparison is needed. Experimental function </p> +<p><span class="bold"><strong>Note</strong></span>: This function will break container ordering invariants if new_node is not equivalent to node_to_be_replaced according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing and comparison is needed. Experimental function </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971709792560-bb"></a><span class="identifier">replace_node</span><span class="special">(</span><span class="identifier">node_ptr</span> node_to_be_replaced<span class="special">,</span> <span class="identifier">node_ptr</span> header<span class="special">,</span> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm42887-bb"></a><span class="identifier">replace_node</span><span class="special">(</span><span class="identifier">node_ptr</span> node_to_be_replaced<span class="special">,</span> <span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: node_to_be_replaced must be inserted in a tree with header "header" and new_node must not be inserted in a tree.</p> <p><span class="bold"><strong>Effects</strong></span>: Replaces node_to_be_replaced in its position in the tree with new_node. The tree does not need to be rebalanced</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: This function will break container ordering invariants if new_node is not equivalent to node_to_be_replaced according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing or comparison is needed. Experimental function </p> +<p><span class="bold"><strong>Note</strong></span>: This function will break container ordering invariants if new_node is not equivalent to node_to_be_replaced according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing or comparison is needed. Experimental function </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="identifier">node_ptr</span> <a name="idm45971709784288-bb"></a><span class="identifier">unlink_leftmost_without_rebalance</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre>static void unlink(node_ptr node) BOOST_NOEXCEPT; <p><span class="bold"><strong>Requires</strong></span>: header is the header of a tree.</p> +<pre class="literallayout"><span class="keyword">static</span> <span class="identifier">node_ptr</span> <a name="idm42906-bb"></a><span class="identifier">unlink_leftmost_without_rebalance</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre>static void unlink(node_ptr n) BOOST_NOEXCEPT; <p><span class="bold"><strong>Requires</strong></span>: header is the header of a tree.</p> <p><span class="bold"><strong>Effects</strong></span>: Unlinks the leftmost node from the tree, and updates the header link to the new leftmost node.</p> <p><span class="bold"><strong>Complexity</strong></span>: Average complexity is constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Notes</strong></span>: This function breaks the tree and the tree can only be used for more unlink_leftmost_without_rebalance calls. This function is normally used to achieve a step by step controlled destruction of the tree. </p> +<p><span class="bold"><strong>Notes</strong></span>: This function breaks the tree and the tree can only be used for more unlink_leftmost_without_rebalance calls. This function is normally used to achieve a step by step controlled destruction of the tree. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">bool</span> <a name="idm45971709777200-bb"></a><span class="identifier">unique</span><span class="special">(</span><span class="identifier">const_node_ptr</span> node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: 'node' is a node of the tree or a node initialized by init(...) or init_node.</p> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">bool</span> <a name="idm42922-bb"></a><span class="identifier">unique</span><span class="special">(</span><span class="identifier">const_node_ptr</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 a node of the tree or a node initialized by init(...) or init_node.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns true if the node is initialized by init() or init_node().</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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">std</span><span class="special">::</span><span class="identifier">size_t</span> <a name="idm45971709771488-bb"></a><span class="identifier">size</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: node is a node of the tree but it's not the header.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns the number of nodes of the subtree.</p> +<pre class="literallayout"><span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a name="idm42935-bb"></a><span class="identifier">size</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<p><span class="bold"><strong>Requires</strong></span>: 'header' the header of the tree.</p> +<p><span class="bold"><strong>Effects</strong></span>: Returns the number of nodes of the tree.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear time.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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">node_ptr</span> <a name="idm45971709765824-bb"></a><span class="identifier">next_node</span><span class="special">(</span><span class="identifier">node_ptr</span> node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: 'node' is a node from the tree except the header.</p> +<pre class="literallayout"><span class="keyword">static</span> <span class="identifier">node_ptr</span> <a name="idm42948-bb"></a><span class="identifier">next_node</span><span class="special">(</span><span class="identifier">node_ptr</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 a node from the tree except the header.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns the next node of the tree.</p> <p><span class="bold"><strong>Complexity</strong></span>: Average constant time.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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">node_ptr</span> <a name="idm45971709760160-bb"></a><span class="identifier">prev_node</span><span class="special">(</span><span class="identifier">node_ptr</span> node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: 'node' is a node from the tree except the leftmost node.</p> +<pre class="literallayout"><span class="keyword">static</span> <span class="identifier">node_ptr</span> <a name="idm42961-bb"></a><span class="identifier">prev_node</span><span class="special">(</span><span class="identifier">node_ptr</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 a node from the tree except the leftmost node.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns the previous node of the tree.</p> <p><span class="bold"><strong>Complexity</strong></span>: Average constant time.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="keyword">void</span> <a name="idm45971709754464-bb"></a><span class="identifier">init</span><span class="special">(</span><span class="identifier">node_ptr</span> node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: 'node' must not be part of any tree.</p> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm42974-bb"></a><span class="identifier">init</span><span class="special">(</span><span class="identifier">node_ptr</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' must not be part of any tree.</p> <p><span class="bold"><strong>Effects</strong></span>: After the function unique(node) == true.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Nodes</strong></span>: If node is inserted in a tree, this function corrupts the tree. </p> +<p><span class="bold"><strong>Nodes</strong></span>: If node is inserted in a tree, this function corrupts the tree. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971709747920-bb"></a><span class="identifier">init_header</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: node must not be part of any tree.</p> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm42989-bb"></a><span class="identifier">init_header</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<p><span class="bold"><strong>Requires</strong></span>: header must not be part of any tree.</p> <p><span class="bold"><strong>Effects</strong></span>: Initializes the header to represent an empty tree. unique(header) == true.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Nodes</strong></span>: If node is inserted in a tree, this function corrupts the tree. </p> +<p><span class="bold"><strong>Nodes</strong></span>: If header is inserted in a tree, this function corrupts the tree. </p> </li> <li class="listitem"> <pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> AlphaByMaxSize<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a name="idm45971709741344-bb"></a><span class="identifier">erase</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> z<span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> tree_size<span class="special">,</span> + <a name="idm43004-bb"></a><span class="identifier">erase</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> z<span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> tree_size<span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="special">&</span> max_tree_size<span class="special">,</span> <span class="identifier">AlphaByMaxSize</span> alpha_by_maxsize<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: header must be the header of a tree, z a node of that tree and z != header.</p> <p><span class="bold"><strong>Effects</strong></span>: Erases node "z" from the tree with header "header".</p> <p><span class="bold"><strong>Complexity</strong></span>: Amortized constant time.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </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">static</span> <span class="keyword">void</span> <a name="idm45971709732304-bb"></a><span class="identifier">clone</span><span class="special">(</span><span class="identifier">const_node_ptr</span> source_header<span class="special">,</span> <span class="identifier">node_ptr</span> target_header<span class="special">,</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a name="idm43027-bb"></a><span class="identifier">clone</span><span class="special">(</span><span class="identifier">const_node_ptr</span> source_header<span class="special">,</span> <span class="identifier">node_ptr</span> target_header<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>: "cloner" must be a function object taking a node_ptr and returning a new cloned node of it. "disposer" must take a node_ptr and shouldn't throw.</p> -<p><span class="bold"><strong>Effects</strong></span>: First empties target tree calling <code class="computeroutput">void disposer::operator()(const node_ptr &)</code> for every node of the tree except the header.</p> -<p>Then, duplicates the entire tree pointed by "source_header" cloning each source node with <code class="computeroutput">node_ptr Cloner::operator()(const node_ptr &)</code> to obtain the nodes of the target tree. If "cloner" throws, the cloned target nodes are disposed using <code class="computeroutput">void disposer(const node_ptr &)</code>.</p> +<p><span class="bold"><strong>Effects</strong></span>: First empties target tree calling <code class="computeroutput">void disposer::operator()(node_ptr)</code> for every node of the tree except the header.</p> +<p>Then, duplicates the entire tree pointed by "source_header" cloning each source node with <code class="computeroutput">node_ptr Cloner::operator()(node_ptr)</code> to obtain the nodes of the target tree. If "cloner" throws, the cloned target nodes are disposed using <code class="computeroutput">void disposer(node_ptr )</code>.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to the number of element of the source tree plus the number of elements of tree target tree when calling this function.</p> -<p><span class="bold"><strong>Throws</strong></span>: If cloner functor throws. If this happens target nodes are disposed. </p> +<p><span class="bold"><strong>Throws</strong></span>: If cloner functor throws. If this happens target nodes are disposed. </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">static</span> <span class="keyword">void</span> <a name="idm45971709721280-bb"></a><span class="identifier">clear_and_dispose</span><span class="special">(</span><span class="identifier">node_ptr</span> header<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">static</span> <span class="keyword">void</span> <a name="idm43053-bb"></a><span class="identifier">clear_and_dispose</span><span class="special">(</span><span class="identifier">node_ptr</span> header<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" must be an object function taking a node_ptr parameter and shouldn't throw.</p> -<p><span class="bold"><strong>Effects</strong></span>: Empties the target tree calling <code class="computeroutput">void disposer::operator()(const node_ptr &)</code> for every node of the tree except the header.</p> +<p><span class="bold"><strong>Effects</strong></span>: Empties the target tree calling <code class="computeroutput">void disposer::operator()(node_ptr)</code> for every node of the tree except the header.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to the number of element of the source tree plus the. number of elements of tree target tree when calling this function.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a name="idm45971709713424-bb"></a><span class="identifier">lower_bound</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> key<span class="special">,</span> + <a name="idm43071-bb"></a><span class="identifier">lower_bound</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<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">KeyNodePtrCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns a node_ptr to the first element that is not less than "key" according to "comp" or "header" if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If "comp" 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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a name="idm45971709704960-bb"></a><span class="identifier">upper_bound</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> key<span class="special">,</span> + <a name="idm43091-bb"></a><span class="identifier">upper_bound</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<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">KeyNodePtrCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns a node_ptr to the first element that is greater than "key" according to "comp" or "header" if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If "comp" 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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a name="idm45971709696496-bb"></a><span class="identifier">find</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<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">KeyNodePtrCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <a name="idm43111-bb"></a><span class="identifier">find</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<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">KeyNodePtrCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns a node_ptr to the first element that is equivalent to "key" according to "comp" or "header" if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If "comp" 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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span> <span class="special">></span> - <a name="idm45971709688032-bb"></a><span class="identifier">equal_range</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> key<span class="special">,</span> + <a name="idm43131-bb"></a><span class="identifier">equal_range</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<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">KeyNodePtrCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns an a pair of node_ptr delimiting a range containing all elements that are equivalent to "key" according to "comp" or an empty range that indicates the position where those elements would be if there are no equivalent elements.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If "comp" 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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span> <span class="special">></span> - <a name="idm45971709679440-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> + <a name="idm43151-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> <span class="identifier">KeyNodePtrCompare</span> comp<span class="special">,</span> <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs. 'lower_key' must not be greater than 'upper_key' according to 'comp'. If 'lower_key' == 'upper_key', ('left_closed' || 'right_closed') must be true.</p> @@ -350,129 +351,102 @@ <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> <p><span class="bold"><strong>Throws</strong></span>: If "comp" throws.</p> <p><span class="bold"><strong>Note</strong></span>: This function can be more efficient than calling upper_bound and lower_bound for lower_key and upper_key.</p> -<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change. </p> +<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change. </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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> - <a name="idm45971709666304-bb"></a><span class="identifier">count</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<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">KeyNodePtrCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <a name="idm43183-bb"></a><span class="identifier">count</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<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">KeyNodePtrCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns the number of elements with a key equivalent to "key" according to "comp".</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws. </p> </li> <li class="listitem"> <pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodePtrCompare<span class="special">,</span> <span class="keyword">typename</span> H_Alpha<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a name="idm45971709657888-bb"></a><span class="identifier">insert_equal_upper_bound</span><span class="special">(</span><span class="identifier">node_ptr</span> h<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">,</span> <span class="identifier">NodePtrCompare</span> comp<span class="special">,</span> + <a name="idm43203-bb"></a><span class="identifier">insert_equal_upper_bound</span><span class="special">(</span><span class="identifier">node_ptr</span> h<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">,</span> <span class="identifier">NodePtrCompare</span> comp<span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> tree_size<span class="special">,</span> <span class="identifier">H_Alpha</span> h_alpha<span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="special">&</span> max_tree_size<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "h" must be the header node of a tree. NodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. NodePtrCompare compares two node_ptrs.</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts new_node into the tree before the upper bound according to "comp".</p> <p><span class="bold"><strong>Complexity</strong></span>: Average complexity for insert element is at most logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws. </p> </li> <li class="listitem"> <pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodePtrCompare<span class="special">,</span> <span class="keyword">typename</span> H_Alpha<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a name="idm45971709647376-bb"></a><span class="identifier">insert_equal_lower_bound</span><span class="special">(</span><span class="identifier">node_ptr</span> h<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">,</span> <span class="identifier">NodePtrCompare</span> comp<span class="special">,</span> + <a name="idm43229-bb"></a><span class="identifier">insert_equal_lower_bound</span><span class="special">(</span><span class="identifier">node_ptr</span> h<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">,</span> <span class="identifier">NodePtrCompare</span> comp<span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> tree_size<span class="special">,</span> <span class="identifier">H_Alpha</span> h_alpha<span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="special">&</span> max_tree_size<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "h" must be the header node of a tree. NodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. NodePtrCompare compares two node_ptrs.</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts new_node into the tree before the lower bound according to "comp".</p> <p><span class="bold"><strong>Complexity</strong></span>: Average complexity for insert element is at most logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws. </p> </li> <li class="listitem"> <pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodePtrCompare<span class="special">,</span> <span class="keyword">typename</span> H_Alpha<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a name="idm45971709636864-bb"></a><span class="identifier">insert_equal</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> hint<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">,</span> + <a name="idm43255-bb"></a><span class="identifier">insert_equal</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> hint<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">,</span> <span class="identifier">NodePtrCompare</span> comp<span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> tree_size<span class="special">,</span> <span class="identifier">H_Alpha</span> h_alpha<span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="special">&</span> max_tree_size<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "header" must be the header node of a tree. NodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. NodePtrCompare compares two node_ptrs. "hint" is node from the "header"'s tree.</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts new_node into the tree, using "hint" as a hint to where it will be inserted. If "hint" is the upper_bound the insertion takes constant time (two comparisons in the worst case).</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic in general, but it is amortized constant time if new_node is inserted immediately before "hint".</p> -<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws. </p> </li> <li class="listitem"> <pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> H_Alpha<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a name="idm45971709625472-bb"></a><span class="identifier">insert_before</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> pos<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">,</span> + <a name="idm43283-bb"></a><span class="identifier">insert_before</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> pos<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> tree_size<span class="special">,</span> <span class="identifier">H_Alpha</span> h_alpha<span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="special">&</span> max_tree_size<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "header" must be the header node of a tree. "pos" must be a valid iterator or header (end) node. "pos" must be an iterator pointing to the successor to "new_node" once inserted according to the order of already inserted nodes. This function does not check "pos" and this precondition must be guaranteed by the caller.</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts new_node into the tree before "pos".</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant-time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: If "pos" is not the successor of the newly inserted "new_node" tree invariants might be broken. </p> +<p><span class="bold"><strong>Note</strong></span>: If "pos" is not the successor of the newly inserted "new_node" tree invariants might be broken. </p> </li> <li class="listitem"> <pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> H_Alpha<span class="special">></span> - <span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971709614592-bb"></a><span class="identifier">push_back</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">,</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a name="idm43310-bb"></a><span class="identifier">push_back</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> tree_size<span class="special">,</span> <span class="identifier">H_Alpha</span> h_alpha<span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="special">&</span> max_tree_size<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "header" must be the header node of a tree. "new_node" must be, according to the used ordering no less than the greatest inserted key.</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts new_node into the tree before "pos".</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant-time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: If "new_node" is less than the greatest inserted key tree invariants are broken. This function is slightly faster than using "insert_before". </p> +<p><span class="bold"><strong>Note</strong></span>: If "new_node" is less than the greatest inserted key tree invariants are broken. This function is slightly faster than using "insert_before". </p> </li> <li class="listitem"> <pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> H_Alpha<span class="special">></span> - <span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971709604256-bb"></a><span class="identifier">push_front</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">,</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a name="idm43335-bb"></a><span class="identifier">push_front</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> tree_size<span class="special">,</span> <span class="identifier">H_Alpha</span> h_alpha<span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="special">&</span> max_tree_size<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "header" must be the header node of a tree. "new_node" must be, according to the used ordering, no greater than the lowest inserted key.</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts new_node into the tree before "pos".</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant-time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: If "new_node" is greater than the lowest inserted key tree invariants are broken. This function is slightly faster than using "insert_before". </p> +<p><span class="bold"><strong>Note</strong></span>: If "new_node" is greater than the lowest inserted key tree invariants are broken. This function is slightly faster than using "insert_before". </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> KeyNodePtrCompare<span class="special">></span> +<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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="keyword">bool</span> <span class="special">></span> - <a name="idm45971709593920-bb"></a><span class="identifier">insert_unique_check</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> key<span class="special">,</span> + <a name="idm43360-bb"></a><span class="identifier">insert_unique_check</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<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">KeyNodePtrCompare</span> comp<span class="special">,</span> - <a class="link" href="sgtree_algorithms/insert_commit_data.html" title="Struct insert_commit_data">insert_commit_data</a> <span class="special">&</span> commit_data<span class="special">)</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. NodePtrCompare compares KeyType with a node_ptr.</p> -<p><span class="bold"><strong>Effects</strong></span>: Checks if there is an equivalent node to "key" in the tree according to "comp" and obtains the needed information to realize a constant-time node insertion if there is no equivalent node.</p> -<p><span class="bold"><strong>Returns</strong></span>: If there is an equivalent value returns a pair containing a node_ptr to the already present node and false. If there is not equivalent key can be inserted returns true in the returned pair's boolean and fills "commit_data" that is meant to be used with the "insert_commit" function to achieve a constant-time insertion function.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Average complexity is at most logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws.</p> -<p><span class="bold"><strong>Notes</strong></span>: This function is used to improve performance when constructing a node is expensive and the user does not want to have two equivalent nodes in the tree: if there is an equivalent value the constructed object must be discarded. Many times, the part of the node that is used to impose the order is much cheaper to construct than the node and this function offers the possibility to use that part to check if the insertion will be successful.</p> -<p>If the check is successful, the user can construct the node and use "insert_commit" to insert the node in constant-time. This gives a total logarithmic complexity to the insertion: check(O(log(N)) + commit(O(1)).</p> -<p>"commit_data" remains valid for a subsequent "insert_unique_commit" only if no more objects are inserted or erased from the set. </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> KeyNodePtrCompare<span class="special">></span> + <a class="link" href="sgtree_algorithms/insert_commit_data.html" title="Struct insert_commit_data">insert_commit_data</a> <span class="special">&</span> commit_data<span class="special">)</span><span class="special">;</span></pre></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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="keyword">bool</span> <span class="special">></span> - <a name="idm45971709581056-bb"></a><span class="identifier">insert_unique_check</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> hint<span class="special">,</span> + <a name="idm43374-bb"></a><span class="identifier">insert_unique_check</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> hint<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">KeyNodePtrCompare</span> comp<span class="special">,</span> - <a class="link" href="sgtree_algorithms/insert_commit_data.html" title="Struct insert_commit_data">insert_commit_data</a> <span class="special">&</span> commit_data<span class="special">)</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. NodePtrCompare compares KeyType with a node_ptr. "hint" is node from the "header"'s tree.</p> -<p><span class="bold"><strong>Effects</strong></span>: Checks if there is an equivalent node to "key" in the tree according to "comp" using "hint" as a hint to where it should be inserted and obtains the needed information to realize a constant-time node insertion if there is no equivalent node. If "hint" is the upper_bound the function has constant time complexity (two comparisons in the worst case).</p> -<p><span class="bold"><strong>Returns</strong></span>: If there is an equivalent value returns a pair containing a node_ptr to the already present node and false. If there is not equivalent key can be inserted returns true in the returned pair's boolean and fills "commit_data" that is meant to be used with the "insert_commit" function to achieve a constant-time insertion function.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Average complexity is at most logarithmic, but it is amortized constant time if new_node should be inserted immediately before "hint".</p> -<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws.</p> -<p><span class="bold"><strong>Notes</strong></span>: This function is used to improve performance when constructing a node is expensive and the user does not want to have two equivalent nodes in the tree: if there is an equivalent value the constructed object must be discarded. Many times, the part of the node that is used to impose the order is much cheaper to construct than the node and this function offers the possibility to use that part to check if the insertion will be successful.</p> -<p>If the check is successful, the user can construct the node and use "insert_commit" to insert the node in constant-time. This gives a total logarithmic complexity to the insertion: check(O(log(N)) + commit(O(1)).</p> -<p>"commit_data" remains valid for a subsequent "insert_unique_commit" only if no more objects are inserted or erased from the set. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> H_Alpha<span class="special">></span> - <span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971709567200-bb"></a><span class="identifier">insert_unique_commit</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> new_value<span class="special">,</span> + <a class="link" href="sgtree_algorithms/insert_commit_data.html" title="Struct insert_commit_data">insert_commit_data</a> <span class="special">&</span> commit_data<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> H_Alpha<span class="special">></span> + <span class="keyword">static</span> <span class="keyword">void</span> <a name="idm43390-bb"></a><span class="identifier">insert_unique_commit</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> new_value<span class="special">,</span> <span class="keyword">const</span> <a class="link" href="sgtree_algorithms/insert_commit_data.html" title="Struct insert_commit_data">insert_commit_data</a> <span class="special">&</span> commit_data<span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> tree_size<span class="special">,</span> <span class="identifier">H_Alpha</span> h_alpha<span class="special">,</span> - <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="special">&</span> max_tree_size<span class="special">)</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: "header" must be the header node of a tree. "commit_data" must have been obtained from a previous call to "insert_unique_check". No objects should have been inserted or erased from the set between the "insert_unique_check" that filled "commit_data" and the call to "insert_commit".</p> -<p><span class="bold"><strong>Effects</strong></span>: Inserts new_node in the set using the information obtained from the "commit_data" that a previous "insert_check" filled.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Notes</strong></span>: This function has only sense if a "insert_unique_check" has been previously executed to fill "commit_data". No value should be inserted or erased between the "insert_check" and "insert_commit" calls. </p> -</li> + <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="special">&</span> max_tree_size<span class="special">)</span><span class="special">;</span></pre></li> <li class="listitem"> <pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodePtrCompare<span class="special">,</span> <span class="keyword">typename</span> H_Alpha<span class="special">,</span> <span class="keyword">typename</span> AlphaByMaxSize<span class="special">></span> - <span class="keyword">static</span> <span class="keyword">bool</span> <a name="idm45971709555712-bb"></a><span class="identifier">transfer_unique</span><span class="special">(</span><span class="identifier">node_ptr</span> header1<span class="special">,</span> <span class="identifier">NodePtrCompare</span> comp<span class="special">,</span> + <span class="keyword">static</span> <span class="keyword">bool</span> <a name="idm43407-bb"></a><span class="identifier">transfer_unique</span><span class="special">(</span><span class="identifier">node_ptr</span> header1<span class="special">,</span> <span class="identifier">NodePtrCompare</span> comp<span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> tree1_size<span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="special">&</span> max_tree1_size<span class="special">,</span> <span class="identifier">node_ptr</span> header2<span class="special">,</span> <span class="identifier">node_ptr</span> z<span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> tree2_size<span class="special">,</span> @@ -482,11 +456,11 @@ <p><span class="bold"><strong>Effects</strong></span>: Transfers node "z" from tree1 to tree2 if tree1 does not contain a node that is equivalent to z.</p> <p><span class="bold"><strong>Returns</strong></span>: True if the node was trasferred, false otherwise.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comparison throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If the comparison throws. </p> </li> <li class="listitem"> <pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodePtrCompare<span class="special">,</span> <span class="keyword">typename</span> H_Alpha<span class="special">,</span> <span class="keyword">typename</span> AlphaByMaxSize<span class="special">></span> - <span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971709541104-bb"></a><span class="identifier">transfer_equal</span><span class="special">(</span><span class="identifier">node_ptr</span> header1<span class="special">,</span> <span class="identifier">NodePtrCompare</span> comp<span class="special">,</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a name="idm43444-bb"></a><span class="identifier">transfer_equal</span><span class="special">(</span><span class="identifier">node_ptr</span> header1<span class="special">,</span> <span class="identifier">NodePtrCompare</span> comp<span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> tree1_size<span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="special">&</span> max_tree1_size<span class="special">,</span> <span class="identifier">node_ptr</span> header2<span class="special">,</span> <span class="identifier">node_ptr</span> z<span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> tree2_size<span class="special">,</span> @@ -495,34 +469,31 @@ <p><span class="bold"><strong>Requires</strong></span>: header1 and header2 must be the headers of trees tree1 and tree2 respectively, z a non-header node of tree1. NodePtrCompare is the comparison function of tree1..</p> <p><span class="bold"><strong>Effects</strong></span>: Transfers node "z" from tree1 to tree2.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comparison throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If the comparison throws. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">bool</span> <a name="idm45971709527424-bb"></a><span class="identifier">is_header</span><span class="special">(</span><span class="identifier">const_node_ptr</span> p<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">bool</span> <a name="idm43479-bb"></a><span class="identifier">is_header</span><span class="special">(</span><span class="identifier">const_node_ptr</span> p<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: p is a node of a tree.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns true if p is the header of the tree.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="keyword">void</span> <a name="idm45971709521776-bb"></a><span class="identifier">rebalance</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm43492-bb"></a><span class="identifier">rebalance</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: p is a node of a tree.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns true if p is the header of the tree.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> </ol></div> </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="sgtree.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.sgtree_algorithms_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="sgtree_algorithms/insert_commit_data.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/sgtree_algorithms/insert_commit_data.html b/doc/html/boost/intrusive/sgtree_algorithms/insert_commit_data.html index 43c6ad557f..b49286d33c 100644 --- a/doc/html/boost/intrusive/sgtree_algorithms/insert_commit_data.html +++ b/doc/html/boost/intrusive/sgtree_algorithms/insert_commit_data.html @@ -6,9 +6,10 @@ <link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css"> <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="../sgtree_algorithms.html#id-1.3.20.42.34.3.4" title="Description"> +<link rel="up" href="../sgtree_algorithms.html#id-1.3.18.42.34.3.4" title="Description"> <link rel="prev" href="../sgtree_algorithms.html" title="Class template sgtree_algorithms"> <link rel="next" href="../make_slist.html" title="Struct template make_slist"> +<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="../sgtree_algorithms.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../sgtree_algorithms.html#id-1.3.20.42.34.3.4"><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_slist.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a> +<a accesskey="p" href="../sgtree_algorithms.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../sgtree_algorithms.html#id-1.3.18.42.34.3.4"><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_slist.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a> </div> <div class="refentry"> <a name="boost.intrusive.sgtree_algorithms.insert_commit_data"></a><div class="titlepage"></div> @@ -29,32 +30,29 @@ <h2><span class="refentrytitle">Struct insert_commit_data</span></h2> <p>boost::intrusive::sgtree_algorithms::insert_commit_data</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.sgtree_algorithms_hpp" title="Header <boost/intrusive/sgtree_algorithms.hpp>">boost/intrusive/sgtree_algorithms.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.sgtree_algorithms_hpp" title="Header <boost/intrusive/sgtree_algorithms.hpp>">boost/intrusive/sgtree_algorithms.hpp</a>> </span> -<span class="keyword">struct</span> <a class="link" href="insert_commit_data.html" title="Struct insert_commit_data">insert_commit_data</a> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">insert_commit_data</span> <span class="special">{</span> +<span class="keyword">struct</span> <a class="link" href="insert_commit_data.html" title="Struct insert_commit_data">insert_commit_data</a> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">bstree_algo</span><span class="special">::</span><span class="identifier">insert_commit_data</span> <span class="special">{</span> <span class="comment">// public data members</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">depth</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.34.3.4.15.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.34.3.4.15.4"></a><h2>Description</h2> <p>This type is the information that will be filled by insert_unique_check </p> </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="../sgtree_algorithms.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../sgtree_algorithms.html#id-1.3.20.42.34.3.4"><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_slist.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a> +<a accesskey="p" href="../sgtree_algorithms.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../sgtree_algorithms.html#id-1.3.18.42.34.3.4"><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_slist.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a> </div> </body> </html> diff --git a/doc/html/boost/intrusive/size_type.html b/doc/html/boost/intrusive/size_type.html index ff64f53b6c..d2ee671105 100644 --- a/doc/html/boost/intrusive/size_type.html +++ b/doc/html/boost/intrusive/size_type.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.options_hpp" title="Header <boost/intrusive/options.hpp>"> <link rel="prev" href="priority_of_value.html" title="Struct template priority_of_value"> <link rel="next" href="store_hash.html" title="Struct template store_hash"> +<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> @@ -29,25 +30,22 @@ <h2><span class="refentrytitle">Struct template size_type</span></h2> <p>boost::intrusive::size_type</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.options_hpp" title="Header <boost/intrusive/options.hpp>">boost/intrusive/options.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.options_hpp" title="Header <boost/intrusive/options.hpp>">boost/intrusive/options.hpp</a>> </span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> SizeType<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="size_type.html" title="Struct template size_type">size_type</a> <span class="special">{</span> <span class="special">}</span><span class="special">;</span></pre></div> <div class="refsect1"> -<a name="id-1.3.20.42.21.25.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.21.27.4"></a><h2>Description</h2> <p>This option setter specifies the type that the container will use to store its size. </p> </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="priority_of_value.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.options_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="store_hash.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/slist.html b/doc/html/boost/intrusive/slist.html index e2936f7d64..84d1f3d0a0 100644 --- a/doc/html/boost/intrusive/slist.html +++ b/doc/html/boost/intrusive/slist.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.slist_hpp" title="Header <boost/intrusive/slist.hpp>"> <link rel="prev" href="make_slist.html" title="Struct template make_slist"> <link rel="next" href="make_slist_base_hook.html" title="Struct template make_slist_base_hook"> +<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> @@ -29,8 +30,8 @@ <h2><span class="refentrytitle">Class template slist</span></h2> <p>boost::intrusive::slist</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.slist_hpp" title="Header <boost/intrusive/slist.hpp>">boost/intrusive/slist.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.slist_hpp" title="Header <boost/intrusive/slist.hpp>">boost/intrusive/slist.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="slist.html" title="Class template slist">slist</a> <span class="special">{</span> @@ -54,125 +55,125 @@ <span class="keyword">typedef</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span> <a name="boost.intrusive.slist.node_algorithms"></a><span class="identifier">node_algorithms</span><span class="special">;</span> <span class="comment">// <a class="link" href="slist.html#boost.intrusive.slistconstruct-copy-destruct">construct/copy/destruct</a></span> - <a class="link" href="slist.html#idm45971708998096-bb"><span class="identifier">slist</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">explicit</span> <a class="link" href="slist.html#idm45971708995024-bb"><span class="identifier">slist</span></a><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="special">;</span> + <a class="link" href="slist.html#idm44730-bb"><span class="identifier">slist</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">explicit</span> <a class="link" href="slist.html#idm44738-bb"><span class="identifier">slist</span></a><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="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="slist.html#idm45971708990992-bb"><span class="identifier">slist</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="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="slist.html#idm45971708983776-bb"><span class="identifier">slist</span></a><span class="special">(</span><a class="link" href="slist.html" title="Class template slist">slist</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> - <a class="link" href="slist.html" title="Class template slist">slist</a> <span class="special">&</span> <a class="link" href="slist.html#idm45971708979504-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><a class="link" href="slist.html" title="Class template slist">slist</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> - <a class="link" href="slist.html#idm45971708976688-bb"><span class="special">~</span><span class="identifier">slist</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="slist.html#idm44748-bb"><span class="identifier">slist</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="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="slist.html#idm44767-bb"><span class="identifier">slist</span></a><span class="special">(</span><a class="link" href="slist.html" title="Class template slist">slist</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="slist.html" title="Class template slist">slist</a> <span class="special">&</span> <a class="link" href="slist.html#idm44778-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><a class="link" href="slist.html" title="Class template slist">slist</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="slist.html#idm44787-bb"><span class="special">~</span><span class="identifier">slist</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> - <span class="comment">// <a class="link" href="slist.html#idm45971709481856-bb">public member functions</a></span> - <span class="keyword">void</span> <a class="link" href="slist.html#idm45971709481296-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="slist.html#idm45971709476464-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="keyword">void</span> <a class="link" href="slist.html#idm45971709469248-bb"><span class="identifier">push_front</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">void</span> <a class="link" href="slist.html#idm45971709462944-bb"><span class="identifier">push_back</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">void</span> <a class="link" href="slist.html#idm45971709456592-bb"><span class="identifier">pop_front</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="slist.html#idm45971709451840-bb"><span class="identifier">pop_front_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">reference</span> <a class="link" href="slist.html#idm45971709444656-bb"><span class="identifier">front</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="identifier">const_reference</span> <a class="link" href="slist.html#idm45971709440832-bb"><span class="identifier">front</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">reference</span> <a class="link" href="slist.html#idm45971709436992-bb"><span class="identifier">back</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="identifier">const_reference</span> <a class="link" href="slist.html#idm45971709432224-bb"><span class="identifier">back</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="slist.html#idm45971709427440-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="slist.html#idm45971709423600-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="slist.html#idm45971709419760-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="slist.html#idm45971709415920-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="slist.html#idm45971709412096-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="slist.html#idm45971709408272-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">iterator</span> <a class="link" href="slist.html#idm45971709404448-bb"><span class="identifier">before_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="slist.html#idm45971709400576-bb"><span class="identifier">before_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="slist.html#idm45971709396704-bb"><span class="identifier">cbefore_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">iterator</span> <a class="link" href="slist.html#idm45971709392832-bb"><span class="identifier">last</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="slist.html#idm45971709388096-bb"><span class="identifier">last</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="slist.html#idm45971709383360-bb"><span class="identifier">clast</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="slist.html#idm45971709378624-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">bool</span> <a class="link" href="slist.html#idm45971709373088-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="keyword">void</span> <a class="link" href="slist.html#idm45971709368368-bb"><span class="identifier">swap</span></a><span class="special">(</span><a class="link" href="slist.html" title="Class template slist">slist</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">void</span> <a class="link" href="slist.html#idm45971709362864-bb"><span class="identifier">shift_backwards</span></a><span class="special">(</span><span class="identifier">size_type</span> <span class="special">=</span> <span class="number">1</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">void</span> <a class="link" href="slist.html#idm45971709357008-bb"><span class="identifier">shift_forward</span></a><span class="special">(</span><span class="identifier">size_type</span> <span class="special">=</span> <span class="number">1</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="comment">// <a class="link" href="slist.html#idm43582-bb">public member functions</a></span> + <span class="keyword">void</span> <a class="link" href="slist.html#idm43583-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="slist.html#idm43594-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="keyword">void</span> <a class="link" href="slist.html#idm43611-bb"><span class="identifier">push_front</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">void</span> <a class="link" href="slist.html#idm43626-bb"><span class="identifier">push_back</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">void</span> <a class="link" href="slist.html#idm43641-bb"><span class="identifier">pop_front</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="slist.html#idm43652-bb"><span class="identifier">pop_front_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">reference</span> <a class="link" href="slist.html#idm43669-bb"><span class="identifier">front</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">const_reference</span> <a class="link" href="slist.html#idm43678-bb"><span class="identifier">front</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">reference</span> <a class="link" href="slist.html#idm43687-bb"><span class="identifier">back</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">const_reference</span> <a class="link" href="slist.html#idm43698-bb"><span class="identifier">back</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="slist.html#idm43709-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="slist.html#idm43718-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="slist.html#idm43727-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="slist.html#idm43736-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="slist.html#idm43745-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="slist.html#idm43754-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">iterator</span> <a class="link" href="slist.html#idm43763-bb"><span class="identifier">before_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="slist.html#idm43772-bb"><span class="identifier">before_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="slist.html#idm43781-bb"><span class="identifier">cbefore_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">iterator</span> <a class="link" href="slist.html#idm43790-bb"><span class="identifier">last</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="slist.html#idm43801-bb"><span class="identifier">last</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="slist.html#idm43812-bb"><span class="identifier">clast</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="slist.html#idm43823-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">bool</span> <a class="link" href="slist.html#idm43835-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="keyword">void</span> <a class="link" href="slist.html#idm43846-bb"><span class="identifier">swap</span></a><span class="special">(</span><a class="link" href="slist.html" title="Class template slist">slist</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="slist.html#idm43860-bb"><span class="identifier">shift_backwards</span></a><span class="special">(</span><span class="identifier">size_type</span> <span class="special">=</span> <span class="number">1</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="slist.html#idm43874-bb"><span class="identifier">shift_forward</span></a><span class="special">(</span><span class="identifier">size_type</span> <span class="special">=</span> <span class="number">1</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> Cloner<span class="special">,</span> <span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="keyword">void</span> <a class="link" href="slist.html#idm45971709351168-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="slist.html" title="Class template slist">slist</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="slist.html#idm43888-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="slist.html" title="Class template slist">slist</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="slist.html#idm45971709342224-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><a class="link" href="slist.html" title="Class template slist">slist</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="slist.html#idm45971709333440-bb"><span class="identifier">insert_after</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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">void</span> <a class="link" href="slist.html#idm43910-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><a class="link" href="slist.html" title="Class template slist">slist</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="slist.html#idm43932-bb"><span class="identifier">insert_after</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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">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="slist.html#idm45971709325504-bb"><span class="identifier">insert_after</span></a><span class="special">(</span><span class="identifier">const_iterator</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">noexcept</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="slist.html#idm45971709316864-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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">void</span> <a class="link" href="slist.html#idm43951-bb"><span class="identifier">insert_after</span></a><span class="special">(</span><span class="identifier">const_iterator</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">noexcept</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="slist.html#idm43972-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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">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="slist.html#idm45971709309728-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="identifier">const_iterator</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">noexcept</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="slist.html#idm45971709300912-bb"><span class="identifier">erase_after</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="identifier">iterator</span> <a class="link" href="slist.html#idm45971709294512-bb"><span class="identifier">erase_after</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">iterator</span> <a class="link" href="slist.html#idm45971709287312-bb"><span class="identifier">erase_after</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">size_type</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="slist.html#idm45971709278736-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="identifier">iterator</span> <a class="link" href="slist.html#idm45971709272336-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">iterator</span> <a class="link" href="slist.html#idm45971709264384-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="identifier">size_type</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="slist.html#idm43989-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="identifier">const_iterator</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">noexcept</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="slist.html#idm44010-bb"><span class="identifier">erase_after</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="identifier">iterator</span> <a class="link" href="slist.html#idm44025-bb"><span class="identifier">erase_after</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">iterator</span> <a class="link" href="slist.html#idm44042-bb"><span class="identifier">erase_after</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">size_type</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="slist.html#idm44062-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="identifier">iterator</span> <a class="link" href="slist.html#idm44077-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">iterator</span> <a class="link" href="slist.html#idm44096-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="identifier">size_type</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">iterator</span> <a class="link" href="slist.html#idm45971709255072-bb"><span class="identifier">erase_after_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="identifier">iterator</span> <a class="link" href="slist.html#idm44117-bb"><span class="identifier">erase_after_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="identifier">iterator</span> <a class="link" href="slist.html#idm45971709246256-bb"><span class="identifier">erase_after_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="identifier">iterator</span> <a class="link" href="slist.html#idm44138-bb"><span class="identifier">erase_after_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">iterator</span> <a class="link" href="slist.html#idm45971709236736-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="identifier">iterator</span> <a class="link" href="slist.html#idm44161-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="identifier">iterator</span> <a class="link" href="slist.html#idm45971709227856-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> Iterator<span class="special">></span> <span class="keyword">void</span> <a class="link" href="slist.html#idm45971709218208-bb"><span class="identifier">assign</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">iterator</span> <a class="link" href="slist.html#idm44182-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> Iterator<span class="special">></span> <span class="keyword">void</span> <a class="link" href="slist.html#idm44205-bb"><span class="identifier">assign</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> Iterator<span class="special">,</span> <span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="keyword">void</span> <a class="link" href="slist.html#idm45971709210368-bb"><span class="identifier">dispose_and_assign</span></a><span class="special">(</span><span class="identifier">Disposer</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="special">;</span> - <span class="keyword">void</span> <a class="link" href="slist.html#idm45971709200448-bb"><span class="identifier">splice_after</span></a><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">,</span> <a class="link" href="slist.html" title="Class template slist">slist</a> <span class="special">&</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">*</span> <span class="special">=</span> <span class="number">0</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">void</span> <a class="link" href="slist.html#idm45971709189888-bb"><span class="identifier">splice_after</span></a><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">,</span> <a class="link" href="slist.html" title="Class template slist">slist</a> <span class="special">&</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="keyword">void</span> <a class="link" href="slist.html#idm45971709181632-bb"><span class="identifier">splice_after</span></a><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">,</span> <a class="link" href="slist.html" title="Class template slist">slist</a> <span class="special">&</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> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">void</span> <a class="link" href="slist.html#idm45971709171904-bb"><span class="identifier">splice_after</span></a><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">,</span> <a class="link" href="slist.html" title="Class template slist">slist</a> <span class="special">&</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> + <span class="keyword">void</span> <a class="link" href="slist.html#idm44224-bb"><span class="identifier">dispose_and_assign</span></a><span class="special">(</span><span class="identifier">Disposer</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="special">;</span> + <span class="keyword">void</span> <a class="link" href="slist.html#idm44248-bb"><span class="identifier">splice_after</span></a><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">,</span> <a class="link" href="slist.html" title="Class template slist">slist</a> <span class="special">&</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">*</span> <span class="special">=</span> <span class="number">0</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="slist.html#idm44273-bb"><span class="identifier">splice_after</span></a><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">,</span> <a class="link" href="slist.html" title="Class template slist">slist</a> <span class="special">&</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="keyword">void</span> <a class="link" href="slist.html#idm44293-bb"><span class="identifier">splice_after</span></a><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">,</span> <a class="link" href="slist.html" title="Class template slist">slist</a> <span class="special">&</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> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="slist.html#idm44316-bb"><span class="identifier">splice_after</span></a><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">,</span> <a class="link" href="slist.html" title="Class template slist">slist</a> <span class="special">&</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> <span class="identifier">size_type</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">void</span> <a class="link" href="slist.html#idm45971709162240-bb"><span class="identifier">splice</span></a><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">,</span> <a class="link" href="slist.html" title="Class template slist">slist</a> <span class="special">&</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">*</span> <span class="special">=</span> <span class="number">0</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">void</span> <a class="link" href="slist.html#idm45971709151696-bb"><span class="identifier">splice</span></a><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">,</span> <a class="link" href="slist.html" title="Class template slist">slist</a> <span class="special">&</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="keyword">void</span> <a class="link" href="slist.html#idm45971709143392-bb"><span class="identifier">splice</span></a><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">,</span> <a class="link" href="slist.html" title="Class template slist">slist</a> <span class="special">&</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> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">void</span> <a class="link" href="slist.html#idm45971709132816-bb"><span class="identifier">splice</span></a><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">,</span> <a class="link" href="slist.html" title="Class template slist">slist</a> <span class="special">&</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> + <span class="keyword">void</span> <a class="link" href="slist.html#idm44340-bb"><span class="identifier">splice</span></a><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">,</span> <a class="link" href="slist.html" title="Class template slist">slist</a> <span class="special">&</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">*</span> <span class="special">=</span> <span class="number">0</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="slist.html#idm44365-bb"><span class="identifier">splice</span></a><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">,</span> <a class="link" href="slist.html" title="Class template slist">slist</a> <span class="special">&</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="keyword">void</span> <a class="link" href="slist.html#idm44385-bb"><span class="identifier">splice</span></a><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">,</span> <a class="link" href="slist.html" title="Class template slist">slist</a> <span class="special">&</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> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="slist.html#idm44409-bb"><span class="identifier">splice</span></a><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">,</span> <a class="link" href="slist.html" title="Class template slist">slist</a> <span class="special">&</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> <span class="identifier">size_type</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> Predicate<span class="special">></span> <span class="keyword">void</span> <a class="link" href="slist.html#idm45971709123104-bb"><span class="identifier">sort</span></a><span class="special">(</span><span class="identifier">Predicate</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">void</span> <a class="link" href="slist.html#idm45971709116832-bb"><span class="identifier">sort</span></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> Predicate<span class="special">></span> <span class="keyword">void</span> <a class="link" href="slist.html#idm44433-bb"><span class="identifier">sort</span></a><span class="special">(</span><span class="identifier">Predicate</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="slist.html#idm44448-bb"><span class="identifier">sort</span></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> Predicate<span class="special">></span> - <span class="keyword">void</span> <a class="link" href="slist.html#idm45971709111008-bb"><span class="identifier">merge</span></a><span class="special">(</span><a class="link" href="slist.html" title="Class template slist">slist</a> <span class="special">&</span><span class="special">,</span> <span class="identifier">Predicate</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">*</span> <span class="special">=</span> <span class="number">0</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">void</span> <a class="link" href="slist.html#idm45971709100000-bb"><span class="identifier">merge</span></a><span class="special">(</span><a class="link" href="slist.html" title="Class template slist">slist</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">void</span> <a class="link" href="slist.html#idm45971709094320-bb"><span class="identifier">reverse</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="slist.html#idm45971709089584-bb"><span class="identifier">remove</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">void</span> <a class="link" href="slist.html#idm44461-bb"><span class="identifier">merge</span></a><span class="special">(</span><a class="link" href="slist.html" title="Class template slist">slist</a> <span class="special">&</span><span class="special">,</span> <span class="identifier">Predicate</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">*</span> <span class="special">=</span> <span class="number">0</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="slist.html#idm44488-bb"><span class="identifier">merge</span></a><span class="special">(</span><a class="link" href="slist.html" title="Class template slist">slist</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="slist.html#idm44502-bb"><span class="identifier">reverse</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="slist.html#idm44513-bb"><span class="identifier">remove</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">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="slist.html#idm45971709083920-bb"><span class="identifier">remove_and_dispose</span></a><span class="special">(</span><span class="identifier">const_reference</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> Pred<span class="special">></span> <span class="keyword">void</span> <a class="link" href="slist.html#idm45971709075872-bb"><span class="identifier">remove_if</span></a><span class="special">(</span><span class="identifier">Pred</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="slist.html#idm44526-bb"><span class="identifier">remove_and_dispose</span></a><span class="special">(</span><span class="identifier">const_reference</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> Pred<span class="special">></span> <span class="keyword">void</span> <a class="link" href="slist.html#idm44545-bb"><span class="identifier">remove_if</span></a><span class="special">(</span><span class="identifier">Pred</span><span class="special">)</span><span class="special">;</span> <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Pred<span class="special">,</span> <span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="keyword">void</span> <a class="link" href="slist.html#idm45971709069712-bb"><span class="identifier">remove_and_dispose_if</span></a><span class="special">(</span><span class="identifier">Pred</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="slist.html#idm45971709061376-bb"><span class="identifier">unique</span></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> BinaryPredicate<span class="special">></span> <span class="keyword">void</span> <a class="link" href="slist.html#idm45971709056736-bb"><span class="identifier">unique</span></a><span class="special">(</span><span class="identifier">BinaryPredicate</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="slist.html#idm45971709050528-bb"><span class="identifier">unique_and_dispose</span></a><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="slist.html#idm44560-bb"><span class="identifier">remove_and_dispose_if</span></a><span class="special">(</span><span class="identifier">Pred</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="slist.html#idm44580-bb"><span class="identifier">unique</span></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> BinaryPredicate<span class="special">></span> <span class="keyword">void</span> <a class="link" href="slist.html#idm44591-bb"><span class="identifier">unique</span></a><span class="special">(</span><span class="identifier">BinaryPredicate</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="slist.html#idm44606-bb"><span class="identifier">unique_and_dispose</span></a><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> BinaryPredicate<span class="special">,</span> <span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="keyword">void</span> <a class="link" href="slist.html#idm45971709043392-bb"><span class="identifier">unique_and_dispose</span></a><span class="special">(</span><span class="identifier">BinaryPredicate</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="slist.html#idm45971709035008-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="slist.html#idm45971709028704-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">iterator</span> <a class="link" href="slist.html#idm45971709022400-bb"><span class="identifier">previous</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="identifier">const_iterator</span> <a class="link" href="slist.html#idm45971709017728-bb"><span class="identifier">previous</span></a><span class="special">(</span><span class="identifier">const_iterator</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="slist.html#idm45971709013040-bb"><span class="identifier">previous</span></a><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">,</span> <span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="identifier">const_iterator</span> <a class="link" href="slist.html#idm45971709007632-bb"><span class="identifier">previous</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">const</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">void</span> <a class="link" href="slist.html#idm45971709002208-bb"><span class="identifier">check</span></a><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="slist.html#idm44623-bb"><span class="identifier">unique_and_dispose</span></a><span class="special">(</span><span class="identifier">BinaryPredicate</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="slist.html#idm44643-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="slist.html#idm44658-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">iterator</span> <a class="link" href="slist.html#idm44673-bb"><span class="identifier">previous</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">const_iterator</span> <a class="link" href="slist.html#idm44684-bb"><span class="identifier">previous</span></a><span class="special">(</span><span class="identifier">const_iterator</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="slist.html#idm44695-bb"><span class="identifier">previous</span></a><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">,</span> <span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">const_iterator</span> <a class="link" href="slist.html#idm44708-bb"><span class="identifier">previous</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">const</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="slist.html#idm44721-bb"><span class="identifier">check</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="comment">// <a class="link" href="slist.html#idm45971708973456-bb">public static functions</a></span> - <span class="keyword">static</span> <a class="link" href="slist.html" title="Class template slist">slist</a> <span class="special">&</span> <a class="link" href="slist.html#idm45971708972896-bb"><span class="identifier">container_from_end_iterator</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="slist.html" title="Class template slist">slist</a> <span class="special">&</span> <a class="link" href="slist.html#idm45971708966912-bb"><span class="identifier">container_from_end_iterator</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">static</span> <span class="identifier">iterator</span> <a class="link" href="slist.html#idm45971708960752-bb"><span class="identifier">s_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_iterator</span> <a class="link" href="slist.html#idm45971708953680-bb"><span class="identifier">s_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="comment">// <a class="link" href="slist.html#idm44794-bb">public static functions</a></span> + <span class="keyword">static</span> <a class="link" href="slist.html" title="Class template slist">slist</a> <span class="special">&</span> <a class="link" href="slist.html#idm44795-bb"><span class="identifier">container_from_end_iterator</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="slist.html" title="Class template slist">slist</a> <span class="special">&</span> <a class="link" href="slist.html#idm44809-bb"><span class="identifier">container_from_end_iterator</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">static</span> <span class="identifier">iterator</span> <a class="link" href="slist.html#idm44823-bb"><span class="identifier">s_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_iterator</span> <a class="link" href="slist.html#idm44839-bb"><span class="identifier">s_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="comment">// <a class="link" href="slist.html#idm45971708946448-bb">private member functions</a></span> - <span class="keyword">void</span> <a class="link" href="slist.html#idm45971708945872-bb"><span class="identifier">priv_splice_after</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <a class="link" href="slist.html" title="Class template slist">slist</a> <span class="special">&</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">void</span> <a class="link" href="slist.html#idm45971708941984-bb"><span class="identifier">priv_incorporate_after</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">void</span> <a class="link" href="slist.html#idm45971708939072-bb"><span class="identifier">priv_reverse</span></a><span class="special">(</span><span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span> - <span class="keyword">void</span> <a class="link" href="slist.html#idm45971708937408-bb"><span class="identifier">priv_reverse</span></a><span class="special">(</span><span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span> - <span class="keyword">void</span> <a class="link" href="slist.html#idm45971708935744-bb"><span class="identifier">priv_shift_backwards</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span> - <span class="keyword">void</span> <a class="link" href="slist.html#idm45971708933392-bb"><span class="identifier">priv_shift_backwards</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span> - <span class="keyword">void</span> <a class="link" href="slist.html#idm45971708931040-bb"><span class="identifier">priv_shift_forward</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span> - <span class="keyword">void</span> <a class="link" href="slist.html#idm45971708928688-bb"><span class="identifier">priv_shift_forward</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span> + <span class="comment">// <a class="link" href="slist.html#idm44855-bb">private member functions</a></span> + <span class="keyword">void</span> <a class="link" href="slist.html#idm44856-bb"><span class="identifier">priv_splice_after</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <a class="link" href="slist.html" title="Class template slist">slist</a> <span class="special">&</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="slist.html#idm44867-bb"><span class="identifier">priv_incorporate_after</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="slist.html#idm44875-bb"><span class="identifier">priv_reverse</span></a><span class="special">(</span><span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="slist.html#idm44880-bb"><span class="identifier">priv_reverse</span></a><span class="special">(</span><span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="slist.html#idm44885-bb"><span class="identifier">priv_shift_backwards</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="slist.html#idm44892-bb"><span class="identifier">priv_shift_backwards</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="slist.html#idm44899-bb"><span class="identifier">priv_shift_forward</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="slist.html#idm44906-bb"><span class="identifier">priv_shift_forward</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span> - <span class="comment">// <a class="link" href="slist.html#idm45971708926176-bb">private static functions</a></span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="slist.html#idm45971708925600-bb"><span class="identifier">priv_swap_cache_last</span></a><span class="special">(</span><a class="link" href="slist.html" title="Class template slist">slist</a> <span class="special">*</span><span class="special">,</span> <a class="link" href="slist.html" title="Class template slist">slist</a> <span class="special">*</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="slist.html#idm45971708922528-bb"><span class="identifier">priv_swap_lists</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="slist.html#idm45971708919216-bb"><span class="identifier">priv_swap_lists</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span> - <span class="keyword">static</span> <a class="link" href="slist.html" title="Class template slist">slist</a> <span class="special">&</span> <a class="link" href="slist.html#idm45971708915904-bb"><span class="identifier">priv_container_from_end_iterator</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_iterator</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="comment">// <a class="link" href="slist.html#idm44913-bb">private static functions</a></span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="slist.html#idm44914-bb"><span class="identifier">priv_swap_cache_last</span></a><span class="special">(</span><a class="link" href="slist.html" title="Class template slist">slist</a> <span class="special">*</span><span class="special">,</span> <a class="link" href="slist.html" title="Class template slist">slist</a> <span class="special">*</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="slist.html#idm44922-bb"><span class="identifier">priv_swap_lists</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="slist.html#idm44931-bb"><span class="identifier">priv_swap_lists</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span> + <span class="keyword">static</span> <a class="link" href="slist.html" title="Class template slist">slist</a> <span class="special">&</span> <a class="link" href="slist.html#idm44940-bb"><span class="identifier">priv_container_from_end_iterator</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_iterator</span> <span class="special">&</span><span class="special">)</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">constant_time_size</span><span class="special">;</span> @@ -182,32 +183,32 @@ <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">bool</span> <span class="identifier">has_container_from_iterator</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.35.4.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.35.4.4"></a><h2>Description</h2> <p>The class template slist is an intrusive container, that encapsulates a singly-linked list. You can use such a list to squeeze the last bit of performance from your application. Unfortunately, the little gains come with some huge drawbacks. A lot of member functions can't be implemented as efficiently as for standard containers. To overcome this limitation some other member functions with rather unusual semantics have to be introduced.</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> <p>The container supports the following options: <code class="computeroutput">base_hook<>/member_hook<>/value_traits<></code>, <code class="computeroutput">constant_time_size<></code>, <code class="computeroutput">size_type<></code>, <code class="computeroutput">linear<></code> and <code class="computeroutput">cache_last<></code>.</p> <p>The iterators of slist are forward iterators. slist provides a static function called "previous" to compute the previous iterator of a given iterator. This function has linear complexity. To improve the usability esp. with the '*_after' functions, ++end() == begin() and previous(begin()) == end() are defined. An new special function "before_begin()" is defined, which returns an iterator that points one less the beginning of the list: ++before_begin() == begin() </p> <div class="refsect2"> -<a name="id-1.3.20.42.35.4.4.6"></a><h3> +<a name="id-1.3.18.42.35.4.4.6"></a><h3> <a name="boost.intrusive.slistconstruct-copy-destruct"></a><code class="computeroutput">slist</code> public construct/copy/destruct</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> <li class="listitem"> -<pre class="literallayout"><a name="idm45971708998096-bb"></a><span class="identifier">slist</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm44730-bb"></a><span class="identifier">slist</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: constructs an empty list.</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 constructor throws (this does not happen with predefined Boost.Intrusive hooks). </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">explicit</span> <a name="idm45971708995024-bb"></a><span class="identifier">slist</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="special">;</span></pre> +<pre class="literallayout"><span class="keyword">explicit</span> <a name="idm44738-bb"></a><span class="identifier">slist</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="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: constructs an empty list.</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 constructor throws (this does not happen with predefined Boost.Intrusive hooks). </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> - <a name="idm45971708990992-bb"></a><span class="identifier">slist</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> + <a name="idm44748-bb"></a><span class="identifier">slist</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="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> <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>: Constructs a list equal to [b ,e).</p> @@ -215,35 +216,35 @@ <p><span class="bold"><strong>Throws</strong></span>: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks). </p> </li> <li class="listitem"> -<pre class="literallayout"><a name="idm45971708983776-bb"></a><span class="identifier">slist</span><span class="special">(</span><a class="link" href="slist.html" title="Class template slist">slist</a> <span class="special">&&</span> x<span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm44767-bb"></a><span class="identifier">slist</span><span class="special">(</span><a class="link" href="slist.html" title="Class template slist">slist</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 are move constructed and nodes belonging to x (except the node representing the "end") 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 throws. </p> </li> <li class="listitem"> -<pre class="literallayout"><a class="link" href="slist.html" title="Class template slist">slist</a> <span class="special">&</span> <a name="idm45971708979504-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><a class="link" href="slist.html" title="Class template slist">slist</a> <span class="special">&&</span> x<span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a class="link" href="slist.html" title="Class template slist">slist</a> <span class="special">&</span> <a name="idm44778-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><a class="link" href="slist.html" title="Class template slist">slist</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="idm45971708976688-bb"></a><span class="special">~</span><span class="identifier">slist</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm44787-bb"></a><span class="special">~</span><span class="identifier">slist</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: If it's a safe-mode or auto-unlink value, the destructor does nothing (ie. no code is generated). Otherwise it detaches all elements from this. In this case the objects in the list are not deleted (i.e. no destructors are called), but the hooks according to the <code class="computeroutput"><a class="link" href="value_traits.html" title="Struct template value_traits">value_traits</a></code> template parameter are set to their default value.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to the number of elements in the list, if it's a safe-mode or auto-unlink value. Otherwise constant. </p> </li> </ol></div> </div> <div class="refsect2"> -<a name="id-1.3.20.42.35.4.4.7"></a><h3> -<a name="idm45971709481856-bb"></a><code class="computeroutput">slist</code> public member functions</h3> +<a name="id-1.3.18.42.35.4.4.7"></a><h3> +<a name="idm43582-bb"></a><code class="computeroutput">slist</code> public member functions</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971709481296-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="idm43583-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 the elements of the container.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to the number of elements of the list. if it's a safe-mode or auto-unlink value_type. Constant time otherwise.</p> <p><span class="bold"><strong>Note</strong></span>: Invalidates the iterators (but not the references) to the erased elements. </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="idm45971709476464-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="idm43594-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 the elements of the container Disposer::operator()(pointer) is called for the removed elements.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> @@ -251,7 +252,7 @@ <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="idm45971709469248-bb"></a><span class="identifier">push_front</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">void</span> <a name="idm43611-bb"></a><span class="identifier">push_front</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.</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts the value in the front of the list. No copy constructors are called.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> @@ -259,7 +260,7 @@ <p><span class="bold"><strong>Note</strong></span>: Does not affect the validity of iterators and references. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971709462944-bb"></a><span class="identifier">push_back</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">void</span> <a name="idm43626-bb"></a><span class="identifier">push_back</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.</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts the value in the back of the list. No copy constructors are called.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> @@ -267,7 +268,7 @@ <p><span class="bold"><strong>Note</strong></span>: Does not affect the validity of iterators and references. This function is only available is cache_last<> is true. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971709456592-bb"></a><span class="identifier">pop_front</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="idm43641-bb"></a><span class="identifier">pop_front</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 the first element of the list. No destructors are called.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> @@ -275,7 +276,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="idm45971709451840-bb"></a><span class="identifier">pop_front_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> + <span class="keyword">void</span> <a name="idm43652-bb"></a><span class="identifier">pop_front_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 the first element of the list. Disposer::operator()(pointer) is called for the removed element.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> @@ -283,136 +284,136 @@ <p><span class="bold"><strong>Note</strong></span>: Invalidates the iterators to the erased element. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">reference</span> <a name="idm45971709444656-bb"></a><span class="identifier">front</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">reference</span> <a name="idm43669-bb"></a><span class="identifier">front</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 a reference to the first element of the list.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reference</span> <a name="idm45971709440832-bb"></a><span class="identifier">front</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_reference</span> <a name="idm43678-bb"></a><span class="identifier">front</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_reference to the first element of the list.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">reference</span> <a name="idm45971709436992-bb"></a><span class="identifier">back</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">reference</span> <a name="idm43687-bb"></a><span class="identifier">back</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 a reference to the last element of the list.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> <p><span class="bold"><strong>Note</strong></span>: Does not affect the validity of iterators and references. This function is only available is cache_last<> is true. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reference</span> <a name="idm45971709432224-bb"></a><span class="identifier">back</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_reference</span> <a name="idm43698-bb"></a><span class="identifier">back</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_reference to the last element of the list.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> <p><span class="bold"><strong>Note</strong></span>: Does not affect the validity of iterators and references. This function is only available is cache_last<> is true. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971709427440-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="idm43709-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 to the first element contained in the list.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971709423600-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="idm43718-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 to the first element contained in the list.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971709419760-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="idm43727-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 to the first element contained in the list.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971709415920-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="idm43736-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 to the end of the list.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971709412096-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="idm43745-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 to the end of the list.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971709408272-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="idm43754-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 to the end of the list.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971709404448-bb"></a><span class="identifier">before_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="idm43763-bb"></a><span class="identifier">before_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 that points to a position before the first element. Equivalent to "end()"</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971709400576-bb"></a><span class="identifier">before_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="idm43772-bb"></a><span class="identifier">before_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 an iterator that points to a position before the first element. Equivalent to "end()"</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971709396704-bb"></a><span class="identifier">cbefore_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="idm43781-bb"></a><span class="identifier">cbefore_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 an iterator that points to a position before the first element. Equivalent to "end()"</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971709392832-bb"></a><span class="identifier">last</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="idm43790-bb"></a><span class="identifier">last</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 to the last element contained in the list.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> <p><span class="bold"><strong>Note</strong></span>: This function is present only if cached_last<> option is true. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971709388096-bb"></a><span class="identifier">last</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="idm43801-bb"></a><span class="identifier">last</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 to the last element contained in the list.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> <p><span class="bold"><strong>Note</strong></span>: This function is present only if cached_last<> option is true. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971709383360-bb"></a><span class="identifier">clast</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="idm43812-bb"></a><span class="identifier">clast</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 to the last element contained in the list.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> <p><span class="bold"><strong>Note</strong></span>: This function is present only if cached_last<> option is true. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">size_type</span> <a name="idm45971709378624-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="idm43823-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 the elements contained in the list.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to the number of elements contained in the list. 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>Note</strong></span>: Does not affect the validity of iterators and references. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">bool</span> <a name="idm45971709373088-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="idm43835-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 list contains no elements.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> <p><span class="bold"><strong>Note</strong></span>: Does not affect the validity of iterators and references. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971709368368-bb"></a><span class="identifier">swap</span><span class="special">(</span><a class="link" href="slist.html" title="Class template slist">slist</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="idm43846-bb"></a><span class="identifier">swap</span><span class="special">(</span><a class="link" href="slist.html" title="Class template slist">slist</a> <span class="special">&</span> other<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Swaps the elements of x and *this.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to the number of elements of both lists. Constant-time if linear<> and/or cache_last<> options are used.</p> <p><span class="bold"><strong>Note</strong></span>: Does not affect the validity of iterators and references. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971709362864-bb"></a><span class="identifier">shift_backwards</span><span class="special">(</span><span class="identifier">size_type</span> n <span class="special">=</span> <span class="number">1</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="idm43860-bb"></a><span class="identifier">shift_backwards</span><span class="special">(</span><span class="identifier">size_type</span> n <span class="special">=</span> <span class="number">1</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Moves backwards all the elements, so that the first element becomes the second, the second becomes the third... the last element becomes the first one.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to the number of elements plus the number shifts.</p> <p><span class="bold"><strong>Note</strong></span>: Iterators Does not affect the validity of iterators and references. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971709357008-bb"></a><span class="identifier">shift_forward</span><span class="special">(</span><span class="identifier">size_type</span> n <span class="special">=</span> <span class="number">1</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="idm43874-bb"></a><span class="identifier">shift_forward</span><span class="special">(</span><span class="identifier">size_type</span> n <span class="special">=</span> <span class="number">1</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Moves forward all the elements, so that the second element becomes the first, the third becomes the second... the first element becomes the last one.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to the number of elements plus the number shifts.</p> @@ -420,7 +421,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="idm45971709351168-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="slist.html" title="Class template slist">slist</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="idm43888-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="slist.html" title="Class template slist">slist</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 equivalent to the original nodes.</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.</p> <p>If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).</p> @@ -429,7 +430,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="idm45971709342224-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><a class="link" href="slist.html" title="Class template slist">slist</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="idm43910-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><a class="link" href="slist.html" title="Class template slist">slist</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 equivalent to the original nodes.</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.</p> <p>If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).</p> @@ -437,7 +438,7 @@ <p><span class="bold"><strong>Throws</strong></span>: If cloner throws. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971709333440-bb"></a><span class="identifier">insert_after</span><span class="special">(</span><span class="identifier">const_iterator</span> prev_p<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="idm43932-bb"></a><span class="identifier">insert_after</span><span class="special">(</span><span class="identifier">const_iterator</span> prev_p<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 prev_p must point to an element contained by the list or to end().</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts the value after the position pointed by prev_p. No copy constructor is called.</p> <p><span class="bold"><strong>Returns</strong></span>: An iterator to the inserted element.</p> @@ -447,7 +448,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> - <span class="keyword">void</span> <a name="idm45971709325504-bb"></a><span class="identifier">insert_after</span><span class="special">(</span><span class="identifier">const_iterator</span> prev_p<span class="special">,</span> <span class="identifier">Iterator</span> f<span class="special">,</span> <span class="identifier">Iterator</span> l<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> + <span class="keyword">void</span> <a name="idm43951-bb"></a><span class="identifier">insert_after</span><span class="special">(</span><span class="identifier">const_iterator</span> prev_p<span class="special">,</span> <span class="identifier">Iterator</span> f<span class="special">,</span> <span class="identifier">Iterator</span> l<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: Dereferencing iterator must yield an lvalue of type value_type and prev_p must point to an element contained by the list or to the end node.</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts the [f, l) after the position prev_p.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> @@ -455,7 +456,7 @@ <p><span class="bold"><strong>Note</strong></span>: Does not affect the validity of iterators and references. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971709316864-bb"></a><span class="identifier">insert</span><span class="special">(</span><span class="identifier">const_iterator</span> p<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="idm43972-bb"></a><span class="identifier">insert</span><span class="special">(</span><span class="identifier">const_iterator</span> p<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 p must point to an element contained by the list or to end().</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts the value before the position pointed by p. No copy constructor is called.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> @@ -464,7 +465,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> - <span class="keyword">void</span> <a name="idm45971709309728-bb"></a><span class="identifier">insert</span><span class="special">(</span><span class="identifier">const_iterator</span> p<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">noexcept</span><span class="special">;</span></pre> + <span class="keyword">void</span> <a name="idm43989-bb"></a><span class="identifier">insert</span><span class="special">(</span><span class="identifier">const_iterator</span> p<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">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: Dereferencing iterator must yield an lvalue of type value_type and p must point to an element contained by the list or to the end node.</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts the pointed by b and e before the position p. No copy constructors are called.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> @@ -472,7 +473,7 @@ <p><span class="bold"><strong>Note</strong></span>: Does not affect the validity of iterators and references. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971709300912-bb"></a><span class="identifier">erase_after</span><span class="special">(</span><span class="identifier">const_iterator</span> prev<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm44010-bb"></a><span class="identifier">erase_after</span><span class="special">(</span><span class="identifier">const_iterator</span> prev<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 after the element pointed by prev of the list. No destructors are called.</p> <p><span class="bold"><strong>Returns</strong></span>: the first element remaining beyond the removed elements, or end() if no such element exists.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> @@ -480,7 +481,7 @@ <p><span class="bold"><strong>Note</strong></span>: Invalidates the iterators (but not the references) to the erased element. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971709294512-bb"></a><span class="identifier">erase_after</span><span class="special">(</span><span class="identifier">const_iterator</span> before_f<span class="special">,</span> <span class="identifier">const_iterator</span> l<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm44025-bb"></a><span class="identifier">erase_after</span><span class="special">(</span><span class="identifier">const_iterator</span> before_f<span class="special">,</span> <span class="identifier">const_iterator</span> l<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 (before_f, l) from the list. No destructors are called.</p> <p><span class="bold"><strong>Returns</strong></span>: the first element remaining beyond the removed elements, or end() if no such element exists.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> @@ -488,7 +489,7 @@ <p><span class="bold"><strong>Note</strong></span>: Invalidates the iterators (but not the references) to the erased element. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971709287312-bb"></a><span class="identifier">erase_after</span><span class="special">(</span><span class="identifier">const_iterator</span> before_f<span class="special">,</span> <span class="identifier">const_iterator</span> l<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">iterator</span> <a name="idm44042-bb"></a><span class="identifier">erase_after</span><span class="special">(</span><span class="identifier">const_iterator</span> before_f<span class="special">,</span> <span class="identifier">const_iterator</span> l<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>: Erases the range (before_f, l) from the list. n must be distance(before_f, l) - 1. No destructors are called.</p> <p><span class="bold"><strong>Returns</strong></span>: the first element remaining beyond the removed elements, or end() if no such element exists.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> @@ -496,7 +497,7 @@ <p><span class="bold"><strong>Note</strong></span>: Invalidates the iterators (but not the references) to the erased element. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971709278736-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="identifier">iterator</span> <a name="idm44062-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 by i of the list. No destructors are called.</p> <p><span class="bold"><strong>Returns</strong></span>: the first element remaining beyond the removed element, or end() if no such element exists.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> @@ -504,7 +505,7 @@ <p><span class="bold"><strong>Note</strong></span>: Invalidates the iterators (but not the references) to the erased element. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971709272336-bb"></a><span class="identifier">erase</span><span class="special">(</span><span class="identifier">const_iterator</span> f<span class="special">,</span> <span class="identifier">const_iterator</span> l<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm44077-bb"></a><span class="identifier">erase</span><span class="special">(</span><span class="identifier">const_iterator</span> f<span class="special">,</span> <span class="identifier">const_iterator</span> l<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: f and l must be valid iterator to elements in *this.</p> <p><span class="bold"><strong>Effects</strong></span>: Erases the range pointed by b and e. No destructors are called.</p> <p><span class="bold"><strong>Returns</strong></span>: the first element remaining beyond the removed elements, or end() if no such element exists.</p> @@ -513,7 +514,7 @@ <p><span class="bold"><strong>Note</strong></span>: Invalidates the iterators (but not the references) to the erased elements. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971709264384-bb"></a><span class="identifier">erase</span><span class="special">(</span><span class="identifier">const_iterator</span> f<span class="special">,</span> <span class="identifier">const_iterator</span> l<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">iterator</span> <a name="idm44096-bb"></a><span class="identifier">erase</span><span class="special">(</span><span class="identifier">const_iterator</span> f<span class="special">,</span> <span class="identifier">const_iterator</span> l<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>: Erases the range [f, l) from the list. n must be distance(f, l). No destructors are called.</p> <p><span class="bold"><strong>Returns</strong></span>: the first element remaining beyond the removed elements, or end() if no such element exists.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> @@ -522,7 +523,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">iterator</span> <a name="idm45971709255072-bb"></a><span class="identifier">erase_after_and_dispose</span><span class="special">(</span><span class="identifier">const_iterator</span> prev<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="identifier">iterator</span> <a name="idm44117-bb"></a><span class="identifier">erase_after_and_dispose</span><span class="special">(</span><span class="identifier">const_iterator</span> prev<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 after the element pointed by prev of the list. Disposer::operator()(pointer) is called for the removed element.</p> <p><span class="bold"><strong>Returns</strong></span>: the first element remaining beyond the removed elements, or end() if no such element exists.</p> @@ -532,7 +533,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">iterator</span> <a name="idm45971709246256-bb"></a><span class="identifier">erase_after_and_dispose</span><span class="special">(</span><span class="identifier">const_iterator</span> before_f<span class="special">,</span> <span class="identifier">const_iterator</span> l<span class="special">,</span> + <span class="identifier">iterator</span> <a name="idm44138-bb"></a><span class="identifier">erase_after_and_dispose</span><span class="special">(</span><span class="identifier">const_iterator</span> before_f<span class="special">,</span> <span class="identifier">const_iterator</span> l<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 (before_f, l) from the list. Disposer::operator()(pointer) is called for the removed elements.</p> @@ -543,7 +544,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">iterator</span> <a name="idm45971709236736-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="identifier">iterator</span> <a name="idm44161-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 by i of the list. No destructors are called. Disposer::operator()(pointer) is called for the removed element.</p> <p><span class="bold"><strong>Returns</strong></span>: the first element remaining beyond the removed element, or end() if no such element exists.</p> @@ -553,7 +554,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">iterator</span> <a name="idm45971709227856-bb"></a><span class="identifier">erase_and_dispose</span><span class="special">(</span><span class="identifier">const_iterator</span> f<span class="special">,</span> <span class="identifier">const_iterator</span> l<span class="special">,</span> + <span class="identifier">iterator</span> <a name="idm44182-bb"></a><span class="identifier">erase_and_dispose</span><span class="special">(</span><span class="identifier">const_iterator</span> f<span class="special">,</span> <span class="identifier">const_iterator</span> l<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>: f and l must be valid iterator to elements in *this. Disposer::operator()(pointer) shouldn't throw.</p> <p><span class="bold"><strong>Effects</strong></span>: Erases the range pointed by b and e. No destructors are called. Disposer::operator()(pointer) is called for the removed elements.</p> @@ -563,7 +564,7 @@ <p><span class="bold"><strong>Note</strong></span>: Invalidates the iterators (but not the references) to the erased elements. </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="idm45971709218208-bb"></a><span class="identifier">assign</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="idm44205-bb"></a><span class="identifier">assign</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>: Clears the list and inserts the range pointed by b and e. No destructors or copy constructors are called.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> @@ -572,7 +573,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> <span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="keyword">void</span> <a name="idm45971709210368-bb"></a><span class="identifier">dispose_and_assign</span><span class="special">(</span><span class="identifier">Disposer</span> disposer<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> + <span class="keyword">void</span> <a name="idm44224-bb"></a><span class="identifier">dispose_and_assign</span><span class="special">(</span><span class="identifier">Disposer</span> disposer<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>: Disposer::operator()(pointer) shouldn't throw.</p> <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>: Clears the list and inserts the range pointed by b and e. No destructors or copy constructors are called. Disposer::operator()(pointer) is called for the removed elements.</p> @@ -581,7 +582,7 @@ <p><span class="bold"><strong>Note</strong></span>: Invalidates the iterators (but not the references) to the erased elements. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971709200448-bb"></a><span class="identifier">splice_after</span><span class="special">(</span><span class="identifier">const_iterator</span> prev<span class="special">,</span> <a class="link" href="slist.html" title="Class template slist">slist</a> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">*</span> l <span class="special">=</span> <span class="number">0</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="idm44248-bb"></a><span class="identifier">splice_after</span><span class="special">(</span><span class="identifier">const_iterator</span> prev<span class="special">,</span> <a class="link" href="slist.html" title="Class template slist">slist</a> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">*</span> l <span class="special">=</span> <span class="number">0</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: prev must point to an element contained by this list or to the before_begin() element</p> <p><span class="bold"><strong>Effects</strong></span>: Transfers all the elements of list x to this list, after the the element pointed by prev. No destructors or copy constructors are called.</p> <p><span class="bold"><strong>Returns</strong></span>: Nothing.</p> @@ -591,7 +592,7 @@ <p><span class="bold"><strong>Additional note</strong></span>: If the optional parameter "l" is provided, it will be assigned to the last spliced element or prev if x is empty. This iterator can be used as new "prev" iterator for a new splice_after call. that will splice new values after the previously spliced values. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971709189888-bb"></a><span class="identifier">splice_after</span><span class="special">(</span><span class="identifier">const_iterator</span> prev_pos<span class="special">,</span> <a class="link" href="slist.html" title="Class template slist">slist</a> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">const_iterator</span> prev_ele<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">void</span> <a name="idm44273-bb"></a><span class="identifier">splice_after</span><span class="special">(</span><span class="identifier">const_iterator</span> prev_pos<span class="special">,</span> <a class="link" href="slist.html" title="Class template slist">slist</a> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">const_iterator</span> prev_ele<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: prev must point to an element contained by this list or to the before_begin() element. prev_ele must point to an element contained in list x or must be x.before_begin().</p> <p><span class="bold"><strong>Effects</strong></span>: Transfers the element after prev_ele, from list x to this list, after the element pointed by prev. No destructors or copy constructors are called.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> @@ -599,7 +600,7 @@ <p><span class="bold"><strong>Note</strong></span>: Iterators of values obtained from list x now point to elements of this list. Iterators of this list and all the references are not invalidated. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971709181632-bb"></a><span class="identifier">splice_after</span><span class="special">(</span><span class="identifier">const_iterator</span> prev_pos<span class="special">,</span> <a class="link" href="slist.html" title="Class template slist">slist</a> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">const_iterator</span> before_f<span class="special">,</span> +<pre class="literallayout"><span class="keyword">void</span> <a name="idm44293-bb"></a><span class="identifier">splice_after</span><span class="special">(</span><span class="identifier">const_iterator</span> prev_pos<span class="special">,</span> <a class="link" href="slist.html" title="Class template slist">slist</a> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">const_iterator</span> before_f<span class="special">,</span> <span class="identifier">const_iterator</span> before_l<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: prev_pos must be a dereferenceable iterator in *this or be before_begin(), and before_f and before_l belong to x and ++before_f != x.end() && before_l != x.end().</p> <p><span class="bold"><strong>Effects</strong></span>: Transfers the range (before_f, before_l] from list x to this list, after the element pointed by prev_pos. No destructors or copy constructors are called.</p> @@ -608,7 +609,7 @@ <p><span class="bold"><strong>Note</strong></span>: Iterators of values obtained from list x now point to elements of this list. Iterators of this list and all the references are not invalidated. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971709171904-bb"></a><span class="identifier">splice_after</span><span class="special">(</span><span class="identifier">const_iterator</span> prev_pos<span class="special">,</span> <a class="link" href="slist.html" title="Class template slist">slist</a> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">const_iterator</span> before_f<span class="special">,</span> +<pre class="literallayout"><span class="keyword">void</span> <a name="idm44316-bb"></a><span class="identifier">splice_after</span><span class="special">(</span><span class="identifier">const_iterator</span> prev_pos<span class="special">,</span> <a class="link" href="slist.html" title="Class template slist">slist</a> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">const_iterator</span> before_f<span class="special">,</span> <span class="identifier">const_iterator</span> before_l<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>: prev_pos must be a dereferenceable iterator in *this or be before_begin(), and before_f and before_l belong to x and ++before_f != x.end() && before_l != x.end() and n == distance(before_f, before_l).</p> <p><span class="bold"><strong>Effects</strong></span>: Transfers the range (before_f, before_l] from list x to this list, after the element pointed by p. No destructors or copy constructors are called.</p> @@ -617,7 +618,7 @@ <p><span class="bold"><strong>Note</strong></span>: Iterators of values obtained from list x now point to elements of this list. Iterators of this list and all the references are not invalidated. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971709162240-bb"></a><span class="identifier">splice</span><span class="special">(</span><span class="identifier">const_iterator</span> it<span class="special">,</span> <a class="link" href="slist.html" title="Class template slist">slist</a> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">*</span> l <span class="special">=</span> <span class="number">0</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="idm44340-bb"></a><span class="identifier">splice</span><span class="special">(</span><span class="identifier">const_iterator</span> it<span class="special">,</span> <a class="link" href="slist.html" title="Class template slist">slist</a> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">*</span> l <span class="special">=</span> <span class="number">0</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: it is an iterator to an element in *this.</p> <p><span class="bold"><strong>Effects</strong></span>: Transfers all the elements of list x to this list, before the the element pointed by it. No destructors or copy constructors are called.</p> <p><span class="bold"><strong>Returns</strong></span>: Nothing.</p> @@ -627,7 +628,7 @@ <p><span class="bold"><strong>Additional note</strong></span>: If the optional parameter "l" is provided, it will be assigned to the last spliced element or prev if x is empty. This iterator can be used as new "prev" iterator for a new splice_after call. that will splice new values after the previously spliced values. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971709151696-bb"></a><span class="identifier">splice</span><span class="special">(</span><span class="identifier">const_iterator</span> pos<span class="special">,</span> <a class="link" href="slist.html" title="Class template slist">slist</a> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">const_iterator</span> elem<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">void</span> <a name="idm44365-bb"></a><span class="identifier">splice</span><span class="special">(</span><span class="identifier">const_iterator</span> pos<span class="special">,</span> <a class="link" href="slist.html" title="Class template slist">slist</a> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">const_iterator</span> elem<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: it p must be a valid iterator of *this. elem must point to an element contained in list x.</p> <p><span class="bold"><strong>Effects</strong></span>: Transfers the element elem, from list x to this list, before the element pointed by pos. No destructors or copy constructors are called.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> @@ -635,7 +636,7 @@ <p><span class="bold"><strong>Note</strong></span>: Iterators of values obtained from list x now point to elements of this list. Iterators of this list and all the references are not invalidated. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971709143392-bb"></a><span class="identifier">splice</span><span class="special">(</span><span class="identifier">const_iterator</span> pos<span class="special">,</span> <a class="link" href="slist.html" title="Class template slist">slist</a> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">const_iterator</span> f<span class="special">,</span> <span class="identifier">const_iterator</span> l<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">void</span> <a name="idm44385-bb"></a><span class="identifier">splice</span><span class="special">(</span><span class="identifier">const_iterator</span> pos<span class="special">,</span> <a class="link" href="slist.html" title="Class template slist">slist</a> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">const_iterator</span> f<span class="special">,</span> <span class="identifier">const_iterator</span> l<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: pos must be a dereferenceable iterator in *this and f and f belong to x and f and f a valid range on x.</p> <p><span class="bold"><strong>Effects</strong></span>: Transfers the range [f, l) from list x to this list, before the element pointed by pos. No destructors or copy constructors are called.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> @@ -643,7 +644,7 @@ <p><span class="bold"><strong>Note</strong></span>: Iterators of values obtained from list x now point to elements of this list. Iterators of this list and all the references are not invalidated. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971709132816-bb"></a><span class="identifier">splice</span><span class="special">(</span><span class="identifier">const_iterator</span> pos<span class="special">,</span> <a class="link" href="slist.html" title="Class template slist">slist</a> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">const_iterator</span> f<span class="special">,</span> <span class="identifier">const_iterator</span> l<span class="special">,</span> +<pre class="literallayout"><span class="keyword">void</span> <a name="idm44409-bb"></a><span class="identifier">splice</span><span class="special">(</span><span class="identifier">const_iterator</span> pos<span class="special">,</span> <a class="link" href="slist.html" title="Class template slist">slist</a> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">const_iterator</span> f<span class="special">,</span> <span class="identifier">const_iterator</span> l<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>: pos must be a dereferenceable iterator in *this and f and l belong to x and f and l a valid range on x. n == distance(f, l).</p> <p><span class="bold"><strong>Effects</strong></span>: Transfers the range [f, l) from list x to this list, before the element pointed by pos. No destructors or copy constructors are called.</p> @@ -652,14 +653,14 @@ <p><span class="bold"><strong>Note</strong></span>: Iterators of values obtained from list x now point to elements of this list. Iterators of this list and all the references are not invalidated. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Predicate<span class="special">></span> <span class="keyword">void</span> <a name="idm45971709123104-bb"></a><span class="identifier">sort</span><span class="special">(</span><span class="identifier">Predicate</span> p<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> Predicate<span class="special">></span> <span class="keyword">void</span> <a name="idm44433-bb"></a><span class="identifier">sort</span><span class="special">(</span><span class="identifier">Predicate</span> p<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: This function sorts the list *this according to operator<. The sort is stable, that is, the relative order of equivalent elements is preserved.</p> <p><span class="bold"><strong>Throws</strong></span>: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the predicate throws. Basic guarantee.</p> <p><span class="bold"><strong>Complexity</strong></span>: The number of comparisons is approximately N log N, where N is the list's size.</p> <p><span class="bold"><strong>Note</strong></span>: Iterators and references are not invalidated </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971709116832-bb"></a><span class="identifier">sort</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">void</span> <a name="idm44448-bb"></a><span class="identifier">sort</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: p must be a comparison function that induces a strict weak ordering and both *this and x must be sorted according to that ordering The lists x and *this must be distinct.</p> <p><span class="bold"><strong>Effects</strong></span>: This function removes all of x's elements and inserts them in order into *this. The merge is stable; that is, if an element from *this is equivalent to one from x, then the element from *this will precede the one from x.</p> <p><span class="bold"><strong>Throws</strong></span>: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or operator< throws. Basic guarantee.</p> @@ -668,7 +669,7 @@ </li> <li class="listitem"> <pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Predicate<span class="special">></span> - <span class="keyword">void</span> <a name="idm45971709111008-bb"></a><span class="identifier">merge</span><span class="special">(</span><a class="link" href="slist.html" title="Class template slist">slist</a> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">Predicate</span> p<span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">*</span> l <span class="special">=</span> <span class="number">0</span><span class="special">)</span><span class="special">;</span></pre> + <span class="keyword">void</span> <a name="idm44461-bb"></a><span class="identifier">merge</span><span class="special">(</span><a class="link" href="slist.html" title="Class template slist">slist</a> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">Predicate</span> p<span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">*</span> l <span class="special">=</span> <span class="number">0</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: p must be a comparison function that induces a strict weak ordering and both *this and x must be sorted according to that ordering The lists x and *this must be distinct.</p> <p><span class="bold"><strong>Effects</strong></span>: This function removes all of x's elements and inserts them in order into *this. The merge is stable; that is, if an element from *this is equivalent to one from x, then the element from *this will precede the one from x.</p> <p><span class="bold"><strong>Returns</strong></span>: Nothing.</p> @@ -678,21 +679,21 @@ <p><span class="bold"><strong>Additional note</strong></span>: If optional "l" argument is passed, it is assigned to an iterator to the last transferred value or end() is x is empty. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971709100000-bb"></a><span class="identifier">merge</span><span class="special">(</span><a class="link" href="slist.html" title="Class template slist">slist</a> <span class="special">&</span> x<span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">void</span> <a name="idm44488-bb"></a><span class="identifier">merge</span><span class="special">(</span><a class="link" href="slist.html" title="Class template slist">slist</a> <span class="special">&</span> x<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: This function removes all of x's elements and inserts them in order into *this according to operator<. The merge is stable; that is, if an element from *this is equivalent to one from x, then the element from *this will precede the one from x.</p> <p><span class="bold"><strong>Throws</strong></span>: if operator< throws. Basic guarantee.</p> <p><span class="bold"><strong>Complexity</strong></span>: This function is linear time: it performs at most size() + x.size() - 1 comparisons.</p> <p><span class="bold"><strong>Note</strong></span>: Iterators and references are not invalidated </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971709094320-bb"></a><span class="identifier">reverse</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="idm44502-bb"></a><span class="identifier">reverse</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>: Reverses the order of elements in the list.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: This function is linear to the contained elements.</p> <p><span class="bold"><strong>Note</strong></span>: Iterators and references are not invalidated </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971709089584-bb"></a><span class="identifier">remove</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> +<pre class="literallayout"><span class="keyword">void</span> <a name="idm44513-bb"></a><span class="identifier">remove</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>Effects</strong></span>: Removes all the elements that compare equal to value. No destructors are called.</p> <p><span class="bold"><strong>Throws</strong></span>: If operator== throws. Basic guarantee.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear time. It performs exactly size() comparisons for equality.</p> @@ -700,7 +701,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="idm45971709083920-bb"></a><span class="identifier">remove_and_dispose</span><span class="special">(</span><span class="identifier">const_reference</span> value<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="idm44526-bb"></a><span class="identifier">remove_and_dispose</span><span class="special">(</span><span class="identifier">const_reference</span> value<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>: Removes all the elements that compare equal to value. Disposer::operator()(pointer) is called for every removed element.</p> <p><span class="bold"><strong>Throws</strong></span>: If operator== throws. Basic guarantee.</p> @@ -708,7 +709,7 @@ <p><span class="bold"><strong>Note</strong></span>: The relative order of elements that are not removed is unchanged, and iterators to elements that are not removed remain valid. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Pred<span class="special">></span> <span class="keyword">void</span> <a name="idm45971709075872-bb"></a><span class="identifier">remove_if</span><span class="special">(</span><span class="identifier">Pred</span> pred<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> Pred<span class="special">></span> <span class="keyword">void</span> <a name="idm44545-bb"></a><span class="identifier">remove_if</span><span class="special">(</span><span class="identifier">Pred</span> pred<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Removes all the elements for which a specified predicate is satisfied. No destructors are called.</p> <p><span class="bold"><strong>Throws</strong></span>: If pred throws. Basic guarantee.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear time. It performs exactly size() calls to the predicate.</p> @@ -716,7 +717,7 @@ </li> <li class="listitem"> <pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Pred<span class="special">,</span> <span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="keyword">void</span> <a name="idm45971709069712-bb"></a><span class="identifier">remove_and_dispose_if</span><span class="special">(</span><span class="identifier">Pred</span> pred<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="idm44560-bb"></a><span class="identifier">remove_and_dispose_if</span><span class="special">(</span><span class="identifier">Pred</span> pred<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>: Removes all the elements for which a specified predicate is satisfied. Disposer::operator()(pointer) is called for every removed element.</p> <p><span class="bold"><strong>Throws</strong></span>: If pred throws. Basic guarantee.</p> @@ -724,21 +725,21 @@ <p><span class="bold"><strong>Note</strong></span>: The relative order of elements that are not removed is unchanged, and iterators to elements that are not removed remain valid. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971709061376-bb"></a><span class="identifier">unique</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">void</span> <a name="idm44580-bb"></a><span class="identifier">unique</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Removes adjacent duplicate elements or adjacent elements that are equal from the list. No destructors are called.</p> <p><span class="bold"><strong>Throws</strong></span>: If operator== throws. Basic guarantee.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear time (size()-1) comparisons calls to pred()).</p> <p><span class="bold"><strong>Note</strong></span>: The relative order of elements that are not removed is unchanged, and iterators to elements that are not removed remain valid. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> BinaryPredicate<span class="special">></span> <span class="keyword">void</span> <a name="idm45971709056736-bb"></a><span class="identifier">unique</span><span class="special">(</span><span class="identifier">BinaryPredicate</span> pred<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> BinaryPredicate<span class="special">></span> <span class="keyword">void</span> <a name="idm44591-bb"></a><span class="identifier">unique</span><span class="special">(</span><span class="identifier">BinaryPredicate</span> pred<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Removes adjacent duplicate elements or adjacent elements that satisfy some binary predicate from the list. No destructors are called.</p> <p><span class="bold"><strong>Throws</strong></span>: If the predicate throws. Basic guarantee.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear time (size()-1) comparisons equality comparisons.</p> <p><span class="bold"><strong>Note</strong></span>: The relative order of elements that are not removed is unchanged, and iterators to elements that are not removed remain valid. </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="idm45971709050528-bb"></a><span class="identifier">unique_and_dispose</span><span class="special">(</span><span class="identifier">Disposer</span> disposer<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> Disposer<span class="special">></span> <span class="keyword">void</span> <a name="idm44606-bb"></a><span class="identifier">unique_and_dispose</span><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>: Removes adjacent duplicate elements or adjacent elements that satisfy some binary predicate from the list. Disposer::operator()(pointer) is called for every removed element.</p> <p><span class="bold"><strong>Throws</strong></span>: If operator== throws. Basic guarantee.</p> @@ -747,7 +748,7 @@ </li> <li class="listitem"> <pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> BinaryPredicate<span class="special">,</span> <span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="keyword">void</span> <a name="idm45971709043392-bb"></a><span class="identifier">unique_and_dispose</span><span class="special">(</span><span class="identifier">BinaryPredicate</span> pred<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="idm44623-bb"></a><span class="identifier">unique_and_dispose</span><span class="special">(</span><span class="identifier">BinaryPredicate</span> pred<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>: Removes adjacent duplicate elements or adjacent elements that satisfy some binary predicate from the list. Disposer::operator()(pointer) is called for every removed element.</p> <p><span class="bold"><strong>Throws</strong></span>: If the predicate throws. Basic guarantee.</p> @@ -755,7 +756,7 @@ <p><span class="bold"><strong>Note</strong></span>: The relative order of elements that are not removed is unchanged, and iterators to elements that are not removed remain valid. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971709035008-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="idm44643-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 a reference to a value inserted in a list.</p> <p><span class="bold"><strong>Effects</strong></span>: This function returns a const_iterator pointing to the element</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> @@ -763,7 +764,7 @@ <p><span class="bold"><strong>Note</strong></span>: Iterators and references are not invalidated. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971709028704-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="idm44658-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 a const reference to a value inserted in a list.</p> <p><span class="bold"><strong>Effects</strong></span>: This function returns an iterator pointing to the element.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> @@ -771,32 +772,32 @@ <p><span class="bold"><strong>Note</strong></span>: Iterators and references are not invalidated. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971709022400-bb"></a><span class="identifier">previous</span><span class="special">(</span><span class="identifier">iterator</span> i<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm44673-bb"></a><span class="identifier">previous</span><span class="special">(</span><span class="identifier">iterator</span> i<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Returns</strong></span>: The iterator to the element before i in the list. Returns the end-iterator, if either i is the begin-iterator or the list is empty.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to the number of elements before i. Constant if cache_last<> is true and i == end(). </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971709017728-bb"></a><span class="identifier">previous</span><span class="special">(</span><span class="identifier">const_iterator</span> i<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="idm44684-bb"></a><span class="identifier">previous</span><span class="special">(</span><span class="identifier">const_iterator</span> i<span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Returns</strong></span>: The const_iterator to the element before i in the list. Returns the end-const_iterator, if either i is the begin-const_iterator or the list is empty.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to the number of elements before i. Constant if cache_last<> is true and i == end(). </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971709013040-bb"></a><span class="identifier">previous</span><span class="special">(</span><span class="identifier">const_iterator</span> prev_from<span class="special">,</span> <span class="identifier">iterator</span> i<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm44695-bb"></a><span class="identifier">previous</span><span class="special">(</span><span class="identifier">const_iterator</span> prev_from<span class="special">,</span> <span class="identifier">iterator</span> i<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Returns</strong></span>: The iterator to the element before i in the list, starting the search on element after prev_from. Returns the end-iterator, if either i is the begin-iterator or the list is empty.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to the number of elements before i. Constant if cache_last<> is true and i == end(). </p> </li> <li class="listitem"> <pre class="literallayout"><span class="identifier">const_iterator</span> -<a name="idm45971709007632-bb"></a><span class="identifier">previous</span><span class="special">(</span><span class="identifier">const_iterator</span> prev_from<span class="special">,</span> <span class="identifier">const_iterator</span> i<span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<a name="idm44708-bb"></a><span class="identifier">previous</span><span class="special">(</span><span class="identifier">const_iterator</span> prev_from<span class="special">,</span> <span class="identifier">const_iterator</span> i<span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Returns</strong></span>: The const_iterator to the element before i in the list, starting the search on element after prev_from. Returns the end-const_iterator, if either i is the begin-const_iterator or the list is empty.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to the number of elements before i. Constant if cache_last<> is true and i == end(). </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971709002208-bb"></a><span class="identifier">check</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">void</span> <a name="idm44721-bb"></a><span class="identifier">check</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>: Asserts the integrity of the container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear time.</p> <p><span class="bold"><strong>Note</strong></span>: The method has no effect when asserts are turned off (e.g., with NDEBUG). Experimental function, interface might change in future versions. </p> @@ -804,11 +805,11 @@ </ol></div> </div> <div class="refsect2"> -<a name="id-1.3.20.42.35.4.4.8"></a><h3> -<a name="idm45971708973456-bb"></a><code class="computeroutput">slist</code> public static functions</h3> +<a name="id-1.3.18.42.35.4.4.8"></a><h3> +<a name="idm44794-bb"></a><code class="computeroutput">slist</code> public static functions</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <a class="link" href="slist.html" title="Class template slist">slist</a> <span class="special">&</span> <a name="idm45971708972896-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <a class="link" href="slist.html" title="Class template slist">slist</a> <span class="special">&</span> <a name="idm44795-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Precondition</strong></span>: end_iterator must be a valid end iterator of slist.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the slist associated to the end iterator</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> @@ -816,14 +817,14 @@ </li> <li class="listitem"> <pre class="literallayout"><span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="slist.html" title="Class template slist">slist</a> <span class="special">&</span> -<a name="idm45971708966912-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">const_iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<a name="idm44809-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">const_iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Precondition</strong></span>: end_iterator must be a valid end const_iterator of slist.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the slist associated to the end iterator</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="identifier">iterator</span> <a name="idm45971708960752-bb"></a><span class="identifier">s_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">iterator</span> <a name="idm44823-bb"></a><span class="identifier">s_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 a reference to a value inserted in a list.</p> <p><span class="bold"><strong>Effects</strong></span>: This function returns a const_iterator pointing to the element</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> @@ -831,7 +832,7 @@ <p><span class="bold"><strong>Note</strong></span>: Iterators and references are not invalidated. 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">const_iterator</span> <a name="idm45971708953680-bb"></a><span class="identifier">s_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> +<pre class="literallayout"><span class="keyword">static</span> <span class="identifier">const_iterator</span> <a name="idm44839-bb"></a><span class="identifier">s_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 a const reference to a value inserted in a list.</p> <p><span class="bold"><strong>Effects</strong></span>: This function returns an iterator pointing to the element.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> @@ -841,44 +842,41 @@ </ol></div> </div> <div class="refsect2"> -<a name="id-1.3.20.42.35.4.4.9"></a><h3> -<a name="idm45971708946448-bb"></a><code class="computeroutput">slist</code> private member functions</h3> +<a name="id-1.3.18.42.35.4.4.9"></a><h3> +<a name="idm44855-bb"></a><code class="computeroutput">slist</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="idm45971708945872-bb"></a><span class="identifier">priv_splice_after</span><span class="special">(</span><span class="identifier">node_ptr</span> prev_pos_n<span class="special">,</span> <a class="link" href="slist.html" title="Class template slist">slist</a> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">node_ptr</span> before_f_n<span class="special">,</span> +<li class="listitem"><pre class="literallayout"><span class="keyword">void</span> <a name="idm44856-bb"></a><span class="identifier">priv_splice_after</span><span class="special">(</span><span class="identifier">node_ptr</span> prev_pos_n<span class="special">,</span> <a class="link" href="slist.html" title="Class template slist">slist</a> <span class="special">&</span> x<span class="special">,</span> <span class="identifier">node_ptr</span> before_f_n<span class="special">,</span> <span class="identifier">node_ptr</span> before_l_n<span class="special">)</span><span class="special">;</span></pre></li> -<li class="listitem"><pre class="literallayout"><span class="keyword">void</span> <a name="idm45971708941984-bb"></a><span class="identifier">priv_incorporate_after</span><span class="special">(</span><span class="identifier">node_ptr</span> prev_pos_n<span class="special">,</span> <span class="identifier">node_ptr</span> first_n<span class="special">,</span> +<li class="listitem"><pre class="literallayout"><span class="keyword">void</span> <a name="idm44867-bb"></a><span class="identifier">priv_incorporate_after</span><span class="special">(</span><span class="identifier">node_ptr</span> prev_pos_n<span class="special">,</span> <span class="identifier">node_ptr</span> first_n<span class="special">,</span> <span class="identifier">node_ptr</span> before_l_n<span class="special">)</span><span class="special">;</span></pre></li> -<li class="listitem"><pre class="literallayout"><span class="keyword">void</span> <a name="idm45971708939072-bb"></a><span class="identifier">priv_reverse</span><span class="special">(</span><span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span></pre></li> -<li class="listitem"><pre class="literallayout"><span class="keyword">void</span> <a name="idm45971708937408-bb"></a><span class="identifier">priv_reverse</span><span class="special">(</span><span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span></pre></li> -<li class="listitem"><pre class="literallayout"><span class="keyword">void</span> <a name="idm45971708935744-bb"></a><span class="identifier">priv_shift_backwards</span><span class="special">(</span><span class="identifier">size_type</span> n<span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span></pre></li> -<li class="listitem"><pre class="literallayout"><span class="keyword">void</span> <a name="idm45971708933392-bb"></a><span class="identifier">priv_shift_backwards</span><span class="special">(</span><span class="identifier">size_type</span> n<span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span></pre></li> -<li class="listitem"><pre class="literallayout"><span class="keyword">void</span> <a name="idm45971708931040-bb"></a><span class="identifier">priv_shift_forward</span><span class="special">(</span><span class="identifier">size_type</span> n<span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span></pre></li> -<li class="listitem"><pre class="literallayout"><span class="keyword">void</span> <a name="idm45971708928688-bb"></a><span class="identifier">priv_shift_forward</span><span class="special">(</span><span class="identifier">size_type</span> n<span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">void</span> <a name="idm44875-bb"></a><span class="identifier">priv_reverse</span><span class="special">(</span><span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">void</span> <a name="idm44880-bb"></a><span class="identifier">priv_reverse</span><span class="special">(</span><span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">void</span> <a name="idm44885-bb"></a><span class="identifier">priv_shift_backwards</span><span class="special">(</span><span class="identifier">size_type</span> n<span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">void</span> <a name="idm44892-bb"></a><span class="identifier">priv_shift_backwards</span><span class="special">(</span><span class="identifier">size_type</span> n<span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">void</span> <a name="idm44899-bb"></a><span class="identifier">priv_shift_forward</span><span class="special">(</span><span class="identifier">size_type</span> n<span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">void</span> <a name="idm44906-bb"></a><span class="identifier">priv_shift_forward</span><span class="special">(</span><span class="identifier">size_type</span> n<span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span></pre></li> </ol></div> </div> <div class="refsect2"> -<a name="id-1.3.20.42.35.4.4.10"></a><h3> -<a name="idm45971708926176-bb"></a><code class="computeroutput">slist</code> private static functions</h3> +<a name="id-1.3.18.42.35.4.4.10"></a><h3> +<a name="idm44913-bb"></a><code class="computeroutput">slist</code> private static functions</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> -<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971708925600-bb"></a><span class="identifier">priv_swap_cache_last</span><span class="special">(</span><a class="link" href="slist.html" title="Class template slist">slist</a> <span class="special">*</span> this_impl<span class="special">,</span> <a class="link" href="slist.html" title="Class template slist">slist</a> <span class="special">*</span> other_impl<span class="special">)</span><span class="special">;</span></pre></li> -<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971708922528-bb"></a><span class="identifier">priv_swap_lists</span><span class="special">(</span><span class="identifier">node_ptr</span> this_node<span class="special">,</span> <span class="identifier">node_ptr</span> other_node<span class="special">,</span> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm44914-bb"></a><span class="identifier">priv_swap_cache_last</span><span class="special">(</span><a class="link" href="slist.html" title="Class template slist">slist</a> <span class="special">*</span> this_impl<span class="special">,</span> <a class="link" href="slist.html" title="Class template slist">slist</a> <span class="special">*</span> other_impl<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm44922-bb"></a><span class="identifier">priv_swap_lists</span><span class="special">(</span><span class="identifier">node_ptr</span> this_node<span class="special">,</span> <span class="identifier">node_ptr</span> other_node<span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span></pre></li> -<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971708919216-bb"></a><span class="identifier">priv_swap_lists</span><span class="special">(</span><span class="identifier">node_ptr</span> this_node<span class="special">,</span> <span class="identifier">node_ptr</span> other_node<span class="special">,</span> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm44931-bb"></a><span class="identifier">priv_swap_lists</span><span class="special">(</span><span class="identifier">node_ptr</span> this_node<span class="special">,</span> <span class="identifier">node_ptr</span> other_node<span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span></pre></li> <li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <a class="link" href="slist.html" title="Class template slist">slist</a> <span class="special">&</span> -<a name="idm45971708915904-bb"></a><span class="identifier">priv_container_from_end_iterator</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_iterator</span> <span class="special">&</span> end_iterator<span class="special">)</span><span class="special">;</span></pre></li> +<a name="idm44940-bb"></a><span class="identifier">priv_container_from_end_iterator</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_iterator</span> <span class="special">&</span> end_iterator<span class="special">)</span><span class="special">;</span></pre></li> </ol></div> </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="make_slist.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.slist_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_slist_base_hook.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/slist_base_hook.html b/doc/html/boost/intrusive/slist_base_hook.html index 53bb87b760..6d6e324e0e 100644 --- a/doc/html/boost/intrusive/slist_base_hook.html +++ b/doc/html/boost/intrusive/slist_base_hook.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.slist_hook_hpp" title="Header <boost/intrusive/slist_hook.hpp>"> <link rel="prev" href="make_slist_member_hook.html" title="Struct template make_slist_member_hook"> <link rel="next" href="slist_member_hook.html" title="Class template slist_member_hook"> +<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> @@ -29,79 +30,79 @@ <h2><span class="refentrytitle">Class template slist_base_hook</span></h2> <p>boost::intrusive::slist_base_hook</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.slist_hook_hpp" title="Header <boost/intrusive/slist_hook.hpp>">boost/intrusive/slist_hook.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.slist_hook_hpp" title="Header <boost/intrusive/slist_hook.hpp>">boost/intrusive/slist_hook.hpp</a>> </span><span class="keyword">template</span><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="slist_base_hook.html" title="Class template slist_base_hook">slist_base_hook</a> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">make_slist_base_hook</span><span class="special">::</span><span class="identifier">type</span><span class="special"><</span> <span class="identifier">O1</span><span class="special">,</span> <span class="identifier">O2</span><span class="special">,</span> <span class="identifier">O3</span> <span class="special">></span> <span class="special">{</span> +<span class="keyword">class</span> <a class="link" href="slist_base_hook.html" title="Class template slist_base_hook">slist_base_hook</a> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">make_slist_base_hook</span><span class="special">::</span><span class="identifier">type</span> <span class="special">{</span> <span class="keyword">public</span><span class="special">:</span> <span class="comment">// <a class="link" href="slist_base_hook.html#boost.intrusive.slist_base_hookconstruct-copy-destruct">construct/copy/destruct</a></span> - <a class="link" href="slist_base_hook.html#idm45971708875200-bb"><span class="identifier">slist_base_hook</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <a class="link" href="slist_base_hook.html#idm45971708871152-bb"><span class="identifier">slist_base_hook</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="slist_base_hook.html" title="Class template slist_base_hook">slist_base_hook</a> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <a class="link" href="slist_base_hook.html" title="Class template slist_base_hook">slist_base_hook</a> <span class="special">&</span> <a class="link" href="slist_base_hook.html#idm45971708864512-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="slist_base_hook.html" title="Class template slist_base_hook">slist_base_hook</a> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <a class="link" href="slist_base_hook.html#idm45971708858944-bb"><span class="special">~</span><span class="identifier">slist_base_hook</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="slist_base_hook.html#idm45032-bb"><span class="identifier">slist_base_hook</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <a class="link" href="slist_base_hook.html#idm45041-bb"><span class="identifier">slist_base_hook</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="slist_base_hook.html" title="Class template slist_base_hook">slist_base_hook</a> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <a class="link" href="slist_base_hook.html" title="Class template slist_base_hook">slist_base_hook</a> <span class="special">&</span> <a class="link" href="slist_base_hook.html#idm45056-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="slist_base_hook.html" title="Class template slist_base_hook">slist_base_hook</a> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <a class="link" href="slist_base_hook.html#idm45070-bb"><span class="special">~</span><span class="identifier">slist_base_hook</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> - <span class="comment">// <a class="link" href="slist_base_hook.html#idm45971708892208-bb">public member functions</a></span> - <span class="keyword">void</span> <a class="link" href="slist_base_hook.html#idm45971708891648-bb"><span class="identifier">swap_nodes</span></a><span class="special">(</span><a class="link" href="slist_base_hook.html" title="Class template slist_base_hook">slist_base_hook</a> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">bool</span> <a class="link" href="slist_base_hook.html#idm45971708886368-bb"><span class="identifier">is_linked</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="slist_base_hook.html#idm45971708879552-bb"><span class="identifier">unlink</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="slist_base_hook.html#idm44995-bb">public member functions</a></span> + <span class="keyword">void</span> <a class="link" href="slist_base_hook.html#idm44996-bb"><span class="identifier">swap_nodes</span></a><span class="special">(</span><a class="link" href="slist_base_hook.html" title="Class template slist_base_hook">slist_base_hook</a> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">bool</span> <a class="link" href="slist_base_hook.html#idm45008-bb"><span class="identifier">is_linked</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="slist_base_hook.html#idm45023-bb"><span class="identifier">unlink</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</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.36.5.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.36.5.4"></a><h2>Description</h2> <p>Derive a class from <a class="link" href="slist_base_hook.html" title="Class template slist_base_hook">slist_base_hook</a> in order to store objects in in an list. <a class="link" href="slist_base_hook.html" title="Class template slist_base_hook">slist_base_hook</a> holds the data necessary to maintain the list and provides an appropriate <a class="link" href="value_traits.html" title="Struct template value_traits">value_traits</a> class for list.</p> <p>The hook admits the following options: <code class="computeroutput">tag<></code>, <code class="computeroutput">void_pointer<></code> and <code class="computeroutput">link_mode<></code>.</p> <p><code class="computeroutput">tag<></code> defines a tag to identify the node. The same tag value can be used in different classes, but if a class is derived from more than one <code class="computeroutput"><a class="link" href="list_base_hook.html" title="Class template list_base_hook">list_base_hook</a></code>, then each <code class="computeroutput"><a class="link" href="list_base_hook.html" title="Class template list_base_hook">list_base_hook</a></code> needs its unique tag.</p> <p><code class="computeroutput">link_mode<></code> will specify the linking mode of the hook (<code class="computeroutput">normal_link</code>, <code class="computeroutput">auto_unlink</code> or <code class="computeroutput">safe_link</code>).</p> <p><code class="computeroutput">void_pointer<></code> is the pointer type that will be used internally in the hook and the container configured to use this hook. </p> <div class="refsect2"> -<a name="id-1.3.20.42.36.5.4.7"></a><h3> +<a name="id-1.3.18.42.36.5.4.7"></a><h3> <a name="boost.intrusive.slist_base_hookconstruct-copy-destruct"></a><code class="computeroutput">slist_base_hook</code> public construct/copy/destruct</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> <li class="listitem"> -<pre class="literallayout"><a name="idm45971708875200-bb"></a><span class="identifier">slist_base_hook</span><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm45032-bb"></a><span class="identifier">slist_base_hook</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>: If <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is <code class="computeroutput">auto_unlink</code> or <code class="computeroutput">safe_link</code> initializes the node to an unlinked state.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><a name="idm45971708871152-bb"></a><span class="identifier">slist_base_hook</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="slist_base_hook.html" title="Class template slist_base_hook">slist_base_hook</a> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm45041-bb"></a><span class="identifier">slist_base_hook</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="slist_base_hook.html" title="Class template slist_base_hook">slist_base_hook</a> <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>: If <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is <code class="computeroutput">auto_unlink</code> or <code class="computeroutput">safe_link</code> initializes the node to an unlinked state. The argument is ignored.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Rationale</strong></span>: Providing a copy-constructor makes classes using the hook STL-compliant without forcing the user to do some additional work. <code class="computeroutput">swap</code> can be used to emulate move-semantics. </p> </li> <li class="listitem"> -<pre class="literallayout"><a class="link" href="slist_base_hook.html" title="Class template slist_base_hook">slist_base_hook</a> <span class="special">&</span> <a name="idm45971708864512-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="slist_base_hook.html" title="Class template slist_base_hook">slist_base_hook</a> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><a class="link" href="slist_base_hook.html" title="Class template slist_base_hook">slist_base_hook</a> <span class="special">&</span> <a name="idm45056-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="slist_base_hook.html" title="Class template slist_base_hook">slist_base_hook</a> <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>: Empty function. The argument is ignored.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Rationale</strong></span>: Providing an assignment operator makes classes using the hook STL-compliant without forcing the user to do some additional work. <code class="computeroutput">swap</code> can be used to emulate move-semantics. </p> </li> <li class="listitem"> -<pre class="literallayout"><a name="idm45971708858944-bb"></a><span class="special">~</span><span class="identifier">slist_base_hook</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm45070-bb"></a><span class="special">~</span><span class="identifier">slist_base_hook</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: If <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is <code class="computeroutput">normal_link</code>, the destructor does nothing (ie. no code is generated). If <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is <code class="computeroutput">safe_link</code> and the object is stored in an slist an assertion is raised. If <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is <code class="computeroutput">auto_unlink</code> and <code class="computeroutput">is_linked()</code> is true, the node is unlinked.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> </ol></div> </div> <div class="refsect2"> -<a name="id-1.3.20.42.36.5.4.8"></a><h3> -<a name="idm45971708892208-bb"></a><code class="computeroutput">slist_base_hook</code> public member functions</h3> +<a name="id-1.3.18.42.36.5.4.8"></a><h3> +<a name="idm44995-bb"></a><code class="computeroutput">slist_base_hook</code> public member functions</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971708891648-bb"></a><span class="identifier">swap_nodes</span><span class="special">(</span><a class="link" href="slist_base_hook.html" title="Class template slist_base_hook">slist_base_hook</a> <span class="special">&</span> other<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">void</span> <a name="idm44996-bb"></a><span class="identifier">swap_nodes</span><span class="special">(</span><a class="link" href="slist_base_hook.html" title="Class template slist_base_hook">slist_base_hook</a> <span class="special">&</span> other<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Swapping two nodes swaps the position of the elements related to those nodes in one or two containers. That is, if the node this is part of the element e1, the node x is part of the element e2 and both elements are included in the containers s1 and s2, then after the swap-operation e1 is in s2 at the position of e2 and e2 is in s1 at the position of e1. If one element is not in a container, then after the swap-operation the other element is not in a container. Iterators to e1 and e2 related to those nodes are invalidated.</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="keyword">bool</span> <a name="idm45971708886368-bb"></a><span class="identifier">is_linked</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="idm45008-bb"></a><span class="identifier">is_linked</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>Precondition</strong></span>: <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> must be <code class="computeroutput">safe_link</code> or <code class="computeroutput">auto_unlink</code>.</p> <p><span class="bold"><strong>Returns</strong></span>: true, if the node belongs to a container, false otherwise. This function can be used to test whether <code class="computeroutput">slist::iterator_to</code> will return a valid iterator.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971708879552-bb"></a><span class="identifier">unlink</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="idm45023-bb"></a><span class="identifier">unlink</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>: Removes the node if it's inserted in a container. This function is only allowed if <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is <code class="computeroutput">auto_unlink</code>.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> @@ -109,14 +110,11 @@ </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="make_slist_member_hook.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.slist_hook_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="slist_member_hook.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/slist_member_hook.html b/doc/html/boost/intrusive/slist_member_hook.html index d3a289a2d3..8802f48ae3 100644 --- a/doc/html/boost/intrusive/slist_member_hook.html +++ b/doc/html/boost/intrusive/slist_member_hook.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.slist_hook_hpp" title="Header <boost/intrusive/slist_hook.hpp>"> <link rel="prev" href="slist_base_hook.html" title="Class template slist_base_hook"> <link rel="next" href="make_splay_multiset.html" title="Struct template make_splay_multiset"> +<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> @@ -29,78 +30,78 @@ <h2><span class="refentrytitle">Class template slist_member_hook</span></h2> <p>boost::intrusive::slist_member_hook</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.slist_hook_hpp" title="Header <boost/intrusive/slist_hook.hpp>">boost/intrusive/slist_hook.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.slist_hook_hpp" title="Header <boost/intrusive/slist_hook.hpp>">boost/intrusive/slist_hook.hpp</a>> </span><span class="keyword">template</span><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="slist_member_hook.html" title="Class template slist_member_hook">slist_member_hook</a> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">make_slist_member_hook</span><span class="special">::</span><span class="identifier">type</span><span class="special"><</span> <span class="identifier">O1</span><span class="special">,</span> <span class="identifier">O2</span><span class="special">,</span> <span class="identifier">O3</span> <span class="special">></span> <span class="special">{</span> +<span class="keyword">class</span> <a class="link" href="slist_member_hook.html" title="Class template slist_member_hook">slist_member_hook</a> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">make_slist_member_hook</span><span class="special">::</span><span class="identifier">type</span> <span class="special">{</span> <span class="keyword">public</span><span class="special">:</span> <span class="comment">// <a class="link" href="slist_member_hook.html#boost.intrusive.slist_member_hookconstruct-copy-destruct">construct/copy/destruct</a></span> - <a class="link" href="slist_member_hook.html#idm45971708827360-bb"><span class="identifier">slist_member_hook</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> - <a class="link" href="slist_member_hook.html#idm45971708823584-bb"><span class="identifier">slist_member_hook</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="slist_member_hook.html" title="Class template slist_member_hook">slist_member_hook</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span> - <a class="link" href="slist_member_hook.html" title="Class template slist_member_hook">slist_member_hook</a> <span class="special">&</span> <a class="link" href="slist_member_hook.html#idm45971708817216-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="slist_member_hook.html" title="Class template slist_member_hook">slist_member_hook</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span> - <a class="link" href="slist_member_hook.html#idm45971708811920-bb"><span class="special">~</span><span class="identifier">slist_member_hook</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="slist_member_hook.html#idm45140-bb"><span class="identifier">slist_member_hook</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="slist_member_hook.html#idm45149-bb"><span class="identifier">slist_member_hook</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="slist_member_hook.html" title="Class template slist_member_hook">slist_member_hook</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="slist_member_hook.html" title="Class template slist_member_hook">slist_member_hook</a> <span class="special">&</span> <a class="link" href="slist_member_hook.html#idm45164-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="slist_member_hook.html" title="Class template slist_member_hook">slist_member_hook</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="slist_member_hook.html#idm45178-bb"><span class="special">~</span><span class="identifier">slist_member_hook</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> - <span class="comment">// <a class="link" href="slist_member_hook.html#idm45971708844032-bb">public member functions</a></span> - <span class="keyword">void</span> <a class="link" href="slist_member_hook.html#idm45971708843472-bb"><span class="identifier">swap_nodes</span></a><span class="special">(</span><a class="link" href="slist_member_hook.html" title="Class template slist_member_hook">slist_member_hook</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">bool</span> <a class="link" href="slist_member_hook.html#idm45971708838464-bb"><span class="identifier">is_linked</span></a><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="slist_member_hook.html#idm45971708831440-bb"><span class="identifier">unlink</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="comment">// <a class="link" href="slist_member_hook.html#idm45103-bb">public member functions</a></span> + <span class="keyword">void</span> <a class="link" href="slist_member_hook.html#idm45104-bb"><span class="identifier">swap_nodes</span></a><span class="special">(</span><a class="link" href="slist_member_hook.html" title="Class template slist_member_hook">slist_member_hook</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">bool</span> <a class="link" href="slist_member_hook.html#idm45116-bb"><span class="identifier">is_linked</span></a><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="slist_member_hook.html#idm45131-bb"><span class="identifier">unlink</span></a><span class="special">(</span><span class="special">)</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.36.6.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.36.6.4"></a><h2>Description</h2> <p>Put a public data member <a class="link" href="slist_member_hook.html" title="Class template slist_member_hook">slist_member_hook</a> in order to store objects of this class in an list. <a class="link" href="slist_member_hook.html" title="Class template slist_member_hook">slist_member_hook</a> holds the data necessary for maintaining the list and provides an appropriate <a class="link" href="value_traits.html" title="Struct template value_traits">value_traits</a> class for list.</p> <p>The hook admits the following options: <code class="computeroutput">void_pointer<></code> and <code class="computeroutput">link_mode<></code>.</p> <p><code class="computeroutput">link_mode<></code> will specify the linking mode of the hook (<code class="computeroutput">normal_link</code>, <code class="computeroutput">auto_unlink</code> or <code class="computeroutput">safe_link</code>).</p> <p><code class="computeroutput">void_pointer<></code> is the pointer type that will be used internally in the hook and the container configured to use this hook. </p> <div class="refsect2"> -<a name="id-1.3.20.42.36.6.4.6"></a><h3> +<a name="id-1.3.18.42.36.6.4.6"></a><h3> <a name="boost.intrusive.slist_member_hookconstruct-copy-destruct"></a><code class="computeroutput">slist_member_hook</code> public construct/copy/destruct</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> <li class="listitem"> -<pre class="literallayout"><a name="idm45971708827360-bb"></a><span class="identifier">slist_member_hook</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm45140-bb"></a><span class="identifier">slist_member_hook</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: If <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is <code class="computeroutput">auto_unlink</code> or <code class="computeroutput">safe_link</code> initializes the node to an unlinked state.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><a name="idm45971708823584-bb"></a><span class="identifier">slist_member_hook</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="slist_member_hook.html" title="Class template slist_member_hook">slist_member_hook</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm45149-bb"></a><span class="identifier">slist_member_hook</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="slist_member_hook.html" title="Class template slist_member_hook">slist_member_hook</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: If <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is <code class="computeroutput">auto_unlink</code> or <code class="computeroutput">safe_link</code> initializes the node to an unlinked state. The argument is ignored.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Rationale</strong></span>: Providing a copy-constructor makes classes using the hook STL-compliant without forcing the user to do some additional work. <code class="computeroutput">swap</code> can be used to emulate move-semantics. </p> </li> <li class="listitem"> -<pre class="literallayout"><a class="link" href="slist_member_hook.html" title="Class template slist_member_hook">slist_member_hook</a> <span class="special">&</span> <a name="idm45971708817216-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="slist_member_hook.html" title="Class template slist_member_hook">slist_member_hook</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a class="link" href="slist_member_hook.html" title="Class template slist_member_hook">slist_member_hook</a> <span class="special">&</span> <a name="idm45164-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="slist_member_hook.html" title="Class template slist_member_hook">slist_member_hook</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Empty function. The argument is ignored.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Rationale</strong></span>: Providing an assignment operator makes classes using the hook STL-compliant without forcing the user to do some additional work. <code class="computeroutput">swap</code> can be used to emulate move-semantics. </p> </li> <li class="listitem"> -<pre class="literallayout"><a name="idm45971708811920-bb"></a><span class="special">~</span><span class="identifier">slist_member_hook</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm45178-bb"></a><span class="special">~</span><span class="identifier">slist_member_hook</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: If <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is <code class="computeroutput">normal_link</code>, the destructor does nothing (ie. no code is generated). If <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is <code class="computeroutput">safe_link</code> and the object is stored in an slist an assertion is raised. If <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is <code class="computeroutput">auto_unlink</code> and <code class="computeroutput">is_linked()</code> is true, the node is unlinked.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> </ol></div> </div> <div class="refsect2"> -<a name="id-1.3.20.42.36.6.4.7"></a><h3> -<a name="idm45971708844032-bb"></a><code class="computeroutput">slist_member_hook</code> public member functions</h3> +<a name="id-1.3.18.42.36.6.4.7"></a><h3> +<a name="idm45103-bb"></a><code class="computeroutput">slist_member_hook</code> public member functions</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971708843472-bb"></a><span class="identifier">swap_nodes</span><span class="special">(</span><a class="link" href="slist_member_hook.html" title="Class template slist_member_hook">slist_member_hook</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="idm45104-bb"></a><span class="identifier">swap_nodes</span><span class="special">(</span><a class="link" href="slist_member_hook.html" title="Class template slist_member_hook">slist_member_hook</a> <span class="special">&</span> other<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Swapping two nodes swaps the position of the elements related to those nodes in one or two containers. That is, if the node this is part of the element e1, the node x is part of the element e2 and both elements are included in the containers s1 and s2, then after the swap-operation e1 is in s2 at the position of e2 and e2 is in s1 at the position of e1. If one element is not in a container, then after the swap-operation the other element is not in a container. Iterators to e1 and e2 related to those nodes are invalidated.</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="keyword">bool</span> <a name="idm45971708838464-bb"></a><span class="identifier">is_linked</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">bool</span> <a name="idm45116-bb"></a><span class="identifier">is_linked</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Precondition</strong></span>: <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> must be <code class="computeroutput">safe_link</code> or <code class="computeroutput">auto_unlink</code>.</p> <p><span class="bold"><strong>Returns</strong></span>: true, if the node belongs to a container, false otherwise. This function can be used to test whether <code class="computeroutput">slist::iterator_to</code> will return a valid iterator.</p> <p><span class="bold"><strong>Note</strong></span>: If this member is called when the value is inserted in a slist with the option linear<true>, this function will return "false" for the last element, as it is not linked to anything (the next element is null), so use with care.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971708831440-bb"></a><span class="identifier">unlink</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">void</span> <a name="idm45131-bb"></a><span class="identifier">unlink</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Removes the node if it's inserted in a container. This function is only allowed if <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is <code class="computeroutput">auto_unlink</code>.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> @@ -108,14 +109,11 @@ </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="slist_base_hook.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.slist_hook_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_splay_multiset.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/splay_multiset.html b/doc/html/boost/intrusive/splay_multiset.html index 05ac8f8161..bdab2a19e3 100644 --- a/doc/html/boost/intrusive/splay_multiset.html +++ b/doc/html/boost/intrusive/splay_multiset.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.splay_set_hpp" title="Header <boost/intrusive/splay_set.hpp>"> <link rel="prev" href="make_splay_set.html" title="Struct template make_splay_set"> <link rel="next" href="splay_set.html" title="Class template splay_set"> +<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> @@ -29,8 +30,8 @@ <h2><span class="refentrytitle">Class template splay_multiset</span></h2> <p>boost::intrusive::splay_multiset</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.splay_set_hpp" title="Header <boost/intrusive/splay_set.hpp>">boost/intrusive/splay_set.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.splay_set_hpp" title="Header <boost/intrusive/splay_set.hpp>">boost/intrusive/splay_set.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="splay_multiset.html" title="Class template splay_multiset">splay_multiset</a> <span class="special">{</span> @@ -60,440 +61,374 @@ <span class="keyword">typedef</span> <span class="identifier">implementation_defined</span><span class="special">::</span><span class="identifier">node_algorithms</span> <a name="boost.intrusive.splay_multiset.node_algorithms"></a><span class="identifier">node_algorithms</span><span class="special">;</span> <span class="comment">// <a class="link" href="splay_multiset.html#boost.intrusive.splay_multisetconstruct-copy-destruct">construct/copy/destruct</a></span> - <a class="link" href="splay_multiset.html#idm45971708299616-bb"><span class="identifier">splay_multiset</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">explicit</span> <a class="link" href="splay_multiset.html#idm45971708296464-bb"><span class="identifier">splay_multiset</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span><span class="special">,</span> + <a class="link" href="splay_multiset.html#idm46162-bb"><span class="identifier">splay_multiset</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">explicit</span> <a class="link" href="splay_multiset.html#idm46170-bb"><span class="identifier">splay_multiset</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_compare</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="splay_multiset.html#idm45971708291344-bb"><span class="identifier">splay_multiset</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="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> <span class="special">=</span> <span class="identifier">key_compare</span><span class="special">(</span><span class="special">)</span><span class="special">,</span> + <a class="link" href="splay_multiset.html#idm46176-bb"><span class="identifier">splay_multiset</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="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> <span class="special">=</span> <span class="identifier">key_compare</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="splay_multiset.html#idm45971708282880-bb"><span class="identifier">splay_multiset</span></a><span class="special">(</span><a class="link" href="splay_multiset.html" title="Class template splay_multiset">splay_multiset</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> - <a class="link" href="splay_multiset.html" title="Class template splay_multiset">splay_multiset</a> <span class="special">&</span> <a class="link" href="splay_multiset.html#idm45971708278576-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><a class="link" href="splay_multiset.html" title="Class template splay_multiset">splay_multiset</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> - <a class="link" href="splay_multiset.html#idm45971708275760-bb"><span class="special">~</span><span class="identifier">splay_multiset</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="splay_multiset.html#idm46189-bb"><span class="identifier">splay_multiset</span></a><span class="special">(</span><a class="link" href="splay_multiset.html" title="Class template splay_multiset">splay_multiset</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="splay_multiset.html" title="Class template splay_multiset">splay_multiset</a> <span class="special">&</span> <a class="link" href="splay_multiset.html#idm46200-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><a class="link" href="splay_multiset.html" title="Class template splay_multiset">splay_multiset</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="splay_multiset.html#idm46209-bb"><span class="special">~</span><span class="identifier">splay_multiset</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> - <span class="comment">// <a class="link" href="splay_multiset.html#idm45971708768160-bb">public member functions</a></span> - <span class="identifier">iterator</span> <a class="link" href="splay_multiset.html#idm45971708767600-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="splay_multiset.html#idm45971708763760-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="splay_multiset.html#idm45971708759920-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="splay_multiset.html#idm45971708756080-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="splay_multiset.html#idm45971708752240-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="splay_multiset.html#idm45971708748400-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">reverse_iterator</span> <a class="link" href="splay_multiset.html#idm45971708744560-bb"><span class="identifier">rbegin</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="identifier">const_reverse_iterator</span> <a class="link" href="splay_multiset.html#idm45971708740704-bb"><span class="identifier">rbegin</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_reverse_iterator</span> <a class="link" href="splay_multiset.html#idm45971708736848-bb"><span class="identifier">crbegin</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">reverse_iterator</span> <a class="link" href="splay_multiset.html#idm45971708732992-bb"><span class="identifier">rend</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="identifier">const_reverse_iterator</span> <a class="link" href="splay_multiset.html#idm45971708729136-bb"><span class="identifier">rend</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_reverse_iterator</span> <a class="link" href="splay_multiset.html#idm45971708725280-bb"><span class="identifier">crend</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="splay_multiset.html#idm45971708721424-bb"><span class="identifier">root</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="splay_multiset.html#idm45971708717552-bb"><span class="identifier">root</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="splay_multiset.html#idm45971708713680-bb"><span class="identifier">croot</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">key_compare</span> <a class="link" href="splay_multiset.html#idm45971708709808-bb"><span class="identifier">key_comp</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">value_compare</span> <a class="link" href="splay_multiset.html#idm45971708705952-bb"><span class="identifier">value_comp</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="splay_multiset.html#idm45971708702080-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="splay_multiset.html#idm45971708698256-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="splay_multiset.html#idm45971708694320-bb"><span class="identifier">swap</span></a><span class="special">(</span><a class="link" href="splay_multiset.html" title="Class template splay_multiset">splay_multiset</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="comment">// <a class="link" href="splay_multiset.html#idm45277-bb">public member functions</a></span> + <span class="identifier">iterator</span> <a class="link" href="splay_multiset.html#idm45278-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="splay_multiset.html#idm45287-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="splay_multiset.html#idm45296-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="splay_multiset.html#idm45305-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="splay_multiset.html#idm45314-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="splay_multiset.html#idm45323-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">reverse_iterator</span> <a class="link" href="splay_multiset.html#idm45332-bb"><span class="identifier">rbegin</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">const_reverse_iterator</span> <a class="link" href="splay_multiset.html#idm45341-bb"><span class="identifier">rbegin</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_reverse_iterator</span> <a class="link" href="splay_multiset.html#idm45350-bb"><span class="identifier">crbegin</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">reverse_iterator</span> <a class="link" href="splay_multiset.html#idm45359-bb"><span class="identifier">rend</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">const_reverse_iterator</span> <a class="link" href="splay_multiset.html#idm45368-bb"><span class="identifier">rend</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_reverse_iterator</span> <a class="link" href="splay_multiset.html#idm45377-bb"><span class="identifier">crend</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="splay_multiset.html#idm45386-bb"><span class="identifier">root</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="splay_multiset.html#idm45395-bb"><span class="identifier">root</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="splay_multiset.html#idm45404-bb"><span class="identifier">croot</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">key_compare</span> <a class="link" href="splay_multiset.html#idm45413-bb"><span class="identifier">key_comp</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">value_compare</span> <a class="link" href="splay_multiset.html#idm45422-bb"><span class="identifier">value_comp</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="splay_multiset.html#idm45431-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="splay_multiset.html#idm45440-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="splay_multiset.html#idm45449-bb"><span class="identifier">swap</span></a><span class="special">(</span><a class="link" href="splay_multiset.html" title="Class template splay_multiset">splay_multiset</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="splay_multiset.html#idm45971708689776-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="splay_multiset.html" title="Class template splay_multiset">splay_multiset</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="splay_multiset.html#idm45461-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="splay_multiset.html" title="Class template splay_multiset">splay_multiset</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="splay_multiset.html#idm45971708680656-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><a class="link" href="splay_multiset.html" title="Class template splay_multiset">splay_multiset</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="splay_multiset.html#idm45971708670848-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="identifier">reference</span><span class="special">)</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="splay_multiset.html#idm45971708664688-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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="splay_multiset.html#idm45971708657664-bb"><span class="identifier">insert</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">iterator</span> <a class="link" href="splay_multiset.html#idm45971708649824-bb"><span class="identifier">insert_before</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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">void</span> <a class="link" href="splay_multiset.html#idm45971708642592-bb"><span class="identifier">push_back</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">void</span> <a class="link" href="splay_multiset.html#idm45971708636032-bb"><span class="identifier">push_front</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">iterator</span> <a class="link" href="splay_multiset.html#idm45971708629472-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="identifier">iterator</span> <a class="link" href="splay_multiset.html#idm45971708623984-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="splay_multiset.html#idm45971708617744-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">void</span> <a class="link" href="splay_multiset.html#idm45483-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><a class="link" href="splay_multiset.html" title="Class template splay_multiset">splay_multiset</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="splay_multiset.html#idm45507-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="identifier">reference</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="splay_multiset.html#idm45511-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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="splay_multiset.html#idm45517-bb"><span class="identifier">insert</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">iterator</span> <a class="link" href="splay_multiset.html#idm45536-bb"><span class="identifier">insert_before</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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">void</span> <a class="link" href="splay_multiset.html#idm45553-bb"><span class="identifier">push_back</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">void</span> <a class="link" href="splay_multiset.html#idm45568-bb"><span class="identifier">push_front</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">iterator</span> <a class="link" href="splay_multiset.html#idm45583-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="identifier">iterator</span> <a class="link" href="splay_multiset.html#idm45587-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="splay_multiset.html#idm45593-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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">size_type</span> <a class="link" href="splay_multiset.html#idm45971708611696-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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">size_type</span> <a class="link" href="splay_multiset.html#idm45597-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">KeyTypeKeyCompare</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="identifier">iterator</span> <a class="link" href="splay_multiset.html#idm45971708601600-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="identifier">iterator</span> <a class="link" href="splay_multiset.html#idm45621-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="identifier">iterator</span> <a class="link" href="splay_multiset.html#idm45971708593696-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="identifier">iterator</span> <a class="link" href="splay_multiset.html#idm45629-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="splay_multiset.html#idm45971708585040-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="splay_multiset.html#idm45639-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> KeyTypeKeyCompare<span class="special">,</span> <span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="identifier">size_type</span> <a class="link" href="splay_multiset.html#idm45971708576512-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">KeyTypeKeyCompare</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="splay_multiset.html#idm45971708564288-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="splay_multiset.html#idm45971708559424-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="splay_multiset.html#idm45971708553120-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="special">;</span> + <span class="identifier">size_type</span> <a class="link" href="splay_multiset.html#idm45647-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">KeyTypeKeyCompare</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="splay_multiset.html#idm45676-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="splay_multiset.html#idm45687-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="splay_multiset.html#idm45701-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="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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">size_type</span> <a class="link" href="splay_multiset.html#idm45971708548272-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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="splay_multiset.html#idm45971708539440-bb"><span class="identifier">lower_bound</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="splay_multiset.html#idm45707-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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="splay_multiset.html#idm45728-bb"><span class="identifier">lower_bound</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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a class="link" href="splay_multiset.html#idm45971708534640-bb"><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> - <span class="identifier">const_iterator</span> <a class="link" href="splay_multiset.html#idm45971708527696-bb"><span class="identifier">lower_bound</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="splay_multiset.html#idm45734-bb"><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">const_iterator</span> <a class="link" href="splay_multiset.html#idm45745-bb"><span class="identifier">lower_bound</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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">const_iterator</span> <a class="link" href="splay_multiset.html#idm45971708522624-bb"><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="splay_multiset.html#idm45971708515456-bb"><span class="identifier">upper_bound</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="splay_multiset.html#idm45751-bb"><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="splay_multiset.html#idm45762-bb"><span class="identifier">upper_bound</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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a class="link" href="splay_multiset.html#idm45971708510592-bb"><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> - <span class="identifier">const_iterator</span> <a class="link" href="splay_multiset.html#idm45971708501792-bb"><span class="identifier">upper_bound</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="splay_multiset.html#idm45768-bb"><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">const_iterator</span> <a class="link" href="splay_multiset.html#idm45789-bb"><span class="identifier">upper_bound</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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">const_iterator</span> <a class="link" href="splay_multiset.html#idm45971708496720-bb"><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="splay_multiset.html#idm45971708487696-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">const_iterator</span> <a class="link" href="splay_multiset.html#idm45795-bb"><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="splay_multiset.html#idm45816-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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a class="link" href="splay_multiset.html#idm45971708482848-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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> - <span class="identifier">const_iterator</span> <a class="link" href="splay_multiset.html#idm45971708474016-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="splay_multiset.html#idm45822-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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">const_iterator</span> <a class="link" href="splay_multiset.html#idm45843-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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">const_iterator</span> <a class="link" href="splay_multiset.html#idm45971708468960-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">KeyTypeKeyCompare</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="splay_multiset.html#idm45971708459904-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="splay_multiset.html#idm45849-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">KeyTypeKeyCompare</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="splay_multiset.html#idm45870-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> KeyTypeKeyCompare<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="splay_multiset.html#idm45971708454960-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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="splay_multiset.html#idm45876-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">KeyTypeKeyCompare</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="splay_multiset.html#idm45971708446032-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="splay_multiset.html#idm45897-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> KeyTypeKeyCompare<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="splay_multiset.html#idm45971708440864-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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <a class="link" href="splay_multiset.html#idm45903-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">KeyTypeKeyCompare</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="splay_multiset.html#idm45971708431696-bb"><span class="identifier">bounded_range</span></a><span class="special">(</span><span class="identifier">const_reference</span><span class="special">,</span> <span class="identifier">const_reference</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="splay_multiset.html#idm45924-bb"><span class="identifier">bounded_range</span></a><span class="special">(</span><span class="identifier">const_reference</span><span class="special">,</span> <span class="identifier">const_reference</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</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> KeyTypeKeyCompare<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="splay_multiset.html#idm45971708419264-bb"><span class="identifier">bounded_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="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> + <a class="link" href="splay_multiset.html#idm45934-bb"><span class="identifier">bounded_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="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</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="splay_multiset.html#idm45971708402464-bb"><span class="identifier">bounded_range</span></a><span class="special">(</span><span class="identifier">const_reference</span><span class="special">,</span> <span class="identifier">const_reference</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <a class="link" href="splay_multiset.html#idm45976-bb"><span class="identifier">bounded_range</span></a><span class="special">(</span><span class="identifier">const_reference</span><span class="special">,</span> <span class="identifier">const_reference</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</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> KeyTypeKeyCompare<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="splay_multiset.html#idm45971708389744-bb"><span class="identifier">bounded_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="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> + <a class="link" href="splay_multiset.html#idm45986-bb"><span class="identifier">bounded_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="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="splay_multiset.html#idm45971708372656-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="splay_multiset.html#idm45971708367168-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">pointer</span> <a class="link" href="splay_multiset.html#idm45971708361680-bb"><span class="identifier">unlink_leftmost_without_rebalance</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="splay_multiset.html#idm45971708356768-bb"><span class="identifier">replace_node</span></a><span class="special">(</span><span class="identifier">iterator</span><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">void</span> <a class="link" href="splay_multiset.html#idm45971708349504-bb"><span class="identifier">remove_node</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">void</span> <a class="link" href="splay_multiset.html#idm45971708343664-bb"><span class="identifier">splay_up</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="splay_multiset.html#idm46028-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="splay_multiset.html#idm46032-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">pointer</span> <a class="link" href="splay_multiset.html#idm46036-bb"><span class="identifier">unlink_leftmost_without_rebalance</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="splay_multiset.html#idm46047-bb"><span class="identifier">replace_node</span></a><span class="special">(</span><span class="identifier">iterator</span><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">void</span> <a class="link" href="splay_multiset.html#idm46064-bb"><span class="identifier">remove_node</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">void</span> <a class="link" href="splay_multiset.html#idm46078-bb"><span class="identifier">splay_up</span></a><span class="special">(</span><span class="identifier">iterator</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> KeyType<span class="special">,</span> <span class="keyword">typename</span> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a class="link" href="splay_multiset.html#idm45971708338192-bb"><span class="identifier">splay_down</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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="splay_multiset.html#idm45971708330720-bb"><span class="identifier">splay_down</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">void</span> <a class="link" href="splay_multiset.html#idm45971708325456-bb"><span class="identifier">rebalance</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="splay_multiset.html#idm45971708321664-bb"><span class="identifier">rebalance_subtree</span></a><span class="special">(</span><span class="identifier">iterator</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">class</span> <span class="special">...</span> Options2<span class="special">></span> <span class="keyword">void</span> <a class="link" href="splay_multiset.html#idm45971708315392-bb"><span class="identifier">merge</span></a><span class="special">(</span><a class="link" href="splay_multiset.html" title="Class template splay_multiset">splay_multiset</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</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">class</span> <span class="special">...</span> Options2<span class="special">></span> <span class="keyword">void</span> <a class="link" href="splay_multiset.html#idm45971708307584-bb"><span class="identifier">merge</span></a><span class="special">(</span><a class="link" href="splay_set.html" title="Class template splay_set">splay_set</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="splay_multiset.html#idm46091-bb"><span class="identifier">splay_down</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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="splay_multiset.html#idm46109-bb"><span class="identifier">splay_down</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">void</span> <a class="link" href="splay_multiset.html#idm46122-bb"><span class="identifier">rebalance</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="splay_multiset.html#idm46131-bb"><span class="identifier">rebalance_subtree</span></a><span class="special">(</span><span class="identifier">iterator</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">class</span> <span class="special">...</span> Options2<span class="special">></span> <span class="keyword">void</span> <a class="link" href="splay_multiset.html#idm46146-bb"><span class="identifier">merge</span></a><span class="special">(</span><a class="link" href="splay_multiset.html" title="Class template splay_multiset">splay_multiset</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</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">class</span> <span class="special">...</span> Options2<span class="special">></span> <span class="keyword">void</span> <a class="link" href="splay_multiset.html#idm46154-bb"><span class="identifier">merge</span></a><span class="special">(</span><a class="link" href="splay_set.html" title="Class template splay_set">splay_set</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> - <span class="comment">// <a class="link" href="splay_multiset.html#idm45971708271856-bb">public static functions</a></span> - <span class="keyword">static</span> <a class="link" href="splay_multiset.html" title="Class template splay_multiset">splay_multiset</a> <span class="special">&</span> <a class="link" href="splay_multiset.html#idm45971708271296-bb"><span class="identifier">container_from_end_iterator</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="comment">// <a class="link" href="splay_multiset.html#idm46218-bb">public static functions</a></span> + <span class="keyword">static</span> <a class="link" href="splay_multiset.html" title="Class template splay_multiset">splay_multiset</a> <span class="special">&</span> <a class="link" href="splay_multiset.html#idm46219-bb"><span class="identifier">container_from_end_iterator</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> <span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="splay_multiset.html" title="Class template splay_multiset">splay_multiset</a> <span class="special">&</span> - <a class="link" href="splay_multiset.html#idm45971708265280-bb"><span class="identifier">container_from_end_iterator</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">static</span> <a class="link" href="splay_multiset.html" title="Class template splay_multiset">splay_multiset</a> <span class="special">&</span> <a class="link" href="splay_multiset.html#idm45971708259104-bb"><span class="identifier">container_from_iterator</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <a class="link" href="splay_multiset.html#idm46224-bb"><span class="identifier">container_from_end_iterator</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">static</span> <a class="link" href="splay_multiset.html" title="Class template splay_multiset">splay_multiset</a> <span class="special">&</span> <a class="link" href="splay_multiset.html#idm46229-bb"><span class="identifier">container_from_iterator</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> <span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="splay_multiset.html" title="Class template splay_multiset">splay_multiset</a> <span class="special">&</span> - <a class="link" href="splay_multiset.html#idm45971708253136-bb"><span class="identifier">container_from_iterator</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">static</span> <span class="identifier">iterator</span> <a class="link" href="splay_multiset.html#idm45971708247008-bb"><span class="identifier">s_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_iterator</span> <a class="link" href="splay_multiset.html#idm45971708239920-bb"><span class="identifier">s_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="keyword">void</span> <a class="link" href="splay_multiset.html#idm45971708232832-bb"><span class="identifier">init_node</span></a><span class="special">(</span><span class="identifier">reference</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <a class="link" href="splay_multiset.html#idm46234-bb"><span class="identifier">container_from_iterator</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">static</span> <span class="identifier">iterator</span> <a class="link" href="splay_multiset.html#idm46239-bb"><span class="identifier">s_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_iterator</span> <a class="link" href="splay_multiset.html#idm46243-bb"><span class="identifier">s_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="keyword">void</span> <a class="link" href="splay_multiset.html#idm46247-bb"><span class="identifier">init_node</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="comment">// public data members</span> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">bool</span> <span class="identifier">constant_time_size</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.37.5.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.37.5.4"></a><h2>Description</h2> <p>The class template <a class="link" href="splay_multiset.html" title="Class template splay_multiset">splay_multiset</a> is an intrusive container, that mimics most of the interface of std::multiset as described in the C++ standard.</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> <p>The container supports the following options: <code class="computeroutput">base_hook<>/member_hook<>/value_traits<></code>, <code class="computeroutput">constant_time_size<></code>, <code class="computeroutput">size_type<></code> and <code class="computeroutput">compare<></code>. </p> <div class="refsect2"> -<a name="id-1.3.20.42.37.5.4.5"></a><h3> +<a name="id-1.3.18.42.37.5.4.5"></a><h3> <a name="boost.intrusive.splay_multisetconstruct-copy-destruct"></a><code class="computeroutput">splay_multiset</code> public construct/copy/destruct</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> <li class="listitem"> -<pre class="literallayout"><a name="idm45971708299616-bb"></a><span class="identifier">splay_multiset</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm46162-bb"></a><span class="identifier">splay_multiset</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Constructs an empty container.</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 constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor of the key_compare object throws. Basic guarantee. </p> +<p><span class="bold"><strong>Throws</strong></span>: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor of the key_compare object throws. Basic guarantee. </p> </li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">explicit</span> <a name="idm45971708296464-bb"></a><span class="identifier">splay_multiset</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> cmp<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> -<p><span class="bold"><strong>Effects</strong></span>: Constructs an empty container with given comparison and traits.</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 constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor of the key_compare object throws. Basic guarantee. </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> - <a name="idm45971708291344-bb"></a><span class="identifier">splay_multiset</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> +<li class="listitem"><pre class="literallayout"><span class="keyword">explicit</span> <a name="idm46170-bb"></a><span class="identifier">splay_multiset</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> cmp<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></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="idm46176-bb"></a><span class="identifier">splay_multiset</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="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> cmp <span class="special">=</span> <span class="identifier">key_compare</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> -<p><span class="bold"><strong>Requires</strong></span>: Dereferencing iterator must yield an lvalue of type value_type. cmp must be a comparison function that induces a strict weak ordering.</p> -<p><span class="bold"><strong>Effects</strong></span>: Constructs an empty container and inserts elements from [b, e).</p> -<p><span class="bold"><strong>Complexity</strong></span>: Linear in N if [b, e) is already sorted using comp and otherwise N * log N, where N is the distance between first and last.</p> -<p><span class="bold"><strong>Throws</strong></span>: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor/operator() of the key_compare object throws. Basic guarantee. </p> -</li> + <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></li> <li class="listitem"> -<pre class="literallayout"><a name="idm45971708282880-bb"></a><span class="identifier">splay_multiset</span><span class="special">(</span><a class="link" href="splay_multiset.html" title="Class template splay_multiset">splay_multiset</a> <span class="special">&&</span> x<span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm46189-bb"></a><span class="identifier">splay_multiset</span><span class="special">(</span><a class="link" href="splay_multiset.html" title="Class template splay_multiset">splay_multiset</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 comparison object and value traits are move constructed and nodes belonging to x (except the node representing the "end") 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 the comparison objet throws. </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 the comparison objet throws. </p> </li> <li class="listitem"> -<pre class="literallayout"><a class="link" href="splay_multiset.html" title="Class template splay_multiset">splay_multiset</a> <span class="special">&</span> <a name="idm45971708278576-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><a class="link" href="splay_multiset.html" title="Class template splay_multiset">splay_multiset</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> +<pre class="literallayout"><a class="link" href="splay_multiset.html" title="Class template splay_multiset">splay_multiset</a> <span class="special">&</span> <a name="idm46200-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><a class="link" href="splay_multiset.html" title="Class template splay_multiset">splay_multiset</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="idm45971708275760-bb"></a><span class="special">~</span><span class="identifier">splay_multiset</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm46209-bb"></a><span class="special">~</span><span class="identifier">splay_multiset</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 set are not deleted (i.e. no destructors are called), but the nodes according to the <code class="computeroutput"><a class="link" href="value_traits.html" title="Struct template value_traits">value_traits</a></code> template parameter are reinitialized and thus can be reused.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to elements contained in *this.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> </ol></div> </div> <div class="refsect2"> -<a name="id-1.3.20.42.37.5.4.6"></a><h3> -<a name="idm45971708768160-bb"></a><code class="computeroutput">splay_multiset</code> public member functions</h3> +<a name="id-1.3.18.42.37.5.4.6"></a><h3> +<a name="idm45277-bb"></a><code class="computeroutput">splay_multiset</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="idm45971708767600-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="idm45278-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971708763760-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="idm45287-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971708759920-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="idm45296-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971708756080-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="idm45305-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971708752240-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="idm45314-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971708748400-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="idm45323-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">reverse_iterator</span> <a name="idm45971708744560-bb"></a><span class="identifier">rbegin</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">reverse_iterator</span> <a name="idm45332-bb"></a><span class="identifier">rbegin</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 a reverse_iterator pointing to the beginning of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45971708740704-bb"></a><span class="identifier">rbegin</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_reverse_iterator</span> <a name="idm45341-bb"></a><span class="identifier">rbegin</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_reverse_iterator pointing to the beginning of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45971708736848-bb"></a><span class="identifier">crbegin</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_reverse_iterator</span> <a name="idm45350-bb"></a><span class="identifier">crbegin</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_reverse_iterator pointing to the beginning of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">reverse_iterator</span> <a name="idm45971708732992-bb"></a><span class="identifier">rend</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">reverse_iterator</span> <a name="idm45359-bb"></a><span class="identifier">rend</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 a reverse_iterator pointing to the end of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45971708729136-bb"></a><span class="identifier">rend</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_reverse_iterator</span> <a name="idm45368-bb"></a><span class="identifier">rend</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_reverse_iterator pointing to the end of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45971708725280-bb"></a><span class="identifier">crend</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_reverse_iterator</span> <a name="idm45377-bb"></a><span class="identifier">crend</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_reverse_iterator pointing to the end of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971708721424-bb"></a><span class="identifier">root</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="idm45386-bb"></a><span class="identifier">root</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 a iterator pointing to the root node of the container or end() if not present.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971708717552-bb"></a><span class="identifier">root</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="idm45395-bb"></a><span class="identifier">root</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 root node of the container or cend() if not present.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971708713680-bb"></a><span class="identifier">croot</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="idm45404-bb"></a><span class="identifier">croot</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 root node of the container or cend() if not present.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">key_compare</span> <a name="idm45971708709808-bb"></a><span class="identifier">key_comp</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_compare</span> <a name="idm45413-bb"></a><span class="identifier">key_comp</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_compare object used by the container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: If key_compare copy-constructor throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If key_compare copy-constructor throws. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">value_compare</span> <a name="idm45971708705952-bb"></a><span class="identifier">value_comp</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">value_compare</span> <a name="idm45422-bb"></a><span class="identifier">value_comp</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 value_compare object used by the container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: If value_compare copy-constructor throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If value_compare copy-constructor throws. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">bool</span> <a name="idm45971708702080-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="idm45431-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>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971708698256-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="idm45440-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to elements contained in *this if constant-time size option is disabled. Constant time otherwise.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971708694320-bb"></a><span class="identifier">swap</span><span class="special">(</span><a class="link" href="splay_multiset.html" title="Class template splay_multiset">splay_multiset</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="idm45449-bb"></a><span class="identifier">swap</span><span class="special">(</span><a class="link" href="splay_multiset.html" title="Class template splay_multiset">splay_multiset</a> <span class="special">&</span> other<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Swaps the contents of two containers.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comparison functor's swap call throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If the comparison functor's swap call throws. </p> </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="idm45971708689776-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="splay_multiset.html" title="Class template splay_multiset">splay_multiset</a> <span class="special">&</span> src<span class="special">,</span> <span class="identifier">Cloner</span> cloner<span class="special">,</span> + <span class="keyword">void</span> <a name="idm45461-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="splay_multiset.html" title="Class template splay_multiset">splay_multiset</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 equivalent to the original nodes.</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. Copies the predicate from the source container.</p> <p>If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to erased plus inserted elements.</p> -<p><span class="bold"><strong>Throws</strong></span>: If cloner throws or predicate copy assignment throws. Basic guarantee. Additional notes: it also copies the alpha factor from the source container. </p> +<p><span class="bold"><strong>Throws</strong></span>: If cloner throws or predicate copy assignment throws. Basic guarantee. Additional notes: it also copies the alpha factor from the source container. </p> </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="idm45971708680656-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><a class="link" href="splay_multiset.html" title="Class template splay_multiset">splay_multiset</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="idm45483-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><a class="link" href="splay_multiset.html" title="Class template splay_multiset">splay_multiset</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 equivalent to the original nodes.</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. Copies the predicate from the source container.</p> <p>If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to erased plus inserted elements.</p> <p><span class="bold"><strong>Throws</strong></span>: If cloner throws or predicate copy assignment throws. Basic guarantee.</p> -<p><span class="bold"><strong>Note</strong></span>: This version can modify the source container, useful to implement move semantics. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971708670848-bb"></a><span class="identifier">insert</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 value into the container before the upper bound.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Average complexity for insert element is at most logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the internal key_compare ordering function throws. Strong guarantee.</p> -<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">iterator</span> <a name="idm45971708664688-bb"></a><span class="identifier">insert</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<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, and "hint" must be a valid iterator.</p> -<p><span class="bold"><strong>Effects</strong></span>: Inserts x into the container, using "hint" as a hint to where it will be inserted. If "hint" is the upper_bound the insertion takes constant time (two comparisons in the worst case)</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic in general, but it is amortized constant time if t is inserted immediately before hint.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the internal key_compare ordering function throws. Strong guarantee.</p> -<p><span class="bold"><strong>Note</strong></span>: Does not affect the validity of iterators and references. No copy-constructors are called. </p> +<p><span class="bold"><strong>Note</strong></span>: This version can modify the source container, useful to implement move semantics. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45507-bb"></a><span class="identifier">insert</span><span class="special">(</span><span class="identifier">reference</span> value<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45511-bb"></a><span class="identifier">insert</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<span class="special">,</span> <span class="identifier">reference</span> value<span class="special">)</span><span class="special">;</span></pre></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="idm45971708657664-bb"></a><span class="identifier">insert</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="idm45517-bb"></a><span class="identifier">insert</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>: Inserts a each element of a range into the container before the upper bound of the key of each element.</p> <p><span class="bold"><strong>Complexity</strong></span>: Insert range is in general O(N * log(N)), where N is the size of the range. However, it is linear in N if the range is already sorted by value_comp().</p> <p><span class="bold"><strong>Throws</strong></span>: If the comparison functor call throws.</p> -<p><span class="bold"><strong>Note</strong></span>: Does not affect the validity of iterators and references. No copy-constructors are called. </p> +<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">iterator</span> <a name="idm45971708649824-bb"></a><span class="identifier">insert_before</span><span class="special">(</span><span class="identifier">const_iterator</span> pos<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="idm45536-bb"></a><span class="identifier">insert_before</span><span class="special">(</span><span class="identifier">const_iterator</span> pos<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, "pos" must be a valid iterator (or end) and must be the succesor of value once inserted according to the predicate</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts x into the container before "pos".</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if "pos" is not the successor of "value" container ordering invariant will be broken. This is a low-level function to be used only for performance reasons by advanced users. </p> +<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if "pos" is not the successor of "value" container ordering invariant will be broken. This is a low-level function to be used only for performance reasons by advanced users. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971708642592-bb"></a><span class="identifier">push_back</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">void</span> <a name="idm45553-bb"></a><span class="identifier">push_back</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 it must be no less than the greatest inserted key</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts x into the container in the last position.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if value is less than the greatest inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users. </p> +<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if value is less than the greatest inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971708636032-bb"></a><span class="identifier">push_front</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">void</span> <a name="idm45568-bb"></a><span class="identifier">push_front</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 it must be no greater than the minimum inserted key</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts x into the container in the first position.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if value is greater than the minimum inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971708629472-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 complexity for erase element is constant time.</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">iterator</span> <a name="idm45971708623984-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 complexity for erase range is at most O(log(size() + N)), where N is the number of elements in the range.</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="idm45971708617744-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>: O(log(size() + N).</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> +<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if value is greater than the minimum inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45583-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45587-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">size_type</span> <a name="idm45593-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></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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971708611696-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <span class="identifier">size_type</span> <a name="idm45597-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Erases all the elements with the given key. according to the comparison functor "comp".</p> <p><span class="bold"><strong>Returns</strong></span>: The number of erased elements.</p> <p><span class="bold"><strong>Complexity</strong></span>: O(log(size() + N).</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="identifier">iterator</span> <a name="idm45971708601600-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 complexity for erase element is constant time.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<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">template</span><span class="special"><</span><span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="identifier">iterator</span> <a name="idm45971708593696-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> -<p><span class="bold"><strong>Complexity</strong></span>: Average complexity for erase range is at most O(log(size() + N)), where N is the number of elements in the range.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<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">template</span><span class="special"><</span><span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971708585040-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> -<p><span class="bold"><strong>Complexity</strong></span>: O(log(size() + N).</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> +<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="identifier">iterator</span> <a name="idm45621-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></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">iterator</span> <a name="idm45629-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></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="idm45639-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></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> KeyTypeKeyCompare<span class="special">,</span> <span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971708576512-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">KeyTypeKeyCompare</span> comp<span class="special">,</span> + <span class="identifier">size_type</span> <a name="idm45647-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">KeyTypeKeyCompare</span> comp<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>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk) and nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Requires</strong></span>: Disposer::operator()(pointer) shouldn't throw.</p> @@ -501,168 +436,135 @@ <p><span class="bold"><strong>Returns</strong></span>: The number of erased elements.</p> <p><span class="bold"><strong>Complexity</strong></span>: O(log(size() + N).</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: Invalidates the iterators to the erased elements. </p> +<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="idm45971708564288-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="idm45676-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> +<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="idm45971708559424-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="idm45687-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>Effects</strong></span>: Erases all of the elements calling disposer(p) for each node to be erased. <span class="bold"><strong>Complexity</strong></span>: Average complexity for is at most O(log(size() + N)), where N is the number of elements in the container.</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. Calls N times to disposer functor. </p> +<p><span class="bold"><strong>Note</strong></span>: Invalidates the iterators (but not the references) to the erased elements. Calls N times to disposer functor. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">size_type</span> <a name="idm45971708553120-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><span class="special">)</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>: Logarithmic to the number of elements contained plus lineal to number of objects with the given value.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. Additional note: non-const function, splaying is performed. </p> +<pre class="literallayout"><span class="identifier">size_type</span> <a name="idm45701-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><span class="special">)</span><span class="special">;</span></pre> +<p>Additional note: non-const function, splaying is performed. </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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971708548272-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <span class="identifier">size_type</span> <a name="idm45707-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns the number of contained elements with the given key</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic to the number of elements contained plus lineal to number of objects with the given key.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. Additional note: const function, no splaying is performed </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. Additional note: const function, no splaying is performed </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971708539440-bb"></a><span class="identifier">lower_bound</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 an iterator to the first element whose key is not less than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. Additional note: non-const function, splaying is performed. </p> +<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45728-bb"></a><span class="identifier">lower_bound</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>Additional note: non-const function, splaying is performed. </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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a name="idm45971708534640-bb"></a><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Effects</strong></span>: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. Additional note: non-const function, splaying is performed for the first element of the equal range of "key" </p> + <span class="identifier">iterator</span> <a name="idm45734-bb"></a><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> +<p>Additional note: non-const function, splaying is performed for the first element of the equal range of "key" </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971708527696-bb"></a><span class="identifier">lower_bound</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 an iterator to the first element whose key is not less than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. Additional note: const function, no splaying is performed </p> +<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45745-bb"></a><span class="identifier">lower_bound</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>Additional note: const function, no splaying is performed </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> KeyTypeKeyCompare<span class="special">></span> <span class="identifier">const_iterator</span> - <a name="idm45971708522624-bb"></a><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Effects</strong></span>: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. Additional note: const function, no splaying is performed </p> + <a name="idm45751-bb"></a><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<p>Additional note: const function, no splaying is performed </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971708515456-bb"></a><span class="identifier">upper_bound</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 an iterator to the first element whose key is greater than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. Additional note: non-const function, splaying is performed for the first element of the equal range of "value" </p> +<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45762-bb"></a><span class="identifier">upper_bound</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>Additional note: non-const function, splaying is performed for the first element of the equal range of "value" </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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a name="idm45971708510592-bb"></a><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <span class="identifier">iterator</span> <a name="idm45768-bb"></a><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns an iterator to the first element whose key is greater than k according to comp or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. Additional note: non-const function, splaying is performed for the first element of the equal range of "key" </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. Additional note: non-const function, splaying is performed for the first element of the equal range of "key" </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971708501792-bb"></a><span class="identifier">upper_bound</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 an iterator to the first element whose key is greater than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. Additional note: const function, no splaying is performed </p> +<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45789-bb"></a><span class="identifier">upper_bound</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>Additional note: const function, no splaying is performed </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> KeyTypeKeyCompare<span class="special">></span> <span class="identifier">const_iterator</span> - <a name="idm45971708496720-bb"></a><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> + <a name="idm45795-bb"></a><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns an iterator to the first element whose key is greater than k according to comp or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. Additional note: const function, no splaying is performed </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. Additional note: const function, no splaying is performed </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971708487696-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 whose key is k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. Additional note: non-const function, splaying is performed for the first element of the equal range of "value" </p> +<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45816-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>Additional note: non-const function, splaying is performed for the first element of the equal range of "value" </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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a name="idm45971708482848-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <span class="identifier">iterator</span> <a name="idm45822-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Finds an iterator to the first element whose key is k or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. Additional note: non-const function, splaying is performed for the first element of the equal range of "key" </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. Additional note: non-const function, splaying is performed for the first element of the equal range of "key" </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971708474016-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 an iterator to the first element whose key is k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. Additional note: const function, no splaying is performed </p> +<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45843-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>Additional note: const function, no splaying is performed </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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">const_iterator</span> <a name="idm45971708468960-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> + <span class="identifier">const_iterator</span> <a name="idm45849-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Finds an iterator to the first element whose key is k or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. Additional note: const function, no splaying is performed </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. Additional note: const function, no splaying is performed </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="idm45971708459904-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>: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. Additional note: non-const function, splaying is performed for the first element of the equal range of "value" </p> +<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="idm45870-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>Additional note: non-const function, splaying is performed for the first element of the equal range of "value" </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> KeyTypeKeyCompare<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="idm45971708454960-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <a name="idm45876-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. Additional note: non-const function, splaying is performed for the first element of the equal range of "key" </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. Additional note: non-const function, splaying is performed for the first element of the equal range of "key" </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">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">></span> -<a name="idm45971708446032-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>: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. Additional note: const function, no splaying is performed </p> +<a name="idm45897-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>Additional note: const function, no splaying is performed </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> KeyTypeKeyCompare<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="idm45971708440864-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> + <a name="idm45903-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. Additional note: const function, no splaying is performed </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="idm45971708431696-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="identifier">const_reference</span> lower_value<span class="special">,</span> <span class="identifier">const_reference</span> upper_value<span class="special">,</span> - <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: <code class="computeroutput">upper_key</code> shall not precede <code class="computeroutput">lower_key</code> according to key_compare. [key_comp()(upper_key, lower_key) shall be false]</p> -<p>If <code class="computeroutput">lower_key</code> is equivalent to <code class="computeroutput">upper_key</code> [!key_comp()(upper_key, lower_key) && !key_comp()(lower_key, upper_key)] then ('left_closed' || 'right_closed') must be false.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns an a pair with the following criteria:</p> -<p>first = lower_bound(lower_key) if left_closed, upper_bound(lower_key) otherwise</p> -<p>second = upper_bound(upper_key) if right_closed, lower_bound(upper_key) otherwise</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws.</p> -<p><span class="bold"><strong>Note</strong></span>: This function can be more efficient than calling upper_bound and lower_bound for lower_value and upper_value.</p> -<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. Additional note: const function, no splaying is performed </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="idm45924-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="identifier">const_reference</span> lower_value<span class="special">,</span> <span class="identifier">const_reference</span> upper_value<span class="special">,</span> + <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span><span class="special">;</span></pre></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> KeyTypeKeyCompare<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="idm45971708419264-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> + <a name="idm45934-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span> comp<span class="special">,</span> <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: <code class="computeroutput">lower_key</code> is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, lower_key) if left_closed is true, with respect to !comp(lower_key, nk) otherwise.</p> <p><code class="computeroutput">upper_key</code> is a value such that <code class="computeroutput">*this</code> is partitioned with respect to !comp(upper_key, nk) if right_closed is true, with respect to comp(nk, upper_key) otherwise.</p> @@ -674,26 +576,15 @@ <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> <p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws.</p> <p><span class="bold"><strong>Note</strong></span>: This function can be more efficient than calling upper_bound and lower_bound for lower_key and upper_key.</p> -<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </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">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">></span> -<a name="idm45971708402464-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="identifier">const_reference</span> lower_value<span class="special">,</span> <span class="identifier">const_reference</span> upper_value<span class="special">,</span> - <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: <code class="computeroutput">upper_key</code> shall not precede <code class="computeroutput">lower_key</code> according to key_compare. [key_comp()(upper_key, lower_key) shall be false]</p> -<p>If <code class="computeroutput">lower_key</code> is equivalent to <code class="computeroutput">upper_key</code> [!key_comp()(upper_key, lower_key) && !key_comp()(lower_key, upper_key)] then ('left_closed' || 'right_closed') must be false.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns an a pair with the following criteria:</p> -<p>first = lower_bound(lower_key) if left_closed, upper_bound(lower_key) otherwise</p> -<p>second = upper_bound(upper_key) if right_closed, lower_bound(upper_key) otherwise</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws.</p> -<p><span class="bold"><strong>Note</strong></span>: This function can be more efficient than calling upper_bound and lower_bound for lower_value and upper_value.</p> -<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </p> +<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </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">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">></span> +<a name="idm45976-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="identifier">const_reference</span> lower_value<span class="special">,</span> <span class="identifier">const_reference</span> upper_value<span class="special">,</span> + <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></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> KeyTypeKeyCompare<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="idm45971708389744-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> + <a name="idm45986-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span> comp<span class="special">,</span> <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: <code class="computeroutput">lower_key</code> is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, lower_key) if left_closed is true, with respect to !comp(lower_key, nk) otherwise.</p> <p><code class="computeroutput">upper_key</code> is a value such that <code class="computeroutput">*this</code> is partitioned with respect to !comp(upper_key, nk) if right_closed is true, with respect to comp(nk, upper_key) otherwise.</p> @@ -705,171 +596,97 @@ <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> <p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws.</p> <p><span class="bold"><strong>Note</strong></span>: This function can be more efficient than calling upper_bound and lower_bound for lower_key and upper_key.</p> -<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </p> +<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm46028-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm46032-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></li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971708372656-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 set of appropriate type. Otherwise the behavior is undefined.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns: a valid iterator i belonging to the set 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_iterator</span> <a name="idm45971708367168-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 set of appropriate type. Otherwise the behavior is undefined.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns: a valid const_iterator i belonging to the set 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">pointer</span> <a name="idm45971708361680-bb"></a><span class="identifier">unlink_leftmost_without_rebalance</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">pointer</span> <a name="idm46036-bb"></a><span class="identifier">unlink_leftmost_without_rebalance</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>: Unlinks the leftmost node from the container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Average complexity is constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Notes</strong></span>: This function breaks the container and the container can only be used for more unlink_leftmost_without_rebalance calls. This function is normally used to achieve a step by step controlled destruction of the container. </p> +<p><span class="bold"><strong>Notes</strong></span>: This function breaks the container and the container can only be used for more unlink_leftmost_without_rebalance calls. This function is normally used to achieve a step by step controlled destruction of the container. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971708356768-bb"></a><span class="identifier">replace_node</span><span class="special">(</span><span class="identifier">iterator</span> replace_this<span class="special">,</span> <span class="identifier">reference</span> with_this<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">void</span> <a name="idm46047-bb"></a><span class="identifier">replace_node</span><span class="special">(</span><span class="identifier">iterator</span> replace_this<span class="special">,</span> <span class="identifier">reference</span> with_this<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: replace_this must be a valid iterator of *this and with_this must not be inserted in any container.</p> <p><span class="bold"><strong>Effects</strong></span>: Replaces replace_this in its position in the container with with_this. The container does not need to be rebalanced.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: This function will break container ordering invariants if with_this is not equivalent to *replace_this according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing or comparison is needed. </p> +<p><span class="bold"><strong>Note</strong></span>: This function will break container ordering invariants if with_this is not equivalent to *replace_this according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing or comparison is needed. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971708349504-bb"></a><span class="identifier">remove_node</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">void</span> <a name="idm46064-bb"></a><span class="identifier">remove_node</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>Effects</strong></span>: removes "value" from the container.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic time.</p> <p><span class="bold"><strong>Note</strong></span>: This static function is only usable with non-constant time size containers that have stateless comparison functors.</p> -<p>If the user calls this function with a constant time size container or stateful comparison functor a compilation error will be issued. </p> +<p>If the user calls this function with a constant time size container or stateful comparison functor a compilation error will be issued. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971708343664-bb"></a><span class="identifier">splay_up</span><span class="special">(</span><span class="identifier">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="idm46078-bb"></a><span class="identifier">splay_up</span><span class="special">(</span><span class="identifier">iterator</span> i<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: i must be a valid iterator of *this.</p> <p><span class="bold"><strong>Effects</strong></span>: Rearranges the container so that the element pointed by i is placed as the root of the tree, improving future searches of this value.</p> <p><span class="bold"><strong>Complexity</strong></span>: Amortized logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a name="idm45971708338192-bb"></a><span class="identifier">splay_down</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <span class="identifier">iterator</span> <a name="idm46091-bb"></a><span class="identifier">splay_down</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Rearranges the container so that if *this stores an element with a key equivalent to value the element is placed as the root of the tree. If the element is not present returns the last node compared with the key. If the tree is empty, end() is returned.</p> <p><span class="bold"><strong>Complexity</strong></span>: Amortized logarithmic.</p> <p><span class="bold"><strong>Returns</strong></span>: An iterator to the new root of the tree, end() if the tree is empty.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comparison functor throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If the comparison functor throws. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971708330720-bb"></a><span class="identifier">splay_down</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="idm46109-bb"></a><span class="identifier">splay_down</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>: Rearranges the container so that if *this stores an element with a key equivalent to value the element is placed as the root of the tree.</p> <p><span class="bold"><strong>Complexity</strong></span>: Amortized logarithmic.</p> <p><span class="bold"><strong>Returns</strong></span>: An iterator to the new root of the tree, end() if the tree is empty.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the predicate throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If the predicate throws. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971708325456-bb"></a><span class="identifier">rebalance</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="idm46122-bb"></a><span class="identifier">rebalance</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>: Rebalances the tree.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Linear. </p> +<p><span class="bold"><strong>Complexity</strong></span>: Linear. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971708321664-bb"></a><span class="identifier">rebalance_subtree</span><span class="special">(</span><span class="identifier">iterator</span> root<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm46131-bb"></a><span class="identifier">rebalance_subtree</span><span class="special">(</span><span class="identifier">iterator</span> root<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: old_root is a node of a tree.</p> <p><span class="bold"><strong>Effects</strong></span>: Rebalances the subtree rooted at old_root.</p> <p><span class="bold"><strong>Returns</strong></span>: The new root of the subtree.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Linear to the elements in the subtree. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="special">...</span> Options2<span class="special">></span> - <span class="keyword">void</span> <a name="idm45971708315392-bb"></a><span class="identifier">merge</span><span class="special">(</span><a class="link" href="splay_multiset.html" title="Class template splay_multiset">splay_multiset</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span> source<span class="special">)</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: "source" container's Options can only can differ in the comparison function from *this.</p> -<p><span class="bold"><strong>Effects</strong></span>: Extracts each element in source and insert it into a using the comparison object of *this.</p> -<p><span class="bold"><strong>Postcondition</strong></span>: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing unless the comparison object throws.</p> -<p><span class="bold"><strong>Complexity</strong></span>: N log(a.size() + N) (N has the value source.size()) </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="special">...</span> Options2<span class="special">></span> <span class="keyword">void</span> <a name="idm45971708307584-bb"></a><span class="identifier">merge</span><span class="special">(</span><a class="link" href="splay_set.html" title="Class template splay_set">splay_set</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span> source<span class="special">)</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: "source" container's Options can only can differ in the comparison function from *this.</p> -<p><span class="bold"><strong>Effects</strong></span>: Extracts each element in source and insert it into a using the comparison object of *this.</p> -<p><span class="bold"><strong>Postcondition</strong></span>: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing unless the comparison object throws.</p> -<p><span class="bold"><strong>Complexity</strong></span>: N log(a.size() + N) (N has the value source.size()) </p> +<p><span class="bold"><strong>Complexity</strong></span>: Linear to the elements in the subtree. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="special">...</span> Options2<span class="special">></span> + <span class="keyword">void</span> <a name="idm46146-bb"></a><span class="identifier">merge</span><span class="special">(</span><a class="link" href="splay_multiset.html" title="Class template splay_multiset">splay_multiset</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span> source<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="special">...</span> Options2<span class="special">></span> <span class="keyword">void</span> <a name="idm46154-bb"></a><span class="identifier">merge</span><span class="special">(</span><a class="link" href="splay_set.html" title="Class template splay_set">splay_set</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span> source<span class="special">)</span><span class="special">;</span></pre></li> </ol></div> </div> <div class="refsect2"> -<a name="id-1.3.20.42.37.5.4.7"></a><h3> -<a name="idm45971708271856-bb"></a><code class="computeroutput">splay_multiset</code> public static functions</h3> +<a name="id-1.3.18.42.37.5.4.7"></a><h3> +<a name="idm46218-bb"></a><code class="computeroutput">splay_multiset</code> public static functions</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <a class="link" href="splay_multiset.html" title="Class template splay_multiset">splay_multiset</a> <span class="special">&</span> -<a name="idm45971708271296-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Precondition</strong></span>: end_iterator must be a valid end iterator of the container.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the container associated to the end iterator</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Constant. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="splay_multiset.html" title="Class template splay_multiset">splay_multiset</a> <span class="special">&</span> -<a name="idm45971708265280-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">const_iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Precondition</strong></span>: end_iterator must be a valid end iterator of the container.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the container associated to the end iterator</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Constant. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <a class="link" href="splay_multiset.html" title="Class template splay_multiset">splay_multiset</a> <span class="special">&</span> <a name="idm45971708259104-bb"></a><span class="identifier">container_from_iterator</span><span class="special">(</span><span class="identifier">iterator</span> it<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Precondition</strong></span>: it must be a valid iterator of the container.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the container associated to the iterator</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="splay_multiset.html" title="Class template splay_multiset">splay_multiset</a> <span class="special">&</span> -<a name="idm45971708253136-bb"></a><span class="identifier">container_from_iterator</span><span class="special">(</span><span class="identifier">const_iterator</span> it<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Precondition</strong></span>: it must be a valid iterator of the container.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the container associated to the iterator</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="identifier">iterator</span> <a name="idm45971708247008-bb"></a><span class="identifier">s_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 set of appropriate type. Otherwise the behavior is undefined.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns: a valid iterator i belonging to the set 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> -<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">const_iterator</span> <a name="idm45971708239920-bb"></a><span class="identifier">s_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 set of appropriate type. Otherwise the behavior is undefined.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns: a valid iterator i belonging to the set 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> -<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="keyword">void</span> <a name="idm45971708232832-bb"></a><span class="identifier">init_node</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 shall not be in a container.</p> -<p><span class="bold"><strong>Effects</strong></span>: init_node puts the hook of a value in a well-known default state.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> -<p><span class="bold"><strong>Note</strong></span>: This function puts the hook in the well-known default state used by auto_unlink and safe hooks. </p> -</li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <a class="link" href="splay_multiset.html" title="Class template splay_multiset">splay_multiset</a> <span class="special">&</span> +<a name="idm46219-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="splay_multiset.html" title="Class template splay_multiset">splay_multiset</a> <span class="special">&</span> +<a name="idm46224-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">const_iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <a class="link" href="splay_multiset.html" title="Class template splay_multiset">splay_multiset</a> <span class="special">&</span> <a name="idm46229-bb"></a><span class="identifier">container_from_iterator</span><span class="special">(</span><span class="identifier">iterator</span> it<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="splay_multiset.html" title="Class template splay_multiset">splay_multiset</a> <span class="special">&</span> +<a name="idm46234-bb"></a><span class="identifier">container_from_iterator</span><span class="special">(</span><span class="identifier">const_iterator</span> it<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">iterator</span> <a name="idm46239-bb"></a><span class="identifier">s_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></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">const_iterator</span> <a name="idm46243-bb"></a><span class="identifier">s_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></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm46247-bb"></a><span class="identifier">init_node</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></li> </ol></div> </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="make_splay_set.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.splay_set_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="splay_set.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/splay_set.html b/doc/html/boost/intrusive/splay_set.html index 4b18dbe15b..d6110fd1b0 100644 --- a/doc/html/boost/intrusive/splay_set.html +++ b/doc/html/boost/intrusive/splay_set.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.splay_set_hpp" title="Header <boost/intrusive/splay_set.hpp>"> <link rel="prev" href="splay_multiset.html" title="Class template splay_multiset"> <link rel="next" href="make_splaytree.html" title="Struct template make_splaytree"> +<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> @@ -29,8 +30,8 @@ <h2><span class="refentrytitle">Class template splay_set</span></h2> <p>boost::intrusive::splay_set</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.splay_set_hpp" title="Header <boost/intrusive/splay_set.hpp>">boost/intrusive/splay_set.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.splay_set_hpp" title="Header <boost/intrusive/splay_set.hpp>">boost/intrusive/splay_set.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="splay_set.html" title="Class template splay_set">splay_set</a> <span class="special">{</span> @@ -60,507 +61,409 @@ <span class="keyword">typedef</span> <span class="identifier">implementation_defined</span><span class="special">::</span><span class="identifier">node_algorithms</span> <a name="boost.intrusive.splay_set.node_algorithms"></a><span class="identifier">node_algorithms</span><span class="special">;</span> <span class="comment">// <a class="link" href="splay_set.html#boost.intrusive.splay_setconstruct-copy-destruct">construct/copy/destruct</a></span> - <a class="link" href="splay_set.html#idm45971707671312-bb"><span class="identifier">splay_set</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">explicit</span> <a class="link" href="splay_set.html#idm45971707668160-bb"><span class="identifier">splay_set</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span><span class="special">,</span> + <a class="link" href="splay_set.html#idm47277-bb"><span class="identifier">splay_set</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">explicit</span> <a class="link" href="splay_set.html#idm47285-bb"><span class="identifier">splay_set</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_compare</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="splay_set.html#idm45971707663040-bb"><span class="identifier">splay_set</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="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> <span class="special">=</span> <span class="identifier">key_compare</span><span class="special">(</span><span class="special">)</span><span class="special">,</span> + <a class="link" href="splay_set.html#idm47291-bb"><span class="identifier">splay_set</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="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> <span class="special">=</span> <span class="identifier">key_compare</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="splay_set.html#idm45971707654576-bb"><span class="identifier">splay_set</span></a><span class="special">(</span><a class="link" href="splay_set.html" title="Class template splay_set">splay_set</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> - <a class="link" href="splay_set.html" title="Class template splay_set">splay_set</a> <span class="special">&</span> <a class="link" href="splay_set.html#idm45971707650272-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><a class="link" href="splay_set.html" title="Class template splay_set">splay_set</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> - <a class="link" href="splay_set.html#idm45971707647456-bb"><span class="special">~</span><span class="identifier">splay_set</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="splay_set.html#idm47304-bb"><span class="identifier">splay_set</span></a><span class="special">(</span><a class="link" href="splay_set.html" title="Class template splay_set">splay_set</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="splay_set.html" title="Class template splay_set">splay_set</a> <span class="special">&</span> <a class="link" href="splay_set.html#idm47315-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><a class="link" href="splay_set.html" title="Class template splay_set">splay_set</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="splay_set.html#idm47324-bb"><span class="special">~</span><span class="identifier">splay_set</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> - <span class="comment">// <a class="link" href="splay_set.html#idm45971708199552-bb">public member functions</a></span> - <span class="identifier">iterator</span> <a class="link" href="splay_set.html#idm45971708198992-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="splay_set.html#idm45971708195152-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="splay_set.html#idm45971708191312-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="splay_set.html#idm45971708187472-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="splay_set.html#idm45971708183632-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="splay_set.html#idm45971708179792-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">reverse_iterator</span> <a class="link" href="splay_set.html#idm45971708175952-bb"><span class="identifier">rbegin</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="identifier">const_reverse_iterator</span> <a class="link" href="splay_set.html#idm45971708172096-bb"><span class="identifier">rbegin</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_reverse_iterator</span> <a class="link" href="splay_set.html#idm45971708168240-bb"><span class="identifier">crbegin</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">reverse_iterator</span> <a class="link" href="splay_set.html#idm45971708164384-bb"><span class="identifier">rend</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="identifier">const_reverse_iterator</span> <a class="link" href="splay_set.html#idm45971708160528-bb"><span class="identifier">rend</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_reverse_iterator</span> <a class="link" href="splay_set.html#idm45971708156672-bb"><span class="identifier">crend</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="splay_set.html#idm45971708152816-bb"><span class="identifier">root</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="splay_set.html#idm45971708148944-bb"><span class="identifier">root</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="splay_set.html#idm45971708145072-bb"><span class="identifier">croot</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">key_compare</span> <a class="link" href="splay_set.html#idm45971708141200-bb"><span class="identifier">key_comp</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">value_compare</span> <a class="link" href="splay_set.html#idm45971708137344-bb"><span class="identifier">value_comp</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="splay_set.html#idm45971708133472-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="splay_set.html#idm45971708129648-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="splay_set.html#idm45971708125712-bb"><span class="identifier">swap</span></a><span class="special">(</span><a class="link" href="splay_set.html" title="Class template splay_set">splay_set</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="comment">// <a class="link" href="splay_set.html#idm46312-bb">public member functions</a></span> + <span class="identifier">iterator</span> <a class="link" href="splay_set.html#idm46313-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="splay_set.html#idm46322-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="splay_set.html#idm46331-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="splay_set.html#idm46340-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="splay_set.html#idm46349-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="splay_set.html#idm46358-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">reverse_iterator</span> <a class="link" href="splay_set.html#idm46367-bb"><span class="identifier">rbegin</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">const_reverse_iterator</span> <a class="link" href="splay_set.html#idm46376-bb"><span class="identifier">rbegin</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_reverse_iterator</span> <a class="link" href="splay_set.html#idm46385-bb"><span class="identifier">crbegin</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">reverse_iterator</span> <a class="link" href="splay_set.html#idm46394-bb"><span class="identifier">rend</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">const_reverse_iterator</span> <a class="link" href="splay_set.html#idm46403-bb"><span class="identifier">rend</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_reverse_iterator</span> <a class="link" href="splay_set.html#idm46412-bb"><span class="identifier">crend</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="splay_set.html#idm46421-bb"><span class="identifier">root</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="splay_set.html#idm46430-bb"><span class="identifier">root</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="splay_set.html#idm46439-bb"><span class="identifier">croot</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">key_compare</span> <a class="link" href="splay_set.html#idm46448-bb"><span class="identifier">key_comp</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">value_compare</span> <a class="link" href="splay_set.html#idm46457-bb"><span class="identifier">value_comp</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="splay_set.html#idm46466-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="splay_set.html#idm46475-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="splay_set.html#idm46484-bb"><span class="identifier">swap</span></a><span class="special">(</span><a class="link" href="splay_set.html" title="Class template splay_set">splay_set</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="splay_set.html#idm45971708121168-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="splay_set.html" title="Class template splay_set">splay_set</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="splay_set.html#idm46496-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="splay_set.html" title="Class template splay_set">splay_set</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="splay_set.html#idm45971708112048-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><a class="link" href="splay_set.html" title="Class template splay_set">splay_set</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">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="splay_set.html#idm45971708102240-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="identifier">reference</span><span class="special">)</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="splay_set.html#idm45971708096096-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">,</span> <span class="identifier">reference</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="splay_set.html#idm46518-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><a class="link" href="splay_set.html" title="Class template splay_set">splay_set</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">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="splay_set.html#idm46542-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="identifier">reference</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="splay_set.html#idm46546-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">,</span> <span class="identifier">reference</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="splay_set.html#idm45971708089136-bb"><span class="identifier">insert_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> + <a class="link" href="splay_set.html#idm46552-bb"><span class="identifier">insert_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">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="splay_set.html#idm45971708082944-bb"><span class="identifier">insert_check</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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> + <a class="link" href="splay_set.html#idm46558-bb"><span class="identifier">insert_check</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> KeyType<span class="special">,</span> <span class="keyword">typename</span> KeyTypeKeyCompare<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="splay_set.html#idm45971708075968-bb"><span class="identifier">insert_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">KeyTypeKeyCompare</span><span class="special">,</span> <span class="identifier">insert_commit_data</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="splay_set.html#idm46566-bb"><span class="identifier">insert_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">KeyTypeKeyCompare</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="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> KeyType<span class="special">,</span> <span class="keyword">typename</span> KeyTypeKeyCompare<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="splay_set.html#idm45971708064560-bb"><span class="identifier">insert_check</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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">KeyTypeKeyCompare</span><span class="special">,</span> + <a class="link" href="splay_set.html#idm46577-bb"><span class="identifier">insert_check</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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">KeyTypeKeyCompare</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="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="splay_set.html#idm45971708052368-bb"><span class="identifier">insert</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">iterator</span> <a class="link" href="splay_set.html#idm45971708044576-bb"><span class="identifier">insert_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="identifier">iterator</span> <a class="link" href="splay_set.html#idm45971708036272-bb"><span class="identifier">insert_before</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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">void</span> <a class="link" href="splay_set.html#idm45971708029040-bb"><span class="identifier">push_back</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">void</span> <a class="link" href="splay_set.html#idm45971708022480-bb"><span class="identifier">push_front</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">iterator</span> <a class="link" href="splay_set.html#idm45971708015920-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="identifier">iterator</span> <a class="link" href="splay_set.html#idm45971708010432-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="splay_set.html#idm45971708004192-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> Iterator<span class="special">></span> <span class="keyword">void</span> <a class="link" href="splay_set.html#idm46590-bb"><span class="identifier">insert</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">iterator</span> <a class="link" href="splay_set.html#idm46609-bb"><span class="identifier">insert_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="identifier">iterator</span> <a class="link" href="splay_set.html#idm46628-bb"><span class="identifier">insert_before</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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">void</span> <a class="link" href="splay_set.html#idm46645-bb"><span class="identifier">push_back</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">void</span> <a class="link" href="splay_set.html#idm46660-bb"><span class="identifier">push_front</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">iterator</span> <a class="link" href="splay_set.html#idm46675-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="identifier">iterator</span> <a class="link" href="splay_set.html#idm46679-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="splay_set.html#idm46685-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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">size_type</span> <a class="link" href="splay_set.html#idm45971707998144-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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">size_type</span> <a class="link" href="splay_set.html#idm46689-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">KeyTypeKeyCompare</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="identifier">iterator</span> <a class="link" href="splay_set.html#idm45971707988048-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="identifier">iterator</span> <a class="link" href="splay_set.html#idm46713-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="identifier">iterator</span> <a class="link" href="splay_set.html#idm45971707980144-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="identifier">iterator</span> <a class="link" href="splay_set.html#idm46721-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="splay_set.html#idm45971707971488-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="splay_set.html#idm46731-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> KeyTypeKeyCompare<span class="special">,</span> <span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="identifier">size_type</span> <a class="link" href="splay_set.html#idm45971707962960-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">KeyTypeKeyCompare</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="splay_set.html#idm45971707950736-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="splay_set.html#idm45971707945872-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="splay_set.html#idm45971707939568-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="identifier">size_type</span> <a class="link" href="splay_set.html#idm46739-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">KeyTypeKeyCompare</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="splay_set.html#idm46768-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="splay_set.html#idm46779-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="splay_set.html#idm46793-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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">size_type</span> <a class="link" href="splay_set.html#idm45971707934448-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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">size_type</span> <a class="link" href="splay_set.html#idm45971707925344-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="identifier">size_type</span> <a class="link" href="splay_set.html#idm46799-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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">size_type</span> <a class="link" href="splay_set.html#idm46820-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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">size_type</span> <a class="link" href="splay_set.html#idm45971707920224-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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="splay_set.html#idm45971707911120-bb"><span class="identifier">lower_bound</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="splay_set.html#idm46826-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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="splay_set.html#idm46847-bb"><span class="identifier">lower_bound</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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a class="link" href="splay_set.html#idm45971707906320-bb"><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> - <span class="identifier">const_iterator</span> <a class="link" href="splay_set.html#idm45971707899376-bb"><span class="identifier">lower_bound</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="splay_set.html#idm46853-bb"><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">const_iterator</span> <a class="link" href="splay_set.html#idm46864-bb"><span class="identifier">lower_bound</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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">const_iterator</span> <a class="link" href="splay_set.html#idm45971707894304-bb"><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="splay_set.html#idm45971707887136-bb"><span class="identifier">upper_bound</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="splay_set.html#idm46870-bb"><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="splay_set.html#idm46881-bb"><span class="identifier">upper_bound</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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a class="link" href="splay_set.html#idm45971707882272-bb"><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> - <span class="identifier">const_iterator</span> <a class="link" href="splay_set.html#idm45971707873472-bb"><span class="identifier">upper_bound</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="splay_set.html#idm46887-bb"><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">const_iterator</span> <a class="link" href="splay_set.html#idm46908-bb"><span class="identifier">upper_bound</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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">const_iterator</span> <a class="link" href="splay_set.html#idm45971707868400-bb"><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="splay_set.html#idm45971707859376-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">const_iterator</span> <a class="link" href="splay_set.html#idm46914-bb"><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="splay_set.html#idm46935-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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a class="link" href="splay_set.html#idm45971707854528-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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> - <span class="identifier">const_iterator</span> <a class="link" href="splay_set.html#idm45971707845696-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="splay_set.html#idm46941-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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">const_iterator</span> <a class="link" href="splay_set.html#idm46962-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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">const_iterator</span> <a class="link" href="splay_set.html#idm45971707840640-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">KeyTypeKeyCompare</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="splay_set.html#idm45971707831584-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="splay_set.html#idm46968-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">KeyTypeKeyCompare</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="splay_set.html#idm46989-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> KeyTypeKeyCompare<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="splay_set.html#idm45971707826752-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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="splay_set.html#idm46993-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">KeyTypeKeyCompare</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="splay_set.html#idm45971707817920-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="splay_set.html#idm47014-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> KeyTypeKeyCompare<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="splay_set.html#idm45971707812800-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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <a class="link" href="splay_set.html#idm47018-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">KeyTypeKeyCompare</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="splay_set.html#idm45971707803680-bb"><span class="identifier">bounded_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="identifier">key_type</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="splay_set.html#idm47039-bb"><span class="identifier">bounded_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="identifier">key_type</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</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> KeyTypeKeyCompare<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="splay_set.html#idm45971707791248-bb"><span class="identifier">bounded_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="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> + <a class="link" href="splay_set.html#idm47049-bb"><span class="identifier">bounded_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="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</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="splay_set.html#idm45971707774448-bb"><span class="identifier">bounded_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="identifier">key_type</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <a class="link" href="splay_set.html#idm47091-bb"><span class="identifier">bounded_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="identifier">key_type</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</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> KeyTypeKeyCompare<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="splay_set.html#idm45971707761728-bb"><span class="identifier">bounded_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="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> + <a class="link" href="splay_set.html#idm47101-bb"><span class="identifier">bounded_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="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="splay_set.html#idm45971707744640-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="splay_set.html#idm45971707739152-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">pointer</span> <a class="link" href="splay_set.html#idm45971707733664-bb"><span class="identifier">unlink_leftmost_without_rebalance</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="splay_set.html#idm45971707728752-bb"><span class="identifier">replace_node</span></a><span class="special">(</span><span class="identifier">iterator</span><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">void</span> <a class="link" href="splay_set.html#idm45971707721488-bb"><span class="identifier">remove_node</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">void</span> <a class="link" href="splay_set.html#idm45971707715648-bb"><span class="identifier">splay_up</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="splay_set.html#idm47143-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="splay_set.html#idm47147-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">pointer</span> <a class="link" href="splay_set.html#idm47151-bb"><span class="identifier">unlink_leftmost_without_rebalance</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="splay_set.html#idm47162-bb"><span class="identifier">replace_node</span></a><span class="special">(</span><span class="identifier">iterator</span><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">void</span> <a class="link" href="splay_set.html#idm47179-bb"><span class="identifier">remove_node</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">void</span> <a class="link" href="splay_set.html#idm47193-bb"><span class="identifier">splay_up</span></a><span class="special">(</span><span class="identifier">iterator</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> KeyType<span class="special">,</span> <span class="keyword">typename</span> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a class="link" href="splay_set.html#idm45971707710176-bb"><span class="identifier">splay_down</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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="splay_set.html#idm45971707702704-bb"><span class="identifier">splay_down</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">void</span> <a class="link" href="splay_set.html#idm45971707697440-bb"><span class="identifier">rebalance</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="splay_set.html#idm45971707693648-bb"><span class="identifier">rebalance_subtree</span></a><span class="special">(</span><span class="identifier">iterator</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">class</span> <span class="special">...</span> Options2<span class="special">></span> <span class="keyword">void</span> <a class="link" href="splay_set.html#idm45971707687376-bb"><span class="identifier">merge</span></a><span class="special">(</span><a class="link" href="splay_set.html" title="Class template splay_set">splay_set</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</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">class</span> <span class="special">...</span> Options2<span class="special">></span> <span class="keyword">void</span> <a class="link" href="splay_set.html#idm45971707679424-bb"><span class="identifier">merge</span></a><span class="special">(</span><a class="link" href="splay_multiset.html" title="Class template splay_multiset">splay_multiset</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="splay_set.html#idm47206-bb"><span class="identifier">splay_down</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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="splay_set.html#idm47224-bb"><span class="identifier">splay_down</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">void</span> <a class="link" href="splay_set.html#idm47237-bb"><span class="identifier">rebalance</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="splay_set.html#idm47246-bb"><span class="identifier">rebalance_subtree</span></a><span class="special">(</span><span class="identifier">iterator</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">class</span> <span class="special">...</span> Options2<span class="special">></span> <span class="keyword">void</span> <a class="link" href="splay_set.html#idm47261-bb"><span class="identifier">merge</span></a><span class="special">(</span><a class="link" href="splay_set.html" title="Class template splay_set">splay_set</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</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">class</span> <span class="special">...</span> Options2<span class="special">></span> <span class="keyword">void</span> <a class="link" href="splay_set.html#idm47269-bb"><span class="identifier">merge</span></a><span class="special">(</span><a class="link" href="splay_multiset.html" title="Class template splay_multiset">splay_multiset</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> - <span class="comment">// <a class="link" href="splay_set.html#idm45971707643552-bb">public static functions</a></span> - <span class="keyword">static</span> <a class="link" href="splay_set.html" title="Class template splay_set">splay_set</a> <span class="special">&</span> <a class="link" href="splay_set.html#idm45971707642992-bb"><span class="identifier">container_from_end_iterator</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="comment">// <a class="link" href="splay_set.html#idm47333-bb">public static functions</a></span> + <span class="keyword">static</span> <a class="link" href="splay_set.html" title="Class template splay_set">splay_set</a> <span class="special">&</span> <a class="link" href="splay_set.html#idm47334-bb"><span class="identifier">container_from_end_iterator</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> <span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="splay_set.html" title="Class template splay_set">splay_set</a> <span class="special">&</span> - <a class="link" href="splay_set.html#idm45971707636976-bb"><span class="identifier">container_from_end_iterator</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">static</span> <a class="link" href="splay_set.html" title="Class template splay_set">splay_set</a> <span class="special">&</span> <a class="link" href="splay_set.html#idm45971707630800-bb"><span class="identifier">container_from_iterator</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="splay_set.html" title="Class template splay_set">splay_set</a> <span class="special">&</span> <a class="link" href="splay_set.html#idm45971707624832-bb"><span class="identifier">container_from_iterator</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">static</span> <span class="identifier">iterator</span> <a class="link" href="splay_set.html#idm45971707618704-bb"><span class="identifier">s_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_iterator</span> <a class="link" href="splay_set.html#idm45971707611616-bb"><span class="identifier">s_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="keyword">void</span> <a class="link" href="splay_set.html#idm45971707604528-bb"><span class="identifier">init_node</span></a><span class="special">(</span><span class="identifier">reference</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <a class="link" href="splay_set.html#idm47339-bb"><span class="identifier">container_from_end_iterator</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">static</span> <a class="link" href="splay_set.html" title="Class template splay_set">splay_set</a> <span class="special">&</span> <a class="link" href="splay_set.html#idm47344-bb"><span class="identifier">container_from_iterator</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="splay_set.html" title="Class template splay_set">splay_set</a> <span class="special">&</span> <a class="link" href="splay_set.html#idm47349-bb"><span class="identifier">container_from_iterator</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">static</span> <span class="identifier">iterator</span> <a class="link" href="splay_set.html#idm47354-bb"><span class="identifier">s_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_iterator</span> <a class="link" href="splay_set.html#idm47358-bb"><span class="identifier">s_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="keyword">void</span> <a class="link" href="splay_set.html#idm47362-bb"><span class="identifier">init_node</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="comment">// public data members</span> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">bool</span> <span class="identifier">constant_time_size</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.37.6.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.37.6.4"></a><h2>Description</h2> <p>The class template <a class="link" href="splay_set.html" title="Class template splay_set">splay_set</a> is an intrusive container, that mimics most of the interface of std::set as described in the C++ standard.</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> <p>The container supports the following options: <code class="computeroutput">base_hook<>/member_hook<>/value_traits<></code>, <code class="computeroutput">constant_time_size<></code>, <code class="computeroutput">size_type<></code> and <code class="computeroutput">compare<></code>. </p> <div class="refsect2"> -<a name="id-1.3.20.42.37.6.4.5"></a><h3> +<a name="id-1.3.18.42.37.6.4.5"></a><h3> <a name="boost.intrusive.splay_setconstruct-copy-destruct"></a><code class="computeroutput">splay_set</code> public construct/copy/destruct</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> <li class="listitem"> -<pre class="literallayout"><a name="idm45971707671312-bb"></a><span class="identifier">splay_set</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm47277-bb"></a><span class="identifier">splay_set</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Constructs an empty container.</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 constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor of the key_compare object throws. Basic guarantee. </p> +<p><span class="bold"><strong>Throws</strong></span>: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor of the key_compare object throws. Basic guarantee. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="keyword">explicit</span> <a name="idm47285-bb"></a><span class="identifier">splay_set</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> cmp<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></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="idm47291-bb"></a><span class="identifier">splay_set</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="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> cmp <span class="special">=</span> <span class="identifier">key_compare</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></li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">explicit</span> <a name="idm45971707668160-bb"></a><span class="identifier">splay_set</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> cmp<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> -<p><span class="bold"><strong>Effects</strong></span>: Constructs an empty container with given comparison and traits.</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 constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor of the key_compare object throws. Basic guarantee. </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> - <a name="idm45971707663040-bb"></a><span class="identifier">splay_set</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="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> cmp <span class="special">=</span> <span class="identifier">key_compare</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> -<p><span class="bold"><strong>Requires</strong></span>: Dereferencing iterator must yield an lvalue of type value_type. cmp must be a comparison function that induces a strict weak ordering.</p> -<p><span class="bold"><strong>Effects</strong></span>: Constructs an empty container and inserts elements from [b, e).</p> -<p><span class="bold"><strong>Complexity</strong></span>: Linear in N if [b, e) is already sorted using comp and otherwise N * log N, where N is the distance between first and last.</p> -<p><span class="bold"><strong>Throws</strong></span>: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor/operator() of the key_compare object throws. Basic guarantee. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><a name="idm45971707654576-bb"></a><span class="identifier">splay_set</span><span class="special">(</span><a class="link" href="splay_set.html" title="Class template splay_set">splay_set</a> <span class="special">&&</span> x<span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm47304-bb"></a><span class="identifier">splay_set</span><span class="special">(</span><a class="link" href="splay_set.html" title="Class template splay_set">splay_set</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 comparison object and value traits are move constructed and nodes belonging to x (except the node representing the "end") 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 the comparison objet throws. </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 the comparison objet throws. </p> </li> <li class="listitem"> -<pre class="literallayout"><a class="link" href="splay_set.html" title="Class template splay_set">splay_set</a> <span class="special">&</span> <a name="idm45971707650272-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><a class="link" href="splay_set.html" title="Class template splay_set">splay_set</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> +<pre class="literallayout"><a class="link" href="splay_set.html" title="Class template splay_set">splay_set</a> <span class="special">&</span> <a name="idm47315-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><a class="link" href="splay_set.html" title="Class template splay_set">splay_set</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="idm45971707647456-bb"></a><span class="special">~</span><span class="identifier">splay_set</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm47324-bb"></a><span class="special">~</span><span class="identifier">splay_set</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 set are not deleted (i.e. no destructors are called), but the nodes according to the <code class="computeroutput"><a class="link" href="value_traits.html" title="Struct template value_traits">value_traits</a></code> template parameter are reinitialized and thus can be reused.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to elements contained in *this.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> </ol></div> </div> <div class="refsect2"> -<a name="id-1.3.20.42.37.6.4.6"></a><h3> -<a name="idm45971708199552-bb"></a><code class="computeroutput">splay_set</code> public member functions</h3> +<a name="id-1.3.18.42.37.6.4.6"></a><h3> +<a name="idm46312-bb"></a><code class="computeroutput">splay_set</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="idm45971708198992-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="idm46313-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971708195152-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="idm46322-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971708191312-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="idm46331-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971708187472-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="idm46340-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971708183632-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="idm46349-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971708179792-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="idm46358-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">reverse_iterator</span> <a name="idm45971708175952-bb"></a><span class="identifier">rbegin</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">reverse_iterator</span> <a name="idm46367-bb"></a><span class="identifier">rbegin</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 a reverse_iterator pointing to the beginning of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45971708172096-bb"></a><span class="identifier">rbegin</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_reverse_iterator</span> <a name="idm46376-bb"></a><span class="identifier">rbegin</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_reverse_iterator pointing to the beginning of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45971708168240-bb"></a><span class="identifier">crbegin</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_reverse_iterator</span> <a name="idm46385-bb"></a><span class="identifier">crbegin</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_reverse_iterator pointing to the beginning of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">reverse_iterator</span> <a name="idm45971708164384-bb"></a><span class="identifier">rend</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">reverse_iterator</span> <a name="idm46394-bb"></a><span class="identifier">rend</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 a reverse_iterator pointing to the end of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45971708160528-bb"></a><span class="identifier">rend</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_reverse_iterator</span> <a name="idm46403-bb"></a><span class="identifier">rend</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_reverse_iterator pointing to the end of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45971708156672-bb"></a><span class="identifier">crend</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_reverse_iterator</span> <a name="idm46412-bb"></a><span class="identifier">crend</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_reverse_iterator pointing to the end of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971708152816-bb"></a><span class="identifier">root</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="idm46421-bb"></a><span class="identifier">root</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 a iterator pointing to the root node of the container or end() if not present.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971708148944-bb"></a><span class="identifier">root</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="idm46430-bb"></a><span class="identifier">root</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 root node of the container or cend() if not present.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971708145072-bb"></a><span class="identifier">croot</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="idm46439-bb"></a><span class="identifier">croot</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 root node of the container or cend() if not present.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">key_compare</span> <a name="idm45971708141200-bb"></a><span class="identifier">key_comp</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_compare</span> <a name="idm46448-bb"></a><span class="identifier">key_comp</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_compare object used by the container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: If key_compare copy-constructor throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If key_compare copy-constructor throws. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">value_compare</span> <a name="idm45971708137344-bb"></a><span class="identifier">value_comp</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">value_compare</span> <a name="idm46457-bb"></a><span class="identifier">value_comp</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 value_compare object used by the container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: If value_compare copy-constructor throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If value_compare copy-constructor throws. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">bool</span> <a name="idm45971708133472-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="idm46466-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>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971708129648-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="idm46475-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to elements contained in *this if constant-time size option is disabled. Constant time otherwise.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971708125712-bb"></a><span class="identifier">swap</span><span class="special">(</span><a class="link" href="splay_set.html" title="Class template splay_set">splay_set</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="idm46484-bb"></a><span class="identifier">swap</span><span class="special">(</span><a class="link" href="splay_set.html" title="Class template splay_set">splay_set</a> <span class="special">&</span> other<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Swaps the contents of two containers.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comparison functor's swap call throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If the comparison functor's swap call throws. </p> </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="idm45971708121168-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="splay_set.html" title="Class template splay_set">splay_set</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="idm46496-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="splay_set.html" title="Class template splay_set">splay_set</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 equivalent to the original nodes.</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. Copies the predicate from the source container.</p> <p>If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to erased plus inserted elements.</p> -<p><span class="bold"><strong>Throws</strong></span>: If cloner throws or predicate copy assignment throws. Basic guarantee. Additional notes: it also copies the alpha factor from the source container. </p> +<p><span class="bold"><strong>Throws</strong></span>: If cloner throws or predicate copy assignment throws. Basic guarantee. Additional notes: it also copies the alpha factor from the source container. </p> </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="idm45971708112048-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><a class="link" href="splay_set.html" title="Class template splay_set">splay_set</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="idm46518-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><a class="link" href="splay_set.html" title="Class template splay_set">splay_set</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 equivalent to the original nodes.</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. Copies the predicate from the source container.</p> <p>If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to erased plus inserted elements.</p> <p><span class="bold"><strong>Throws</strong></span>: If cloner throws or predicate copy assignment throws. Basic guarantee.</p> -<p><span class="bold"><strong>Note</strong></span>: This version can modify the source container, useful to implement move semantics. </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="idm45971708102240-bb"></a><span class="identifier">insert</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 value into the container if the value is not already present.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Average complexity for insert element is at most logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comparison functor call throws.</p> -<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">iterator</span> <a name="idm45971708096096-bb"></a><span class="identifier">insert</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<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, and "hint" must be a valid iterator</p> -<p><span class="bold"><strong>Effects</strong></span>: Tries to insert x into the container, using "hint" as a hint to where it will be inserted.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic in general, but it is amortized constant time (two comparisons in the worst case) if t is inserted immediately before hint.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comparison functor call throws.</p> -<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="idm45971708089136-bb"></a><span class="identifier">insert_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 container, 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 complexity is at most logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comp ordering function throws. Strong guarantee. </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="idm45971708082944-bb"></a><span class="identifier">insert_check</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<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 container, using a user provided key instead of the value itself, using "hint" as a hint to where it will be inserted.</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>: Logarithmic in general, but it's amortized constant time if t is inserted immediately before hint.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comp ordering function throws. Strong guarantee. </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> KeyTypeKeyCompare<span class="special">></span> +<p><span class="bold"><strong>Note</strong></span>: This version can modify the source container, useful to implement move semantics. </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="idm46542-bb"></a><span class="identifier">insert</span><span class="special">(</span><span class="identifier">reference</span> value<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm46546-bb"></a><span class="identifier">insert</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<span class="special">,</span> <span class="identifier">reference</span> value<span class="special">)</span><span class="special">;</span></pre></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="idm46552-bb"></a><span class="identifier">insert_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></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="idm46558-bb"></a><span class="identifier">insert_check</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<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></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> KeyTypeKeyCompare<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="idm45971708075968-bb"></a><span class="identifier">insert_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">KeyTypeKeyCompare</span> comp<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>: comp must be a comparison function that induces the same strict weak ordering as key_compare. The difference is that comp compares an arbitrary key with the contained values.</p> -<p><span class="bold"><strong>Effects</strong></span>: Checks if a value can be inserted in the container, 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 complexity is at most logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comp ordering function throws. Strong guarantee.</p> -<p><span class="bold"><strong>Notes</strong></span>: This function is used to improve performance when constructing a value_type is expensive: if there is an equivalent value the constructed object must be discarded. Many times, the part of the node that is used to impose the order is much cheaper to construct than the value_type and this function offers the possibility to use that part to check if the insertion will be successful.</p> -<p>If the check is successful, the user can construct the value_type and use "insert_commit" to insert the object in constant-time. This gives a total logarithmic complexity to the insertion: check(O(log(N)) + commit(O(1)).</p> -<p>"commit_data" remains valid for a subsequent "insert_commit" only if no more objects are inserted or erased from the container. </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> KeyTypeKeyCompare<span class="special">></span> + <a name="idm46566-bb"></a><span class="identifier">insert_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">KeyTypeKeyCompare</span> comp<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></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> KeyTypeKeyCompare<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="idm45971708064560-bb"></a><span class="identifier">insert_check</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<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">KeyTypeKeyCompare</span> comp<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>: comp must be a comparison function that induces the same strict weak ordering as key_compare. The difference is that comp compares an arbitrary key with the contained values.</p> -<p><span class="bold"><strong>Effects</strong></span>: Checks if a value can be inserted in the container, using a user provided key instead of the value itself, using "hint" as a hint to where it will be inserted.</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>: Logarithmic in general, but it's amortized constant time if t is inserted immediately before hint.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comp ordering function throws. Strong guarantee.</p> -<p><span class="bold"><strong>Notes</strong></span>: This function is used to improve performance when constructing a value_type is expensive: if there is an equivalent value the constructed object must be discarded. Many times, the part of the constructing that is used to impose the order is much cheaper to construct than the value_type and this function offers the possibility to use that key to check if the insertion will be successful.</p> -<p>If the check is successful, the user can construct the value_type and use "insert_commit" to insert the object in constant-time. This can give a total constant-time complexity to the insertion: check(O(1)) + commit(O(1)).</p> -<p>"commit_data" remains valid for a subsequent "insert_commit" only if no more objects are inserted or erased from the container. </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="idm45971708052368-bb"></a><span class="identifier">insert</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> + <a name="idm46577-bb"></a><span class="identifier">insert_check</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<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">KeyTypeKeyCompare</span> comp<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></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="idm46590-bb"></a><span class="identifier">insert</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>: Tries to insert each element of a range into the container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Insert range is in general O(N * log(N)), where N is the size of the range. However, it is linear in N if the range is already sorted by value_comp().</p> <p><span class="bold"><strong>Throws</strong></span>: If the comparison functor call throws.</p> -<p><span class="bold"><strong>Note</strong></span>: Does not affect the validity of iterators and references. No copy-constructors are called. </p> +<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">iterator</span> <a name="idm45971708044576-bb"></a><span class="identifier">insert_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="idm46609-bb"></a><span class="identifier">insert_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 container 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 container using the information obtained from the "commit_data" that a previous "insert_check" filled.</p> <p><span class="bold"><strong>Returns</strong></span>: An iterator to the newly inserted object.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Notes</strong></span>: This function has only sense if a "insert_check" has been previously executed to fill "commit_data". No value should be inserted or erased between the "insert_check" and "insert_commit" calls. </p> +<p><span class="bold"><strong>Notes</strong></span>: This function has only sense if a "insert_check" has been previously executed to fill "commit_data". No value should be inserted or erased between the "insert_check" and "insert_commit" calls. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971708036272-bb"></a><span class="identifier">insert_before</span><span class="special">(</span><span class="identifier">const_iterator</span> pos<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="idm46628-bb"></a><span class="identifier">insert_before</span><span class="special">(</span><span class="identifier">const_iterator</span> pos<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, "pos" must be a valid iterator (or end) and must be the succesor of value once inserted according to the predicate</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts x into the container before "pos".</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if "pos" is not the successor of "value" container ordering invariant will be broken. This is a low-level function to be used only for performance reasons by advanced users. </p> +<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if "pos" is not the successor of "value" container ordering invariant will be broken. This is a low-level function to be used only for performance reasons by advanced users. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971708029040-bb"></a><span class="identifier">push_back</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">void</span> <a name="idm46645-bb"></a><span class="identifier">push_back</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 it must be no less than the greatest inserted key</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts x into the container in the last position.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if value is less than the greatest inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users. </p> +<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if value is less than the greatest inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971708022480-bb"></a><span class="identifier">push_front</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">void</span> <a name="idm46660-bb"></a><span class="identifier">push_front</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 it must be no greater than the minimum inserted key</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts x into the container in the first position.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if value is greater than the minimum inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971708015920-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 complexity for erase element is constant time.</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">iterator</span> <a name="idm45971708010432-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 complexity for erase range is at most O(log(size() + N)), where N is the number of elements in the range.</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="idm45971708004192-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>: O(log(size() + N).</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> +<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if value is greater than the minimum inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm46675-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm46679-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">size_type</span> <a name="idm46685-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></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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971707998144-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <span class="identifier">size_type</span> <a name="idm46689-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Erases all the elements with the given key. according to the comparison functor "comp".</p> <p><span class="bold"><strong>Returns</strong></span>: The number of erased elements.</p> <p><span class="bold"><strong>Complexity</strong></span>: O(log(size() + N).</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="identifier">iterator</span> <a name="idm45971707988048-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 complexity for erase element is constant time.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<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">template</span><span class="special"><</span><span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="identifier">iterator</span> <a name="idm45971707980144-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> -<p><span class="bold"><strong>Complexity</strong></span>: Average complexity for erase range is at most O(log(size() + N)), where N is the number of elements in the range.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<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">template</span><span class="special"><</span><span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971707971488-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> -<p><span class="bold"><strong>Complexity</strong></span>: O(log(size() + N).</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> +<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="identifier">iterator</span> <a name="idm46713-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></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">iterator</span> <a name="idm46721-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></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="idm46731-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></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> KeyTypeKeyCompare<span class="special">,</span> <span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971707962960-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">KeyTypeKeyCompare</span> comp<span class="special">,</span> + <span class="identifier">size_type</span> <a name="idm46739-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">KeyTypeKeyCompare</span> comp<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>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk) and nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Requires</strong></span>: Disposer::operator()(pointer) shouldn't throw.</p> @@ -568,182 +471,141 @@ <p><span class="bold"><strong>Returns</strong></span>: The number of erased elements.</p> <p><span class="bold"><strong>Complexity</strong></span>: O(log(size() + N).</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: Invalidates the iterators to the erased elements. </p> +<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="idm45971707950736-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="idm46768-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> +<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="idm45971707945872-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="idm46779-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>Effects</strong></span>: Erases all of the elements calling disposer(p) for each node to be erased. <span class="bold"><strong>Complexity</strong></span>: Average complexity for is at most O(log(size() + N)), where N is the number of elements in the container.</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. Calls N times to disposer functor. </p> +<p><span class="bold"><strong>Note</strong></span>: Invalidates the iterators (but not the references) to the erased elements. Calls N times to disposer functor. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">size_type</span> <a name="idm45971707939568-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>: Logarithmic to the number of elements contained plus lineal to number of objects with the given value.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. Additional note: const function, no splaying is performed </p> +<pre class="literallayout"><span class="identifier">size_type</span> <a name="idm46793-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>Additional note: const function, no splaying is performed </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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971707934448-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> + <span class="identifier">size_type</span> <a name="idm46799-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns the number of contained elements with the given key</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic to the number of elements contained plus lineal to number of objects with the given key.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. Additional note: const function, no splaying is performed </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. Additional note: const function, no splaying is performed </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">size_type</span> <a name="idm45971707925344-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>: Logarithmic to the number of elements contained plus lineal to number of objects with the given value.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. Additional note: const function, no splaying is performed </p> +<pre class="literallayout"><span class="identifier">size_type</span> <a name="idm46820-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>Additional note: const function, no splaying is performed </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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971707920224-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> + <span class="identifier">size_type</span> <a name="idm46826-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns the number of contained elements with the given key</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic to the number of elements contained plus lineal to number of objects with the given key.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. Additional note: const function, no splaying is performed </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. Additional note: const function, no splaying is performed </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971707911120-bb"></a><span class="identifier">lower_bound</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 an iterator to the first element whose key is not less than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. Additional note: non-const function, splaying is performed. </p> +<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm46847-bb"></a><span class="identifier">lower_bound</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>Additional note: non-const function, splaying is performed. </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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a name="idm45971707906320-bb"></a><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Effects</strong></span>: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. Additional note: non-const function, splaying is performed for the first element of the equal range of "key" </p> + <span class="identifier">iterator</span> <a name="idm46853-bb"></a><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> +<p>Additional note: non-const function, splaying is performed for the first element of the equal range of "key" </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971707899376-bb"></a><span class="identifier">lower_bound</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 an iterator to the first element whose key is not less than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. Additional note: const function, no splaying is performed </p> +<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm46864-bb"></a><span class="identifier">lower_bound</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>Additional note: const function, no splaying is performed </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> KeyTypeKeyCompare<span class="special">></span> <span class="identifier">const_iterator</span> - <a name="idm45971707894304-bb"></a><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Effects</strong></span>: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. Additional note: const function, no splaying is performed </p> + <a name="idm46870-bb"></a><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<p>Additional note: const function, no splaying is performed </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971707887136-bb"></a><span class="identifier">upper_bound</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 an iterator to the first element whose key is greater than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. Additional note: non-const function, splaying is performed for the first element of the equal range of "value" </p> +<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm46881-bb"></a><span class="identifier">upper_bound</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>Additional note: non-const function, splaying is performed for the first element of the equal range of "value" </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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a name="idm45971707882272-bb"></a><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <span class="identifier">iterator</span> <a name="idm46887-bb"></a><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns an iterator to the first element whose key is greater than k according to comp or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. Additional note: non-const function, splaying is performed for the first element of the equal range of "key" </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. Additional note: non-const function, splaying is performed for the first element of the equal range of "key" </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971707873472-bb"></a><span class="identifier">upper_bound</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 an iterator to the first element whose key is greater than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. Additional note: const function, no splaying is performed </p> +<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm46908-bb"></a><span class="identifier">upper_bound</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>Additional note: const function, no splaying is performed </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> KeyTypeKeyCompare<span class="special">></span> <span class="identifier">const_iterator</span> - <a name="idm45971707868400-bb"></a><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> + <a name="idm46914-bb"></a><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns an iterator to the first element whose key is greater than k according to comp or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. Additional note: const function, no splaying is performed </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. Additional note: const function, no splaying is performed </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971707859376-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 whose key is k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. Additional note: non-const function, splaying is performed for the first element of the equal range of "value" </p> +<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm46935-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>Additional note: non-const function, splaying is performed for the first element of the equal range of "value" </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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a name="idm45971707854528-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <span class="identifier">iterator</span> <a name="idm46941-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Finds an iterator to the first element whose key is k or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. Additional note: non-const function, splaying is performed for the first element of the equal range of "key" </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. Additional note: non-const function, splaying is performed for the first element of the equal range of "key" </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971707845696-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 an iterator to the first element whose key is k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. Additional note: const function, no splaying is performed </p> +<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm46962-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>Additional note: const function, no splaying is performed </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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">const_iterator</span> <a name="idm45971707840640-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> + <span class="identifier">const_iterator</span> <a name="idm46968-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Finds an iterator to the first element whose key is k or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. Additional note: const function, no splaying is performed </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="idm45971707831584-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>: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. Additional note: const function, no splaying is performed </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="idm46989-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></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> KeyTypeKeyCompare<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="idm45971707826752-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <a name="idm46993-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">></span> -<a name="idm45971707817920-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>: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">></span> +<a name="idm47014-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></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> KeyTypeKeyCompare<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="idm45971707812800-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> + <a name="idm47018-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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="idm45971707803680-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> upper_key<span class="special">,</span> - <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: <code class="computeroutput">upper_key</code> shall not precede <code class="computeroutput">lower_key</code> according to key_compare. [key_comp()(upper_key, lower_key) shall be false]</p> -<p>If <code class="computeroutput">lower_key</code> is equivalent to <code class="computeroutput">upper_key</code> [!key_comp()(upper_key, lower_key) && !key_comp()(lower_key, upper_key)] then ('left_closed' || 'right_closed') must be false.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns an a pair with the following criteria:</p> -<p>first = lower_bound(lower_key) if left_closed, upper_bound(lower_key) otherwise</p> -<p>second = upper_bound(upper_key) if right_closed, lower_bound(upper_key) otherwise</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws.</p> -<p><span class="bold"><strong>Note</strong></span>: This function can be more efficient than calling upper_bound and lower_bound for lower_value and upper_value.</p> -<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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="idm47039-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> upper_key<span class="special">,</span> + <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span><span class="special">;</span></pre></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> KeyTypeKeyCompare<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="idm45971707791248-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> + <a name="idm47049-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span> comp<span class="special">,</span> <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: <code class="computeroutput">lower_key</code> is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, lower_key) if left_closed is true, with respect to !comp(lower_key, nk) otherwise.</p> <p><code class="computeroutput">upper_key</code> is a value such that <code class="computeroutput">*this</code> is partitioned with respect to !comp(upper_key, nk) if right_closed is true, with respect to comp(nk, upper_key) otherwise.</p> @@ -755,26 +617,15 @@ <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> <p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws.</p> <p><span class="bold"><strong>Note</strong></span>: This function can be more efficient than calling upper_bound and lower_bound for lower_key and upper_key.</p> -<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </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">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">></span> -<a name="idm45971707774448-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> upper_key<span class="special">,</span> - <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: <code class="computeroutput">upper_key</code> shall not precede <code class="computeroutput">lower_key</code> according to key_compare. [key_comp()(upper_key, lower_key) shall be false]</p> -<p>If <code class="computeroutput">lower_key</code> is equivalent to <code class="computeroutput">upper_key</code> [!key_comp()(upper_key, lower_key) && !key_comp()(lower_key, upper_key)] then ('left_closed' || 'right_closed') must be false.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns an a pair with the following criteria:</p> -<p>first = lower_bound(lower_key) if left_closed, upper_bound(lower_key) otherwise</p> -<p>second = upper_bound(upper_key) if right_closed, lower_bound(upper_key) otherwise</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws.</p> -<p><span class="bold"><strong>Note</strong></span>: This function can be more efficient than calling upper_bound and lower_bound for lower_value and upper_value.</p> -<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </p> +<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </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">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">></span> +<a name="idm47091-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> upper_key<span class="special">,</span> + <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></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> KeyTypeKeyCompare<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="idm45971707761728-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> + <a name="idm47101-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span> comp<span class="special">,</span> <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: <code class="computeroutput">lower_key</code> is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, lower_key) if left_closed is true, with respect to !comp(lower_key, nk) otherwise.</p> <p><code class="computeroutput">upper_key</code> is a value such that <code class="computeroutput">*this</code> is partitioned with respect to !comp(upper_key, nk) if right_closed is true, with respect to comp(nk, upper_key) otherwise.</p> @@ -786,169 +637,95 @@ <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> <p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws.</p> <p><span class="bold"><strong>Note</strong></span>: This function can be more efficient than calling upper_bound and lower_bound for lower_key and upper_key.</p> -<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971707744640-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 set of appropriate type. Otherwise the behavior is undefined.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns: a valid iterator i belonging to the set 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> +<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm47143-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm47147-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></li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971707739152-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 set of appropriate type. Otherwise the behavior is undefined.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns: a valid const_iterator i belonging to the set 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">pointer</span> <a name="idm45971707733664-bb"></a><span class="identifier">unlink_leftmost_without_rebalance</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">pointer</span> <a name="idm47151-bb"></a><span class="identifier">unlink_leftmost_without_rebalance</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>: Unlinks the leftmost node from the container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Average complexity is constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Notes</strong></span>: This function breaks the container and the container can only be used for more unlink_leftmost_without_rebalance calls. This function is normally used to achieve a step by step controlled destruction of the container. </p> +<p><span class="bold"><strong>Notes</strong></span>: This function breaks the container and the container can only be used for more unlink_leftmost_without_rebalance calls. This function is normally used to achieve a step by step controlled destruction of the container. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971707728752-bb"></a><span class="identifier">replace_node</span><span class="special">(</span><span class="identifier">iterator</span> replace_this<span class="special">,</span> <span class="identifier">reference</span> with_this<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">void</span> <a name="idm47162-bb"></a><span class="identifier">replace_node</span><span class="special">(</span><span class="identifier">iterator</span> replace_this<span class="special">,</span> <span class="identifier">reference</span> with_this<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: replace_this must be a valid iterator of *this and with_this must not be inserted in any container.</p> <p><span class="bold"><strong>Effects</strong></span>: Replaces replace_this in its position in the container with with_this. The container does not need to be rebalanced.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: This function will break container ordering invariants if with_this is not equivalent to *replace_this according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing or comparison is needed. </p> +<p><span class="bold"><strong>Note</strong></span>: This function will break container ordering invariants if with_this is not equivalent to *replace_this according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing or comparison is needed. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971707721488-bb"></a><span class="identifier">remove_node</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">void</span> <a name="idm47179-bb"></a><span class="identifier">remove_node</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>Effects</strong></span>: removes "value" from the container.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic time.</p> <p><span class="bold"><strong>Note</strong></span>: This static function is only usable with non-constant time size containers that have stateless comparison functors.</p> -<p>If the user calls this function with a constant time size container or stateful comparison functor a compilation error will be issued. </p> +<p>If the user calls this function with a constant time size container or stateful comparison functor a compilation error will be issued. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971707715648-bb"></a><span class="identifier">splay_up</span><span class="special">(</span><span class="identifier">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="idm47193-bb"></a><span class="identifier">splay_up</span><span class="special">(</span><span class="identifier">iterator</span> i<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: i must be a valid iterator of *this.</p> <p><span class="bold"><strong>Effects</strong></span>: Rearranges the container so that the element pointed by i is placed as the root of the tree, improving future searches of this value.</p> <p><span class="bold"><strong>Complexity</strong></span>: Amortized logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a name="idm45971707710176-bb"></a><span class="identifier">splay_down</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <span class="identifier">iterator</span> <a name="idm47206-bb"></a><span class="identifier">splay_down</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Rearranges the container so that if *this stores an element with a key equivalent to value the element is placed as the root of the tree. If the element is not present returns the last node compared with the key. If the tree is empty, end() is returned.</p> <p><span class="bold"><strong>Complexity</strong></span>: Amortized logarithmic.</p> <p><span class="bold"><strong>Returns</strong></span>: An iterator to the new root of the tree, end() if the tree is empty.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comparison functor throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If the comparison functor throws. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971707702704-bb"></a><span class="identifier">splay_down</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="idm47224-bb"></a><span class="identifier">splay_down</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>: Rearranges the container so that if *this stores an element with a key equivalent to value the element is placed as the root of the tree.</p> <p><span class="bold"><strong>Complexity</strong></span>: Amortized logarithmic.</p> <p><span class="bold"><strong>Returns</strong></span>: An iterator to the new root of the tree, end() if the tree is empty.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the predicate throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If the predicate throws. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971707697440-bb"></a><span class="identifier">rebalance</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="idm47237-bb"></a><span class="identifier">rebalance</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>: Rebalances the tree.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Linear. </p> +<p><span class="bold"><strong>Complexity</strong></span>: Linear. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971707693648-bb"></a><span class="identifier">rebalance_subtree</span><span class="special">(</span><span class="identifier">iterator</span> root<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm47246-bb"></a><span class="identifier">rebalance_subtree</span><span class="special">(</span><span class="identifier">iterator</span> root<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: old_root is a node of a tree.</p> <p><span class="bold"><strong>Effects</strong></span>: Rebalances the subtree rooted at old_root.</p> <p><span class="bold"><strong>Returns</strong></span>: The new root of the subtree.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Linear to the elements in the subtree. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="special">...</span> Options2<span class="special">></span> <span class="keyword">void</span> <a name="idm45971707687376-bb"></a><span class="identifier">merge</span><span class="special">(</span><a class="link" href="splay_set.html" title="Class template splay_set">splay_set</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span> source<span class="special">)</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: "source" container's Options can only can differ in the comparison function from *this.</p> -<p><span class="bold"><strong>Effects</strong></span>: Attempts to extract each element in source and insert it into a using the comparison object of *this. If there is an element in a with key equivalent to the key of an element from source, then that element is not extracted from source.</p> -<p><span class="bold"><strong>Postcondition</strong></span>: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing unless the comparison object throws.</p> -<p><span class="bold"><strong>Complexity</strong></span>: N log(a.size() + N) (N has the value source.size()) </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="special">...</span> Options2<span class="special">></span> - <span class="keyword">void</span> <a name="idm45971707679424-bb"></a><span class="identifier">merge</span><span class="special">(</span><a class="link" href="splay_multiset.html" title="Class template splay_multiset">splay_multiset</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span> source<span class="special">)</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: "source" container's Options can only can differ in the comparison function from *this.</p> -<p><span class="bold"><strong>Effects</strong></span>: Attempts to extract each element in source and insert it into a using the comparison object of *this. If there is an element in a with key equivalent to the key of an element from source, then that element is not extracted from source.</p> -<p><span class="bold"><strong>Postcondition</strong></span>: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing unless the comparison object throws.</p> -<p><span class="bold"><strong>Complexity</strong></span>: N log(a.size() + N) (N has the value source.size()) </p> +<p><span class="bold"><strong>Complexity</strong></span>: Linear to the elements in the subtree. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="special">...</span> Options2<span class="special">></span> <span class="keyword">void</span> <a name="idm47261-bb"></a><span class="identifier">merge</span><span class="special">(</span><a class="link" href="splay_set.html" title="Class template splay_set">splay_set</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span> source<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="special">...</span> Options2<span class="special">></span> + <span class="keyword">void</span> <a name="idm47269-bb"></a><span class="identifier">merge</span><span class="special">(</span><a class="link" href="splay_multiset.html" title="Class template splay_multiset">splay_multiset</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span> source<span class="special">)</span><span class="special">;</span></pre></li> </ol></div> </div> <div class="refsect2"> -<a name="id-1.3.20.42.37.6.4.7"></a><h3> -<a name="idm45971707643552-bb"></a><code class="computeroutput">splay_set</code> public static functions</h3> +<a name="id-1.3.18.42.37.6.4.7"></a><h3> +<a name="idm47333-bb"></a><code class="computeroutput">splay_set</code> public static functions</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <a class="link" href="splay_set.html" title="Class template splay_set">splay_set</a> <span class="special">&</span> <a name="idm45971707642992-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Precondition</strong></span>: end_iterator must be a valid end iterator of the container.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the container associated to the end iterator</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Constant. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="splay_set.html" title="Class template splay_set">splay_set</a> <span class="special">&</span> -<a name="idm45971707636976-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">const_iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Precondition</strong></span>: end_iterator must be a valid end iterator of the container.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the container associated to the end iterator</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Constant. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <a class="link" href="splay_set.html" title="Class template splay_set">splay_set</a> <span class="special">&</span> <a name="idm45971707630800-bb"></a><span class="identifier">container_from_iterator</span><span class="special">(</span><span class="identifier">iterator</span> it<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Precondition</strong></span>: it must be a valid iterator of the container.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the container associated to the iterator</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="splay_set.html" title="Class template splay_set">splay_set</a> <span class="special">&</span> <a name="idm45971707624832-bb"></a><span class="identifier">container_from_iterator</span><span class="special">(</span><span class="identifier">const_iterator</span> it<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Precondition</strong></span>: it must be a valid iterator of the container.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the container associated to the iterator</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="identifier">iterator</span> <a name="idm45971707618704-bb"></a><span class="identifier">s_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 set of appropriate type. Otherwise the behavior is undefined.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns: a valid iterator i belonging to the set 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> -<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">const_iterator</span> <a name="idm45971707611616-bb"></a><span class="identifier">s_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 set of appropriate type. Otherwise the behavior is undefined.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns: a valid iterator i belonging to the set 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> -<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="keyword">void</span> <a name="idm45971707604528-bb"></a><span class="identifier">init_node</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 shall not be in a container.</p> -<p><span class="bold"><strong>Effects</strong></span>: init_node puts the hook of a value in a well-known default state.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> -<p><span class="bold"><strong>Note</strong></span>: This function puts the hook in the well-known default state used by auto_unlink and safe hooks. </p> -</li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <a class="link" href="splay_set.html" title="Class template splay_set">splay_set</a> <span class="special">&</span> <a name="idm47334-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="splay_set.html" title="Class template splay_set">splay_set</a> <span class="special">&</span> +<a name="idm47339-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">const_iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <a class="link" href="splay_set.html" title="Class template splay_set">splay_set</a> <span class="special">&</span> <a name="idm47344-bb"></a><span class="identifier">container_from_iterator</span><span class="special">(</span><span class="identifier">iterator</span> it<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="splay_set.html" title="Class template splay_set">splay_set</a> <span class="special">&</span> <a name="idm47349-bb"></a><span class="identifier">container_from_iterator</span><span class="special">(</span><span class="identifier">const_iterator</span> it<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">iterator</span> <a name="idm47354-bb"></a><span class="identifier">s_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></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">const_iterator</span> <a name="idm47358-bb"></a><span class="identifier">s_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></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm47362-bb"></a><span class="identifier">init_node</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></li> </ol></div> </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="splay_multiset.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.splay_set_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_splaytree.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/splaytree.html b/doc/html/boost/intrusive/splaytree.html index 2be962b69c..5f21405937 100644 --- a/doc/html/boost/intrusive/splaytree.html +++ b/doc/html/boost/intrusive/splaytree.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.splaytree_hpp" title="Header <boost/intrusive/splaytree.hpp>"> <link rel="prev" href="make_splaytree.html" title="Struct template make_splaytree"> <link rel="next" href="splaytree_algorithms.html" title="Class template splaytree_algorithms"> +<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> @@ -29,8 +30,8 @@ <h2><span class="refentrytitle">Class template splaytree</span></h2> <p>boost::intrusive::splaytree</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.splaytree_hpp" title="Header <boost/intrusive/splaytree.hpp>">boost/intrusive/splaytree.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.splaytree_hpp" title="Header <boost/intrusive/splaytree.hpp>">boost/intrusive/splaytree.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="splaytree.html" title="Class template splaytree">splaytree</a> <span class="special">{</span> @@ -60,539 +61,427 @@ <span class="keyword">typedef</span> <span class="identifier">implementation_defined</span><span class="special">::</span><span class="identifier">insert_commit_data</span> <a name="boost.intrusive.splaytree.insert_commit_data"></a><span class="identifier">insert_commit_data</span><span class="special">;</span> <span class="comment">// <a class="link" href="splaytree.html#boost.intrusive.splaytreeconstruct-copy-destruct">construct/copy/destruct</a></span> - <a class="link" href="splaytree.html#idm45971706966832-bb"><span class="identifier">splaytree</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">explicit</span> <a class="link" href="splaytree.html#idm45971706963680-bb"><span class="identifier">splaytree</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span><span class="special">,</span> + <a class="link" href="splaytree.html#idm48561-bb"><span class="identifier">splaytree</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">explicit</span> <a class="link" href="splaytree.html#idm48569-bb"><span class="identifier">splaytree</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_compare</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="splaytree.html#idm45971706958560-bb"><span class="identifier">splaytree</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> <span class="identifier">key_compare</span> <span class="special">&</span> <span class="special">=</span> <span class="identifier">key_compare</span><span class="special">(</span><span class="special">)</span><span class="special">,</span> + <a class="link" href="splaytree.html#idm48575-bb"><span class="identifier">splaytree</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> <span class="identifier">key_compare</span> <span class="special">&</span> <span class="special">=</span> <span class="identifier">key_compare</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="splaytree.html#idm45971706949408-bb"><span class="identifier">splaytree</span></a><span class="special">(</span><a class="link" href="splaytree.html" title="Class template splaytree">splaytree</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> - <a class="link" href="splaytree.html" title="Class template splaytree">splaytree</a> <span class="special">&</span> <a class="link" href="splaytree.html#idm45971706945104-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><a class="link" href="splaytree.html" title="Class template splaytree">splaytree</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> - <a class="link" href="splaytree.html#idm45971706942288-bb"><span class="special">~</span><span class="identifier">splaytree</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="splaytree.html#idm48590-bb"><span class="identifier">splaytree</span></a><span class="special">(</span><a class="link" href="splaytree.html" title="Class template splaytree">splaytree</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="splaytree.html" title="Class template splaytree">splaytree</a> <span class="special">&</span> <a class="link" href="splaytree.html#idm48601-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><a class="link" href="splaytree.html" title="Class template splaytree">splaytree</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="splaytree.html#idm48610-bb"><span class="special">~</span><span class="identifier">splaytree</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> - <span class="comment">// <a class="link" href="splaytree.html#idm45971707516832-bb">public member functions</a></span> - <span class="identifier">iterator</span> <a class="link" href="splaytree.html#idm45971707516272-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="splaytree.html#idm45971707512432-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="splaytree.html#idm45971707508592-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="splaytree.html#idm45971707504752-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="splaytree.html#idm45971707500912-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="splaytree.html#idm45971707497072-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">reverse_iterator</span> <a class="link" href="splaytree.html#idm45971707493232-bb"><span class="identifier">rbegin</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="identifier">const_reverse_iterator</span> <a class="link" href="splaytree.html#idm45971707489376-bb"><span class="identifier">rbegin</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_reverse_iterator</span> <a class="link" href="splaytree.html#idm45971707485520-bb"><span class="identifier">crbegin</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">reverse_iterator</span> <a class="link" href="splaytree.html#idm45971707481664-bb"><span class="identifier">rend</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="identifier">const_reverse_iterator</span> <a class="link" href="splaytree.html#idm45971707477808-bb"><span class="identifier">rend</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_reverse_iterator</span> <a class="link" href="splaytree.html#idm45971707473952-bb"><span class="identifier">crend</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="splaytree.html#idm45971707470096-bb"><span class="identifier">root</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="splaytree.html#idm45971707466224-bb"><span class="identifier">root</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="splaytree.html#idm45971707462352-bb"><span class="identifier">croot</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">key_compare</span> <a class="link" href="splaytree.html#idm45971707458480-bb"><span class="identifier">key_comp</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">value_compare</span> <a class="link" href="splaytree.html#idm45971707454624-bb"><span class="identifier">value_comp</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="splaytree.html#idm45971707450752-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="splaytree.html#idm45971707446928-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="splaytree.html#idm45971707442992-bb"><span class="identifier">swap</span></a><span class="special">(</span><a class="link" href="splaytree.html" title="Class template splaytree">splaytree</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="comment">// <a class="link" href="splaytree.html#idm47561-bb">public member functions</a></span> + <span class="identifier">iterator</span> <a class="link" href="splaytree.html#idm47562-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="splaytree.html#idm47571-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="splaytree.html#idm47580-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="splaytree.html#idm47589-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="splaytree.html#idm47598-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="splaytree.html#idm47607-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">reverse_iterator</span> <a class="link" href="splaytree.html#idm47616-bb"><span class="identifier">rbegin</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">const_reverse_iterator</span> <a class="link" href="splaytree.html#idm47625-bb"><span class="identifier">rbegin</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_reverse_iterator</span> <a class="link" href="splaytree.html#idm47634-bb"><span class="identifier">crbegin</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">reverse_iterator</span> <a class="link" href="splaytree.html#idm47643-bb"><span class="identifier">rend</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">const_reverse_iterator</span> <a class="link" href="splaytree.html#idm47652-bb"><span class="identifier">rend</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_reverse_iterator</span> <a class="link" href="splaytree.html#idm47661-bb"><span class="identifier">crend</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="splaytree.html#idm47670-bb"><span class="identifier">root</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="splaytree.html#idm47679-bb"><span class="identifier">root</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="splaytree.html#idm47688-bb"><span class="identifier">croot</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">key_compare</span> <a class="link" href="splaytree.html#idm47697-bb"><span class="identifier">key_comp</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">value_compare</span> <a class="link" href="splaytree.html#idm47706-bb"><span class="identifier">value_comp</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="splaytree.html#idm47715-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="splaytree.html#idm47724-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="splaytree.html#idm47733-bb"><span class="identifier">swap</span></a><span class="special">(</span><a class="link" href="splaytree.html" title="Class template splaytree">splaytree</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="splaytree.html#idm45971707438448-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="splaytree.html" title="Class template splaytree">splaytree</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="splaytree.html#idm47745-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="splaytree.html" title="Class template splaytree">splaytree</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="splaytree.html#idm45971707429328-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><a class="link" href="splaytree.html" title="Class template splaytree">splaytree</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="splaytree.html#idm45971707419520-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="identifier">iterator</span> <a class="link" href="splaytree.html#idm45971707413360-bb"><span class="identifier">insert_equal</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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="splaytree.html#idm45971707406336-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="splaytree.html#idm45971707398496-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="identifier">iterator</span> <a class="link" href="splaytree.html#idm45971707392352-bb"><span class="identifier">insert_unique</span></a><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">,</span> <span class="identifier">reference</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="splaytree.html#idm47767-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><a class="link" href="splaytree.html" title="Class template splaytree">splaytree</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="splaytree.html#idm47791-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="identifier">iterator</span> <a class="link" href="splaytree.html#idm47795-bb"><span class="identifier">insert_equal</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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="splaytree.html#idm47801-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="splaytree.html#idm47820-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="identifier">iterator</span> <a class="link" href="splaytree.html#idm47824-bb"><span class="identifier">insert_unique</span></a><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">,</span> <span class="identifier">reference</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="splaytree.html#idm45971707385392-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> + <a class="link" href="splaytree.html#idm47830-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">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="splaytree.html#idm45971707379200-bb"><span class="identifier">insert_unique_check</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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> + <a class="link" href="splaytree.html#idm47836-bb"><span class="identifier">insert_unique_check</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> KeyType<span class="special">,</span> <span class="keyword">typename</span> KeyTypeKeyCompare<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="splaytree.html#idm45971707372224-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">KeyTypeKeyCompare</span><span class="special">,</span> + <a class="link" href="splaytree.html#idm47844-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">KeyTypeKeyCompare</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="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> KeyType<span class="special">,</span> <span class="keyword">typename</span> KeyTypeKeyCompare<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="splaytree.html#idm45971707360816-bb"><span class="identifier">insert_unique_check</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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">KeyTypeKeyCompare</span><span class="special">,</span> + <a class="link" href="splaytree.html#idm47855-bb"><span class="identifier">insert_unique_check</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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">KeyTypeKeyCompare</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="splaytree.html#idm45971707348624-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">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="splaytree.html#idm45971707340320-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="identifier">iterator</span> <a class="link" href="splaytree.html#idm45971707332528-bb"><span class="identifier">insert_before</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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">void</span> <a class="link" href="splaytree.html#idm45971707325296-bb"><span class="identifier">push_back</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">void</span> <a class="link" href="splaytree.html#idm45971707318736-bb"><span class="identifier">push_front</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">iterator</span> <a class="link" href="splaytree.html#idm45971707312176-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="identifier">iterator</span> <a class="link" href="splaytree.html#idm45971707306688-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="splaytree.html#idm45971707300448-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="identifier">iterator</span> <a class="link" href="splaytree.html#idm47868-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">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="splaytree.html#idm47887-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="identifier">iterator</span> <a class="link" href="splaytree.html#idm47906-bb"><span class="identifier">insert_before</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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">void</span> <a class="link" href="splaytree.html#idm47923-bb"><span class="identifier">push_back</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">void</span> <a class="link" href="splaytree.html#idm47938-bb"><span class="identifier">push_front</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">iterator</span> <a class="link" href="splaytree.html#idm47953-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="identifier">iterator</span> <a class="link" href="splaytree.html#idm47957-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="splaytree.html#idm47963-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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">size_type</span> <a class="link" href="splaytree.html#idm45971707294400-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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">size_type</span> <a class="link" href="splaytree.html#idm47967-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">KeyTypeKeyCompare</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="identifier">iterator</span> <a class="link" href="splaytree.html#idm45971707284304-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="identifier">iterator</span> <a class="link" href="splaytree.html#idm47991-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="identifier">iterator</span> <a class="link" href="splaytree.html#idm45971707276400-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="identifier">iterator</span> <a class="link" href="splaytree.html#idm47999-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="splaytree.html#idm45971707267744-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="splaytree.html#idm48009-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> KeyTypeKeyCompare<span class="special">,</span> <span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="identifier">size_type</span> <a class="link" href="splaytree.html#idm45971707259216-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">KeyTypeKeyCompare</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="splaytree.html#idm45971707246992-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="splaytree.html#idm45971707242128-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="splaytree.html#idm45971707235824-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="special">;</span> + <span class="identifier">size_type</span> <a class="link" href="splaytree.html#idm48017-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">KeyTypeKeyCompare</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="splaytree.html#idm48046-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="splaytree.html#idm48057-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="splaytree.html#idm48071-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="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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">size_type</span> <a class="link" href="splaytree.html#idm45971707230976-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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> - <span class="identifier">size_type</span> <a class="link" href="splaytree.html#idm45971707222144-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="identifier">size_type</span> <a class="link" href="splaytree.html#idm48077-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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">size_type</span> <a class="link" href="splaytree.html#idm48098-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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">size_type</span> <a class="link" href="splaytree.html#idm45971707217024-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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="splaytree.html#idm45971707207920-bb"><span class="identifier">lower_bound</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="splaytree.html#idm45971707203120-bb"><span class="identifier">lower_bound</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">size_type</span> <a class="link" href="splaytree.html#idm48104-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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="splaytree.html#idm48125-bb"><span class="identifier">lower_bound</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="splaytree.html#idm48131-bb"><span class="identifier">lower_bound</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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a class="link" href="splaytree.html#idm45971707198048-bb"><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="splaytree.html#idm48137-bb"><span class="identifier">lower_bound</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">KeyTypeKeyCompare</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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">const_iterator</span> <a class="link" href="splaytree.html#idm45971707191104-bb"><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="splaytree.html#idm45971707183936-bb"><span class="identifier">upper_bound</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="splaytree.html#idm45971707179072-bb"><span class="identifier">upper_bound</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">const_iterator</span> <a class="link" href="splaytree.html#idm48148-bb"><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="splaytree.html#idm48159-bb"><span class="identifier">upper_bound</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="splaytree.html#idm48165-bb"><span class="identifier">upper_bound</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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a class="link" href="splaytree.html#idm45971707174000-bb"><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="splaytree.html#idm48171-bb"><span class="identifier">upper_bound</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">KeyTypeKeyCompare</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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">const_iterator</span> <a class="link" href="splaytree.html#idm45971707165200-bb"><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="splaytree.html#idm45971707156176-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">const_iterator</span> <a class="link" href="splaytree.html#idm45971707151328-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">const_iterator</span> <a class="link" href="splaytree.html#idm48192-bb"><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="splaytree.html#idm48213-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">const_iterator</span> <a class="link" href="splaytree.html#idm48219-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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a class="link" href="splaytree.html#idm45971707146272-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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="splaytree.html#idm48225-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">KeyTypeKeyCompare</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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">const_iterator</span> <a class="link" href="splaytree.html#idm45971707137440-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">KeyTypeKeyCompare</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="splaytree.html#idm45971707128384-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="splaytree.html#idm48246-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">KeyTypeKeyCompare</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="splaytree.html#idm48267-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">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="splaytree.html#idm45971707123440-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="splaytree.html#idm48273-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> KeyTypeKeyCompare<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="splaytree.html#idm45971707118272-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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="splaytree.html#idm48279-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">KeyTypeKeyCompare</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> KeyTypeKeyCompare<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="splaytree.html#idm45971707109344-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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <a class="link" href="splaytree.html#idm48300-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">KeyTypeKeyCompare</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="splaytree.html#idm45971707100176-bb"><span class="identifier">bounded_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="identifier">key_type</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="splaytree.html#idm48321-bb"><span class="identifier">bounded_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="identifier">key_type</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</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> KeyTypeKeyCompare<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="splaytree.html#idm45971707087744-bb"><span class="identifier">bounded_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="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> + <a class="link" href="splaytree.html#idm48331-bb"><span class="identifier">bounded_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="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</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="splaytree.html#idm45971707070944-bb"><span class="identifier">bounded_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="identifier">key_type</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <a class="link" href="splaytree.html#idm48373-bb"><span class="identifier">bounded_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="identifier">key_type</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</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> KeyTypeKeyCompare<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="splaytree.html#idm45971707058224-bb"><span class="identifier">bounded_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="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> + <a class="link" href="splaytree.html#idm48383-bb"><span class="identifier">bounded_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="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="splaytree.html#idm45971707041136-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="splaytree.html#idm45971707035648-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">pointer</span> <a class="link" href="splaytree.html#idm45971707030160-bb"><span class="identifier">unlink_leftmost_without_rebalance</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="splaytree.html#idm45971707025248-bb"><span class="identifier">replace_node</span></a><span class="special">(</span><span class="identifier">iterator</span><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">void</span> <a class="link" href="splaytree.html#idm45971707017984-bb"><span class="identifier">remove_node</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">iterator</span> <a class="link" href="splaytree.html#idm48425-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="splaytree.html#idm48429-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">pointer</span> <a class="link" href="splaytree.html#idm48433-bb"><span class="identifier">unlink_leftmost_without_rebalance</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="splaytree.html#idm48444-bb"><span class="identifier">replace_node</span></a><span class="special">(</span><span class="identifier">iterator</span><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">void</span> <a class="link" href="splaytree.html#idm48461-bb"><span class="identifier">remove_node</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">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> Options2<span class="special">></span> - <span class="keyword">void</span> <a class="link" href="splaytree.html#idm45971707012144-bb"><span class="identifier">merge_unique</span></a><span class="special">(</span><a class="link" href="splaytree.html" title="Class template splaytree">splaytree</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="splaytree.html#idm48475-bb"><span class="identifier">merge_unique</span></a><span class="special">(</span><a class="link" href="splaytree.html" title="Class template splaytree">splaytree</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</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> T<span class="special">,</span> <span class="keyword">class</span> <span class="special">...</span> Options2<span class="special">></span> - <span class="keyword">void</span> <a class="link" href="splaytree.html#idm45971707003632-bb"><span class="identifier">merge_equal</span></a><span class="special">(</span><a class="link" href="splaytree.html" title="Class template splaytree">splaytree</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">void</span> <a class="link" href="splaytree.html#idm45971706995264-bb"><span class="identifier">splay_up</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="splaytree.html#idm48484-bb"><span class="identifier">merge_equal</span></a><span class="special">(</span><a class="link" href="splaytree.html" title="Class template splaytree">splaytree</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="splaytree.html#idm48493-bb"><span class="identifier">splay_up</span></a><span class="special">(</span><span class="identifier">iterator</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> KeyType<span class="special">,</span> <span class="keyword">typename</span> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a class="link" href="splaytree.html#idm45971706989792-bb"><span class="identifier">splay_down</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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="splaytree.html#idm45971706982320-bb"><span class="identifier">splay_down</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">void</span> <a class="link" href="splaytree.html#idm45971706977056-bb"><span class="identifier">rebalance</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="splaytree.html#idm45971706973264-bb"><span class="identifier">rebalance_subtree</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="splaytree.html#idm48506-bb"><span class="identifier">splay_down</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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="splaytree.html#idm48524-bb"><span class="identifier">splay_down</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">void</span> <a class="link" href="splaytree.html#idm48537-bb"><span class="identifier">rebalance</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="splaytree.html#idm48546-bb"><span class="identifier">rebalance_subtree</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="comment">// <a class="link" href="splaytree.html#idm45971706938384-bb">public static functions</a></span> - <span class="keyword">static</span> <a class="link" href="splaytree.html" title="Class template splaytree">splaytree</a> <span class="special">&</span> <a class="link" href="splaytree.html#idm45971706937824-bb"><span class="identifier">container_from_end_iterator</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="comment">// <a class="link" href="splaytree.html#idm48619-bb">public static functions</a></span> + <span class="keyword">static</span> <a class="link" href="splaytree.html" title="Class template splaytree">splaytree</a> <span class="special">&</span> <a class="link" href="splaytree.html#idm48620-bb"><span class="identifier">container_from_end_iterator</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> <span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="splaytree.html" title="Class template splaytree">splaytree</a> <span class="special">&</span> - <a class="link" href="splaytree.html#idm45971706931808-bb"><span class="identifier">container_from_end_iterator</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">static</span> <a class="link" href="splaytree.html" title="Class template splaytree">splaytree</a> <span class="special">&</span> <a class="link" href="splaytree.html#idm45971706925632-bb"><span class="identifier">container_from_iterator</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="splaytree.html" title="Class template splaytree">splaytree</a> <span class="special">&</span> <a class="link" href="splaytree.html#idm45971706919664-bb"><span class="identifier">container_from_iterator</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">static</span> <span class="identifier">iterator</span> <a class="link" href="splaytree.html#idm45971706913536-bb"><span class="identifier">s_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_iterator</span> <a class="link" href="splaytree.html#idm45971706906448-bb"><span class="identifier">s_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="keyword">void</span> <a class="link" href="splaytree.html#idm45971706899360-bb"><span class="identifier">init_node</span></a><span class="special">(</span><span class="identifier">reference</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <a class="link" href="splaytree.html#idm48625-bb"><span class="identifier">container_from_end_iterator</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">static</span> <a class="link" href="splaytree.html" title="Class template splaytree">splaytree</a> <span class="special">&</span> <a class="link" href="splaytree.html#idm48630-bb"><span class="identifier">container_from_iterator</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="splaytree.html" title="Class template splaytree">splaytree</a> <span class="special">&</span> <a class="link" href="splaytree.html#idm48635-bb"><span class="identifier">container_from_iterator</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">static</span> <span class="identifier">iterator</span> <a class="link" href="splaytree.html#idm48640-bb"><span class="identifier">s_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_iterator</span> <a class="link" href="splaytree.html#idm48644-bb"><span class="identifier">s_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="keyword">void</span> <a class="link" href="splaytree.html#idm48648-bb"><span class="identifier">init_node</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="comment">// public data members</span> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">bool</span> <span class="identifier">constant_time_size</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.38.4.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.38.4.4"></a><h2>Description</h2> <p>The class template splaytree is an intrusive splay tree container that is used to construct intrusive <a class="link" href="splay_set.html" title="Class template splay_set">splay_set</a> and <a class="link" href="splay_multiset.html" title="Class template splay_multiset">splay_multiset</a> containers. The no-throw guarantee holds only, if the key_compare object doesn't throw.</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> <p>The container supports the following options: <code class="computeroutput">base_hook<>/member_hook<>/value_traits<></code>, <code class="computeroutput">constant_time_size<></code>, <code class="computeroutput">size_type<></code> and <code class="computeroutput">compare<></code>. </p> <div class="refsect2"> -<a name="id-1.3.20.42.38.4.4.5"></a><h3> +<a name="id-1.3.18.42.38.4.4.5"></a><h3> <a name="boost.intrusive.splaytreeconstruct-copy-destruct"></a><code class="computeroutput">splaytree</code> public construct/copy/destruct</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> <li class="listitem"> -<pre class="literallayout"><a name="idm45971706966832-bb"></a><span class="identifier">splaytree</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm48561-bb"></a><span class="identifier">splaytree</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Constructs an empty container.</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 constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor of the key_compare object throws. Basic guarantee. </p> +<p><span class="bold"><strong>Throws</strong></span>: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor of the key_compare object throws. Basic guarantee. </p> </li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">explicit</span> <a name="idm45971706963680-bb"></a><span class="identifier">splaytree</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> cmp<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> -<p><span class="bold"><strong>Effects</strong></span>: Constructs an empty container with given comparison and traits.</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 constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor of the key_compare object throws. Basic guarantee. </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> - <a name="idm45971706958560-bb"></a><span class="identifier">splaytree</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> +<li class="listitem"><pre class="literallayout"><span class="keyword">explicit</span> <a name="idm48569-bb"></a><span class="identifier">splaytree</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> cmp<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></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="idm48575-bb"></a><span class="identifier">splaytree</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> <span class="identifier">key_compare</span> <span class="special">&</span> cmp <span class="special">=</span> <span class="identifier">key_compare</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> -<p><span class="bold"><strong>Requires</strong></span>: Dereferencing iterator must yield an lvalue of type value_type. cmp must be a comparison function that induces a strict weak ordering.</p> -<p><span class="bold"><strong>Effects</strong></span>: Constructs an empty container and inserts elements from [b, e).</p> -<p><span class="bold"><strong>Complexity</strong></span>: Linear in N if [b, e) is already sorted using comp and otherwise N * log N, where N is the distance between first and last.</p> -<p><span class="bold"><strong>Throws</strong></span>: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor/operator() of the key_compare object throws. Basic guarantee. </p> -</li> + <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></li> <li class="listitem"> -<pre class="literallayout"><a name="idm45971706949408-bb"></a><span class="identifier">splaytree</span><span class="special">(</span><a class="link" href="splaytree.html" title="Class template splaytree">splaytree</a> <span class="special">&&</span> x<span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm48590-bb"></a><span class="identifier">splaytree</span><span class="special">(</span><a class="link" href="splaytree.html" title="Class template splaytree">splaytree</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 comparison object and value traits are move constructed and nodes belonging to x (except the node representing the "end") 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 the comparison objet throws. </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 the comparison objet throws. </p> </li> <li class="listitem"> -<pre class="literallayout"><a class="link" href="splaytree.html" title="Class template splaytree">splaytree</a> <span class="special">&</span> <a name="idm45971706945104-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><a class="link" href="splaytree.html" title="Class template splaytree">splaytree</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> +<pre class="literallayout"><a class="link" href="splaytree.html" title="Class template splaytree">splaytree</a> <span class="special">&</span> <a name="idm48601-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><a class="link" href="splaytree.html" title="Class template splaytree">splaytree</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="idm45971706942288-bb"></a><span class="special">~</span><span class="identifier">splaytree</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm48610-bb"></a><span class="special">~</span><span class="identifier">splaytree</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 set are not deleted (i.e. no destructors are called), but the nodes according to the <code class="computeroutput"><a class="link" href="value_traits.html" title="Struct template value_traits">value_traits</a></code> template parameter are reinitialized and thus can be reused.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to elements contained in *this.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> </ol></div> </div> <div class="refsect2"> -<a name="id-1.3.20.42.38.4.4.6"></a><h3> -<a name="idm45971707516832-bb"></a><code class="computeroutput">splaytree</code> public member functions</h3> +<a name="id-1.3.18.42.38.4.4.6"></a><h3> +<a name="idm47561-bb"></a><code class="computeroutput">splaytree</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="idm45971707516272-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="idm47562-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971707512432-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="idm47571-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971707508592-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="idm47580-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971707504752-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="idm47589-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971707500912-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="idm47598-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971707497072-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="idm47607-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">reverse_iterator</span> <a name="idm45971707493232-bb"></a><span class="identifier">rbegin</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">reverse_iterator</span> <a name="idm47616-bb"></a><span class="identifier">rbegin</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 a reverse_iterator pointing to the beginning of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45971707489376-bb"></a><span class="identifier">rbegin</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_reverse_iterator</span> <a name="idm47625-bb"></a><span class="identifier">rbegin</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_reverse_iterator pointing to the beginning of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45971707485520-bb"></a><span class="identifier">crbegin</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_reverse_iterator</span> <a name="idm47634-bb"></a><span class="identifier">crbegin</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_reverse_iterator pointing to the beginning of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">reverse_iterator</span> <a name="idm45971707481664-bb"></a><span class="identifier">rend</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">reverse_iterator</span> <a name="idm47643-bb"></a><span class="identifier">rend</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 a reverse_iterator pointing to the end of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45971707477808-bb"></a><span class="identifier">rend</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_reverse_iterator</span> <a name="idm47652-bb"></a><span class="identifier">rend</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_reverse_iterator pointing to the end of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45971707473952-bb"></a><span class="identifier">crend</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_reverse_iterator</span> <a name="idm47661-bb"></a><span class="identifier">crend</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_reverse_iterator pointing to the end of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971707470096-bb"></a><span class="identifier">root</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="idm47670-bb"></a><span class="identifier">root</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 a iterator pointing to the root node of the container or end() if not present.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971707466224-bb"></a><span class="identifier">root</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="idm47679-bb"></a><span class="identifier">root</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 root node of the container or cend() if not present.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971707462352-bb"></a><span class="identifier">croot</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="idm47688-bb"></a><span class="identifier">croot</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 root node of the container or cend() if not present.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">key_compare</span> <a name="idm45971707458480-bb"></a><span class="identifier">key_comp</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_compare</span> <a name="idm47697-bb"></a><span class="identifier">key_comp</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_compare object used by the container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: If key_compare copy-constructor throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If key_compare copy-constructor throws. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">value_compare</span> <a name="idm45971707454624-bb"></a><span class="identifier">value_comp</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">value_compare</span> <a name="idm47706-bb"></a><span class="identifier">value_comp</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 value_compare object used by the container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: If value_compare copy-constructor throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If value_compare copy-constructor throws. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">bool</span> <a name="idm45971707450752-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="idm47715-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>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971707446928-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="idm47724-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to elements contained in *this if constant-time size option is disabled. Constant time otherwise.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971707442992-bb"></a><span class="identifier">swap</span><span class="special">(</span><a class="link" href="splaytree.html" title="Class template splaytree">splaytree</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="idm47733-bb"></a><span class="identifier">swap</span><span class="special">(</span><a class="link" href="splaytree.html" title="Class template splaytree">splaytree</a> <span class="special">&</span> other<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Swaps the contents of two containers.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comparison functor's swap call throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If the comparison functor's swap call throws. </p> </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="idm45971707438448-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="splaytree.html" title="Class template splaytree">splaytree</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="idm47745-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="splaytree.html" title="Class template splaytree">splaytree</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 equivalent to the original nodes.</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. Copies the predicate from the source container.</p> <p>If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to erased plus inserted elements.</p> -<p><span class="bold"><strong>Throws</strong></span>: If cloner throws or predicate copy assignment throws. Basic guarantee. Additional notes: it also copies the alpha factor from the source container. </p> +<p><span class="bold"><strong>Throws</strong></span>: If cloner throws or predicate copy assignment throws. Basic guarantee. Additional notes: it also copies the alpha factor from the source container. </p> </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="idm45971707429328-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><a class="link" href="splaytree.html" title="Class template splaytree">splaytree</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="idm47767-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><a class="link" href="splaytree.html" title="Class template splaytree">splaytree</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 equivalent to the original nodes.</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. Copies the predicate from the source container.</p> <p>If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to erased plus inserted elements.</p> <p><span class="bold"><strong>Throws</strong></span>: If cloner throws or predicate copy assignment throws. Basic guarantee.</p> -<p><span class="bold"><strong>Note</strong></span>: This version can modify the source container, useful to implement move semantics. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971707419520-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 value into the container before the upper bound.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Average complexity for insert element is at most logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the internal key_compare ordering function throws. Strong guarantee.</p> -<p><span class="bold"><strong>Note</strong></span>: Does not affect the validity of iterators and references. No copy-constructors are called. </p> +<p><span class="bold"><strong>Note</strong></span>: This version can modify the source container, useful to implement move semantics. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm47791-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm47795-bb"></a><span class="identifier">insert_equal</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<span class="special">,</span> <span class="identifier">reference</span> value<span class="special">)</span><span class="special">;</span></pre></li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971707413360-bb"></a><span class="identifier">insert_equal</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<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, and "hint" must be a valid iterator.</p> -<p><span class="bold"><strong>Effects</strong></span>: Inserts x into the container, using "hint" as a hint to where it will be inserted. If "hint" is the upper_bound the insertion takes constant time (two comparisons in the worst case)</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic in general, but it is amortized constant time if t is inserted immediately before hint.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the internal key_compare ordering function throws. Strong guarantee.</p> -<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="idm45971707406336-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="idm47801-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>: Inserts a each element of a range into the container before the upper bound of the key of each element.</p> <p><span class="bold"><strong>Complexity</strong></span>: Insert range is in general O(N * log(N)), where N is the size of the range. However, it is linear in N if the range is already sorted by value_comp().</p> <p><span class="bold"><strong>Throws</strong></span>: If the comparison functor call throws.</p> -<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="idm45971707398496-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>: Inserts value into the container if the value is not already present.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Average complexity for insert element is at most logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comparison functor call throws.</p> -<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">iterator</span> <a name="idm45971707392352-bb"></a><span class="identifier">insert_unique</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<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, and "hint" must be a valid iterator</p> -<p><span class="bold"><strong>Effects</strong></span>: Tries to insert x into the container, using "hint" as a hint to where it will be inserted.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic in general, but it is amortized constant time (two comparisons in the worst case) if t is inserted immediately before hint.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comparison functor call throws.</p> -<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="idm45971707385392-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 container, 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 complexity is at most logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comp ordering function throws. Strong guarantee. </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="idm45971707379200-bb"></a><span class="identifier">insert_unique_check</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<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 container, using a user provided key instead of the value itself, using "hint" as a hint to where it will be inserted.</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>: Logarithmic in general, but it's amortized constant time if t is inserted immediately before hint.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comp ordering function throws. Strong guarantee. </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> KeyTypeKeyCompare<span class="special">></span> +<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="idm47820-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm47824-bb"></a><span class="identifier">insert_unique</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<span class="special">,</span> <span class="identifier">reference</span> value<span class="special">)</span><span class="special">;</span></pre></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="idm47830-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></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="idm47836-bb"></a><span class="identifier">insert_unique_check</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<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></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> KeyTypeKeyCompare<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="idm45971707372224-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">KeyTypeKeyCompare</span> comp<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>: comp must be a comparison function that induces the same strict weak ordering as key_compare. The difference is that comp compares an arbitrary key with the contained values.</p> -<p><span class="bold"><strong>Effects</strong></span>: Checks if a value can be inserted in the container, 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 complexity is at most logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comp ordering function throws. Strong guarantee.</p> -<p><span class="bold"><strong>Notes</strong></span>: This function is used to improve performance when constructing a value_type is expensive: if there is an equivalent value the constructed object must be discarded. Many times, the part of the node that is used to impose the order is much cheaper to construct than the value_type and this function offers the possibility to use that part to check if the insertion will be successful.</p> -<p>If the check is successful, the user can construct the value_type and use "insert_commit" to insert the object in constant-time. This gives a total logarithmic complexity to the insertion: check(O(log(N)) + commit(O(1)).</p> -<p>"commit_data" remains valid for a subsequent "insert_commit" only if no more objects are inserted or erased from the container. </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> KeyTypeKeyCompare<span class="special">></span> + <a name="idm47844-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">KeyTypeKeyCompare</span> comp<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></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> KeyTypeKeyCompare<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="idm45971707360816-bb"></a><span class="identifier">insert_unique_check</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> key<span class="special">,</span> + <a name="idm47855-bb"></a><span class="identifier">insert_unique_check</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<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">KeyTypeKeyCompare</span> comp<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>: comp must be a comparison function that induces the same strict weak ordering as key_compare. The difference is that comp compares an arbitrary key with the contained values.</p> -<p><span class="bold"><strong>Effects</strong></span>: Checks if a value can be inserted in the container, using a user provided key instead of the value itself, using "hint" as a hint to where it will be inserted.</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>: Logarithmic in general, but it's amortized constant time if t is inserted immediately before hint.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comp ordering function throws. Strong guarantee.</p> -<p><span class="bold"><strong>Notes</strong></span>: This function is used to improve performance when constructing a value_type is expensive: if there is an equivalent value the constructed object must be discarded. Many times, the part of the constructing that is used to impose the order is much cheaper to construct than the value_type and this function offers the possibility to use that key to check if the insertion will be successful.</p> -<p>If the check is successful, the user can construct the value_type and use "insert_commit" to insert the object in constant-time. This can give a total constant-time complexity to the insertion: check(O(1)) + commit(O(1)).</p> -<p>"commit_data" remains valid for a subsequent "insert_commit" only if no more objects are inserted or erased from the container. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971707348624-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="identifier">insert_commit_data</span> <span class="special">&</span> commit_data<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm47868-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 container 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 container using the information obtained from the "commit_data" that a previous "insert_check" filled.</p> <p><span class="bold"><strong>Returns</strong></span>: An iterator to the newly inserted object.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Notes</strong></span>: This function has only sense if a "insert_check" has been previously executed to fill "commit_data". No value should be inserted or erased between the "insert_check" and "insert_commit" calls. </p> +<p><span class="bold"><strong>Notes</strong></span>: This function has only sense if a "insert_check" has been previously executed to fill "commit_data". No value should be inserted or erased between the "insert_check" and "insert_commit" calls. </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="idm45971707340320-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="idm47887-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>: Tries to insert each element of a range into the container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Insert range is in general O(N * log(N)), where N is the size of the range. However, it is linear in N if the range is already sorted by value_comp().</p> <p><span class="bold"><strong>Throws</strong></span>: If the comparison functor call throws.</p> -<p><span class="bold"><strong>Note</strong></span>: Does not affect the validity of iterators and references. No copy-constructors are called. </p> +<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">iterator</span> <a name="idm45971707332528-bb"></a><span class="identifier">insert_before</span><span class="special">(</span><span class="identifier">const_iterator</span> pos<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="idm47906-bb"></a><span class="identifier">insert_before</span><span class="special">(</span><span class="identifier">const_iterator</span> pos<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, "pos" must be a valid iterator (or end) and must be the succesor of value once inserted according to the predicate</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts x into the container before "pos".</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if "pos" is not the successor of "value" container ordering invariant will be broken. This is a low-level function to be used only for performance reasons by advanced users. </p> +<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if "pos" is not the successor of "value" container ordering invariant will be broken. This is a low-level function to be used only for performance reasons by advanced users. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971707325296-bb"></a><span class="identifier">push_back</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">void</span> <a name="idm47923-bb"></a><span class="identifier">push_back</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 it must be no less than the greatest inserted key</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts x into the container in the last position.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if value is less than the greatest inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users. </p> +<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if value is less than the greatest inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971707318736-bb"></a><span class="identifier">push_front</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">void</span> <a name="idm47938-bb"></a><span class="identifier">push_front</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 it must be no greater than the minimum inserted key</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts x into the container in the first position.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if value is greater than the minimum inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971707312176-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 complexity for erase element is constant time.</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">iterator</span> <a name="idm45971707306688-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 complexity for erase range is at most O(log(size() + N)), where N is the number of elements in the range.</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="idm45971707300448-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>: O(log(size() + N).</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> +<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if value is greater than the minimum inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm47953-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm47957-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">size_type</span> <a name="idm47963-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></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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971707294400-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <span class="identifier">size_type</span> <a name="idm47967-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Erases all the elements with the given key. according to the comparison functor "comp".</p> <p><span class="bold"><strong>Returns</strong></span>: The number of erased elements.</p> <p><span class="bold"><strong>Complexity</strong></span>: O(log(size() + N).</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="identifier">iterator</span> <a name="idm45971707284304-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 complexity for erase element is constant time.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<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">template</span><span class="special"><</span><span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="identifier">iterator</span> <a name="idm45971707276400-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> -<p><span class="bold"><strong>Complexity</strong></span>: Average complexity for erase range is at most O(log(size() + N)), where N is the number of elements in the range.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<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">template</span><span class="special"><</span><span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971707267744-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> -<p><span class="bold"><strong>Complexity</strong></span>: O(log(size() + N).</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> +<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="identifier">iterator</span> <a name="idm47991-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></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">iterator</span> <a name="idm47999-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></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="idm48009-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></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> KeyTypeKeyCompare<span class="special">,</span> <span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971707259216-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">KeyTypeKeyCompare</span> comp<span class="special">,</span> + <span class="identifier">size_type</span> <a name="idm48017-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">KeyTypeKeyCompare</span> comp<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>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk) and nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Requires</strong></span>: Disposer::operator()(pointer) shouldn't throw.</p> @@ -600,182 +489,147 @@ <p><span class="bold"><strong>Returns</strong></span>: The number of erased elements.</p> <p><span class="bold"><strong>Complexity</strong></span>: O(log(size() + N).</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: Invalidates the iterators to the erased elements. </p> +<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="idm45971707246992-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="idm48046-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> +<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="idm45971707242128-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="idm48057-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>Effects</strong></span>: Erases all of the elements calling disposer(p) for each node to be erased. <span class="bold"><strong>Complexity</strong></span>: Average complexity for is at most O(log(size() + N)), where N is the number of elements in the container.</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. Calls N times to disposer functor. </p> +<p><span class="bold"><strong>Note</strong></span>: Invalidates the iterators (but not the references) to the erased elements. Calls N times to disposer functor. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">size_type</span> <a name="idm45971707235824-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="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>: Logarithmic to the number of elements contained plus lineal to number of objects with the given value.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. Additional note: non-const function, splaying is performed. </p> +<pre class="literallayout"><span class="identifier">size_type</span> <a name="idm48071-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="special">;</span></pre> +<p>Additional note: non-const function, splaying is performed. </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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971707230976-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <span class="identifier">size_type</span> <a name="idm48077-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns the number of contained elements with the given key</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic to the number of elements contained plus lineal to number of objects with the given key.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. Additional note: non-const function, splaying is performed. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. Additional note: non-const function, splaying is performed. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">size_type</span> <a name="idm45971707222144-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>: Logarithmic to the number of elements contained plus lineal to number of objects with the given value.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. Additional note: const function, no splaying is performed </p> +<pre class="literallayout"><span class="identifier">size_type</span> <a name="idm48098-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>Additional note: const function, no splaying is performed </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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971707217024-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> + <span class="identifier">size_type</span> <a name="idm48104-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns the number of contained elements with the given key</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic to the number of elements contained plus lineal to number of objects with the given key.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. Additional note: const function, no splaying is performed </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. Additional note: const function, no splaying is performed </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971707207920-bb"></a><span class="identifier">lower_bound</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 an iterator to the first element whose key is not less than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. Additional note: non-const function, splaying is performed. </p> +<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm48125-bb"></a><span class="identifier">lower_bound</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>Additional note: non-const function, splaying is performed. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971707203120-bb"></a><span class="identifier">lower_bound</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 an iterator to the first element whose key is not less than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. Additional note: const function, no splaying is performed </p> +<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm48131-bb"></a><span class="identifier">lower_bound</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>Additional note: const function, no splaying is performed </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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a name="idm45971707198048-bb"></a><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Effects</strong></span>: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. Additional note: non-const function, splaying is performed for the first element of the equal range of "key" </p> + <span class="identifier">iterator</span> <a name="idm48137-bb"></a><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> +<p>Additional note: non-const function, splaying is performed for the first element of the equal range of "key" </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> KeyTypeKeyCompare<span class="special">></span> <span class="identifier">const_iterator</span> - <a name="idm45971707191104-bb"></a><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Effects</strong></span>: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. Additional note: const function, no splaying is performed </p> + <a name="idm48148-bb"></a><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<p>Additional note: const function, no splaying is performed </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971707183936-bb"></a><span class="identifier">upper_bound</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 an iterator to the first element whose key is greater than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. Additional note: non-const function, splaying is performed for the first element of the equal range of "value" </p> +<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm48159-bb"></a><span class="identifier">upper_bound</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>Additional note: non-const function, splaying is performed for the first element of the equal range of "value" </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971707179072-bb"></a><span class="identifier">upper_bound</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 an iterator to the first element whose key is greater than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. Additional note: const function, no splaying is performed </p> +<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm48165-bb"></a><span class="identifier">upper_bound</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>Additional note: const function, no splaying is performed </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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a name="idm45971707174000-bb"></a><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <span class="identifier">iterator</span> <a name="idm48171-bb"></a><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns an iterator to the first element whose key is greater than k according to comp or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. Additional note: non-const function, splaying is performed for the first element of the equal range of "key" </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. Additional note: non-const function, splaying is performed for the first element of the equal range of "key" </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> KeyTypeKeyCompare<span class="special">></span> <span class="identifier">const_iterator</span> - <a name="idm45971707165200-bb"></a><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> + <a name="idm48192-bb"></a><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns an iterator to the first element whose key is greater than k according to comp or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. Additional note: const function, no splaying is performed </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. Additional note: const function, no splaying is performed </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971707156176-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 whose key is k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. Additional note: non-const function, splaying is performed for the first element of the equal range of "value" </p> +<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm48213-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>Additional note: non-const function, splaying is performed for the first element of the equal range of "value" </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971707151328-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 an iterator to the first element whose key is k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. Additional note: const function, no splaying is performed </p> +<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm48219-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>Additional note: const function, no splaying is performed </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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a name="idm45971707146272-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <span class="identifier">iterator</span> <a name="idm48225-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Finds an iterator to the first element whose key is k or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. Additional note: non-const function, splaying is performed for the first element of the equal range of "key" </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. Additional note: non-const function, splaying is performed for the first element of the equal range of "key" </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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">const_iterator</span> <a name="idm45971707137440-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> + <span class="identifier">const_iterator</span> <a name="idm48246-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Finds an iterator to the first element whose key is k or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. Additional note: const function, no splaying is performed </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. Additional note: const function, no splaying is performed </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="idm45971707128384-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>: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. Additional note: non-const function, splaying is performed for the first element of the equal range of "value" </p> +<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="idm48267-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>Additional note: non-const function, splaying is performed for the first element of the equal range of "value" </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">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">></span> -<a name="idm45971707123440-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>: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. Additional note: const function, no splaying is performed </p> +<a name="idm48273-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>Additional note: const function, no splaying is performed </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> KeyTypeKeyCompare<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="idm45971707118272-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <a name="idm48279-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. Additional note: non-const function, splaying is performed for the first element of the equal range of "key" </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. Additional note: non-const function, splaying is performed for the first element of the equal range of "key" </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> KeyTypeKeyCompare<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="idm45971707109344-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> + <a name="idm48300-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. Additional note: const function, no splaying is performed </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="idm45971707100176-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> upper_key<span class="special">,</span> - <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: <code class="computeroutput">upper_key</code> shall not precede <code class="computeroutput">lower_key</code> according to key_compare. [key_comp()(upper_key, lower_key) shall be false]</p> -<p>If <code class="computeroutput">lower_key</code> is equivalent to <code class="computeroutput">upper_key</code> [!key_comp()(upper_key, lower_key) && !key_comp()(lower_key, upper_key)] then ('left_closed' || 'right_closed') must be false.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns an a pair with the following criteria:</p> -<p>first = lower_bound(lower_key) if left_closed, upper_bound(lower_key) otherwise</p> -<p>second = upper_bound(upper_key) if right_closed, lower_bound(upper_key) otherwise</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws.</p> -<p><span class="bold"><strong>Note</strong></span>: This function can be more efficient than calling upper_bound and lower_bound for lower_value and upper_value.</p> -<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. Additional note: const function, no splaying is performed </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="idm48321-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> upper_key<span class="special">,</span> + <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span><span class="special">;</span></pre></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> KeyTypeKeyCompare<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="idm45971707087744-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> + <a name="idm48331-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span> comp<span class="special">,</span> <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: <code class="computeroutput">lower_key</code> is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, lower_key) if left_closed is true, with respect to !comp(lower_key, nk) otherwise.</p> <p><code class="computeroutput">upper_key</code> is a value such that <code class="computeroutput">*this</code> is partitioned with respect to !comp(upper_key, nk) if right_closed is true, with respect to comp(nk, upper_key) otherwise.</p> @@ -787,26 +641,15 @@ <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> <p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws.</p> <p><span class="bold"><strong>Note</strong></span>: This function can be more efficient than calling upper_bound and lower_bound for lower_key and upper_key.</p> -<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </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">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">></span> -<a name="idm45971707070944-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> upper_key<span class="special">,</span> - <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: <code class="computeroutput">upper_key</code> shall not precede <code class="computeroutput">lower_key</code> according to key_compare. [key_comp()(upper_key, lower_key) shall be false]</p> -<p>If <code class="computeroutput">lower_key</code> is equivalent to <code class="computeroutput">upper_key</code> [!key_comp()(upper_key, lower_key) && !key_comp()(lower_key, upper_key)] then ('left_closed' || 'right_closed') must be false.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns an a pair with the following criteria:</p> -<p>first = lower_bound(lower_key) if left_closed, upper_bound(lower_key) otherwise</p> -<p>second = upper_bound(upper_key) if right_closed, lower_bound(upper_key) otherwise</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws.</p> -<p><span class="bold"><strong>Note</strong></span>: This function can be more efficient than calling upper_bound and lower_bound for lower_value and upper_value.</p> -<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </p> +<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </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">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">></span> +<a name="idm48373-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> upper_key<span class="special">,</span> + <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></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> KeyTypeKeyCompare<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="idm45971707058224-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> + <a name="idm48383-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span> comp<span class="special">,</span> <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: <code class="computeroutput">lower_key</code> is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, lower_key) if left_closed is true, with respect to !comp(lower_key, nk) otherwise.</p> <p><code class="computeroutput">upper_key</code> is a value such that <code class="computeroutput">*this</code> is partitioned with respect to !comp(upper_key, nk) if right_closed is true, with respect to comp(nk, upper_key) otherwise.</p> @@ -818,65 +661,39 @@ <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> <p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws.</p> <p><span class="bold"><strong>Note</strong></span>: This function can be more efficient than calling upper_bound and lower_bound for lower_key and upper_key.</p> -<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971707041136-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 set of appropriate type. Otherwise the behavior is undefined.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns: a valid iterator i belonging to the set 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> +<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm48425-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm48429-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></li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971707035648-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 set of appropriate type. Otherwise the behavior is undefined.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns: a valid const_iterator i belonging to the set 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">pointer</span> <a name="idm45971707030160-bb"></a><span class="identifier">unlink_leftmost_without_rebalance</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">pointer</span> <a name="idm48433-bb"></a><span class="identifier">unlink_leftmost_without_rebalance</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>: Unlinks the leftmost node from the container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Average complexity is constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Notes</strong></span>: This function breaks the container and the container can only be used for more unlink_leftmost_without_rebalance calls. This function is normally used to achieve a step by step controlled destruction of the container. </p> +<p><span class="bold"><strong>Notes</strong></span>: This function breaks the container and the container can only be used for more unlink_leftmost_without_rebalance calls. This function is normally used to achieve a step by step controlled destruction of the container. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971707025248-bb"></a><span class="identifier">replace_node</span><span class="special">(</span><span class="identifier">iterator</span> replace_this<span class="special">,</span> <span class="identifier">reference</span> with_this<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">void</span> <a name="idm48444-bb"></a><span class="identifier">replace_node</span><span class="special">(</span><span class="identifier">iterator</span> replace_this<span class="special">,</span> <span class="identifier">reference</span> with_this<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: replace_this must be a valid iterator of *this and with_this must not be inserted in any container.</p> <p><span class="bold"><strong>Effects</strong></span>: Replaces replace_this in its position in the container with with_this. The container does not need to be rebalanced.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: This function will break container ordering invariants if with_this is not equivalent to *replace_this according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing or comparison is needed. </p> +<p><span class="bold"><strong>Note</strong></span>: This function will break container ordering invariants if with_this is not equivalent to *replace_this according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing or comparison is needed. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971707017984-bb"></a><span class="identifier">remove_node</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">void</span> <a name="idm48461-bb"></a><span class="identifier">remove_node</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>Effects</strong></span>: removes "value" from the container.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic time.</p> <p><span class="bold"><strong>Note</strong></span>: This static function is only usable with non-constant time size containers that have stateless comparison functors.</p> -<p>If the user calls this function with a constant time size container or stateful comparison functor a compilation error will be issued. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><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> Options2<span class="special">></span> - <span class="keyword">void</span> <a name="idm45971707012144-bb"></a><span class="identifier">merge_unique</span><span class="special">(</span><a class="link" href="splaytree.html" title="Class template splaytree">splaytree</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: "source" container's Options can only can differ in the comparison function from *this.</p> -<p><span class="bold"><strong>Effects</strong></span>: Attempts to extract each element in source and insert it into a using the comparison object of *this. If there is an element in a with key equivalent to the key of an element from source, then that element is not extracted from source.</p> -<p><span class="bold"><strong>Postcondition</strong></span>: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing unless the comparison object throws.</p> -<p><span class="bold"><strong>Complexity</strong></span>: N log(a.size() + N) (N has the value source.size()) </p> +<p>If the user calls this function with a constant time size container or stateful comparison functor a compilation error will be issued. </p> </li> +<li class="listitem"><pre class="literallayout"><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> Options2<span class="special">></span> + <span class="keyword">void</span> <a name="idm48475-bb"></a><span class="identifier">merge_unique</span><span class="special">(</span><a class="link" href="splaytree.html" title="Class template splaytree">splaytree</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><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> Options2<span class="special">></span> + <span class="keyword">void</span> <a name="idm48484-bb"></a><span class="identifier">merge_equal</span><span class="special">(</span><a class="link" href="splaytree.html" title="Class template splaytree">splaytree</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span></pre></li> <li class="listitem"> -<pre class="literallayout"><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> Options2<span class="special">></span> - <span class="keyword">void</span> <a name="idm45971707003632-bb"></a><span class="identifier">merge_equal</span><span class="special">(</span><a class="link" href="splaytree.html" title="Class template splaytree">splaytree</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: "source" container's Options can only can differ in the comparison function from *this.</p> -<p><span class="bold"><strong>Effects</strong></span>: Extracts each element in source and insert it into a using the comparison object of *this.</p> -<p><span class="bold"><strong>Postcondition</strong></span>: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing unless the comparison object throws.</p> -<p><span class="bold"><strong>Complexity</strong></span>: N log(a.size() + N) (N has the value source.size()) </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971706995264-bb"></a><span class="identifier">splay_up</span><span class="special">(</span><span class="identifier">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="idm48493-bb"></a><span class="identifier">splay_up</span><span class="special">(</span><span class="identifier">iterator</span> i<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: i must be a valid iterator of *this.</p> <p><span class="bold"><strong>Effects</strong></span>: Rearranges the container so that the element pointed by i is placed as the root of the tree, improving future searches of this value.</p> <p><span class="bold"><strong>Complexity</strong></span>: Amortized logarithmic.</p> @@ -884,104 +701,56 @@ </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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a name="idm45971706989792-bb"></a><span class="identifier">splay_down</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <span class="identifier">iterator</span> <a name="idm48506-bb"></a><span class="identifier">splay_down</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Rearranges the container so that if *this stores an element with a key equivalent to value the element is placed as the root of the tree. If the element is not present returns the last node compared with the key. If the tree is empty, end() is returned.</p> <p><span class="bold"><strong>Complexity</strong></span>: Amortized logarithmic.</p> <p><span class="bold"><strong>Returns</strong></span>: An iterator to the new root of the tree, end() if the tree is empty.</p> <p><span class="bold"><strong>Throws</strong></span>: If the comparison functor throws. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971706982320-bb"></a><span class="identifier">splay_down</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="idm48524-bb"></a><span class="identifier">splay_down</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>: Rearranges the container so that if *this stores an element with a key equivalent to value the element is placed as the root of the tree.</p> <p><span class="bold"><strong>Complexity</strong></span>: Amortized logarithmic.</p> <p><span class="bold"><strong>Returns</strong></span>: An iterator to the new root of the tree, end() if the tree is empty.</p> <p><span class="bold"><strong>Throws</strong></span>: If the predicate throws. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971706977056-bb"></a><span class="identifier">rebalance</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="idm48537-bb"></a><span class="identifier">rebalance</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>: Rebalances the tree.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Linear. </p> +<p><span class="bold"><strong>Complexity</strong></span>: Linear. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971706973264-bb"></a><span class="identifier">rebalance_subtree</span><span class="special">(</span><span class="identifier">iterator</span> root<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm48546-bb"></a><span class="identifier">rebalance_subtree</span><span class="special">(</span><span class="identifier">iterator</span> root<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: old_root is a node of a tree.</p> <p><span class="bold"><strong>Effects</strong></span>: Rebalances the subtree rooted at old_root.</p> <p><span class="bold"><strong>Returns</strong></span>: The new root of the subtree.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Linear to the elements in the subtree. </p> +<p><span class="bold"><strong>Complexity</strong></span>: Linear to the elements in the subtree. </p> </li> </ol></div> </div> <div class="refsect2"> -<a name="id-1.3.20.42.38.4.4.7"></a><h3> -<a name="idm45971706938384-bb"></a><code class="computeroutput">splaytree</code> public static functions</h3> +<a name="id-1.3.18.42.38.4.4.7"></a><h3> +<a name="idm48619-bb"></a><code class="computeroutput">splaytree</code> public static functions</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <a class="link" href="splaytree.html" title="Class template splaytree">splaytree</a> <span class="special">&</span> <a name="idm45971706937824-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Precondition</strong></span>: end_iterator must be a valid end iterator of the container.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the container associated to the end iterator</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Constant. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="splaytree.html" title="Class template splaytree">splaytree</a> <span class="special">&</span> -<a name="idm45971706931808-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">const_iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Precondition</strong></span>: end_iterator must be a valid end iterator of the container.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the container associated to the end iterator</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Constant. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <a class="link" href="splaytree.html" title="Class template splaytree">splaytree</a> <span class="special">&</span> <a name="idm45971706925632-bb"></a><span class="identifier">container_from_iterator</span><span class="special">(</span><span class="identifier">iterator</span> it<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Precondition</strong></span>: it must be a valid iterator of the container.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the container associated to the iterator</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="splaytree.html" title="Class template splaytree">splaytree</a> <span class="special">&</span> <a name="idm45971706919664-bb"></a><span class="identifier">container_from_iterator</span><span class="special">(</span><span class="identifier">const_iterator</span> it<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Precondition</strong></span>: it must be a valid iterator of the container.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the container associated to the iterator</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="identifier">iterator</span> <a name="idm45971706913536-bb"></a><span class="identifier">s_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 set of appropriate type. Otherwise the behavior is undefined.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns: a valid iterator i belonging to the set 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> -<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">const_iterator</span> <a name="idm45971706906448-bb"></a><span class="identifier">s_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 set of appropriate type. Otherwise the behavior is undefined.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns: a valid iterator i belonging to the set 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> -<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="keyword">void</span> <a name="idm45971706899360-bb"></a><span class="identifier">init_node</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 shall not be in a container.</p> -<p><span class="bold"><strong>Effects</strong></span>: init_node puts the hook of a value in a well-known default state.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> -<p><span class="bold"><strong>Note</strong></span>: This function puts the hook in the well-known default state used by auto_unlink and safe hooks. </p> -</li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <a class="link" href="splaytree.html" title="Class template splaytree">splaytree</a> <span class="special">&</span> <a name="idm48620-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="splaytree.html" title="Class template splaytree">splaytree</a> <span class="special">&</span> +<a name="idm48625-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">const_iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <a class="link" href="splaytree.html" title="Class template splaytree">splaytree</a> <span class="special">&</span> <a name="idm48630-bb"></a><span class="identifier">container_from_iterator</span><span class="special">(</span><span class="identifier">iterator</span> it<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="splaytree.html" title="Class template splaytree">splaytree</a> <span class="special">&</span> <a name="idm48635-bb"></a><span class="identifier">container_from_iterator</span><span class="special">(</span><span class="identifier">const_iterator</span> it<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">iterator</span> <a name="idm48640-bb"></a><span class="identifier">s_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></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">const_iterator</span> <a name="idm48644-bb"></a><span class="identifier">s_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></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm48648-bb"></a><span class="identifier">init_node</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></li> </ol></div> </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="make_splaytree.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.splaytree_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="splaytree_algorithms.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/splaytree_algorithms.html b/doc/html/boost/intrusive/splaytree_algorithms.html index f1df59c5b6..1d8b96cc64 100644 --- a/doc/html/boost/intrusive/splaytree_algorithms.html +++ b/doc/html/boost/intrusive/splaytree_algorithms.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.splaytree_algorithms_hpp" title="Header <boost/intrusive/splaytree_algorithms.hpp>"> <link rel="prev" href="splaytree.html" title="Class template splaytree"> <link rel="next" href="make_treap.html" title="Struct template make_treap"> +<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> @@ -29,8 +30,8 @@ <h2><span class="refentrytitle">Class template splaytree_algorithms</span></h2> <p>boost::intrusive::splaytree_algorithms</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.splaytree_algorithms_hpp" title="Header <boost/intrusive/splaytree_algorithms.hpp>">boost/intrusive/splaytree_algorithms.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.splaytree_algorithms_hpp" title="Header <boost/intrusive/splaytree_algorithms.hpp>">boost/intrusive/splaytree_algorithms.hpp</a>> </span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodeTraits<span class="special">></span> <span class="keyword">class</span> <a class="link" href="splaytree_algorithms.html" title="Class template splaytree_algorithms">splaytree_algorithms</a> <span class="special">{</span> @@ -42,102 +43,102 @@ <span class="keyword">typedef</span> <span class="identifier">NodeTraits</span><span class="special">::</span><span class="identifier">const_node_ptr</span> <a name="boost.intrusive.splaytree_algorithms.const_node_ptr"></a><span class="identifier">const_node_ptr</span><span class="special">;</span> <span class="keyword">typedef</span> <span class="identifier">bstree_algo</span><span class="special">::</span><span class="identifier">insert_commit_data</span> <a class="link" href="splaytree_algorithms.html#boost.intrusive.splaytree_algorithms.insert_commit_data"><span class="identifier">insert_commit_data</span></a><span class="special">;</span> - <span class="comment">// <a class="link" href="splaytree_algorithms.html#idm45971706875904-bb">public static functions</a></span> - <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="splaytree_algorithms.html#idm45971706875344-bb"><span class="identifier">get_header</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="splaytree_algorithms.html#idm45971706869696-bb"><span class="identifier">begin_node</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="splaytree_algorithms.html#idm45971706864016-bb"><span class="identifier">end_node</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="splaytree_algorithms.html#idm45971706858368-bb"><span class="identifier">swap_tree</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="splaytree_algorithms.html#idm45971706852192-bb"><span class="identifier">swap_nodes</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="splaytree_algorithms.html#idm45971706844464-bb"><span class="identifier">swap_nodes</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="splaytree_algorithms.html#idm45971706835328-bb"><span class="identifier">replace_node</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="splaytree_algorithms.html#idm45971706827760-bb"><span class="identifier">replace_node</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="splaytree_algorithms.html#idm45971706819488-bb"><span class="identifier">unlink</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="splaytree_algorithms.html#idm45971706813808-bb"><span class="identifier">unlink_leftmost_without_rebalance</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">bool</span> <a class="link" href="splaytree_algorithms.html#idm45971706807040-bb"><span class="identifier">unique</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a class="link" href="splaytree_algorithms.html#idm45971706801328-bb"><span class="identifier">size</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="splaytree_algorithms.html#idm45971706795664-bb"><span class="identifier">next_node</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="splaytree_algorithms.html#idm45971706790000-bb"><span class="identifier">prev_node</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="splaytree_algorithms.html#idm45971706784304-bb"><span class="identifier">init</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="splaytree_algorithms.html#idm45971706777760-bb"><span class="identifier">init_header</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="splaytree_algorithms.html#idm45971706771184-bb"><span class="identifier">erase</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="comment">// <a class="link" href="splaytree_algorithms.html#idm48697-bb">public static functions</a></span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="splaytree_algorithms.html#idm48698-bb"><span class="identifier">get_header</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="splaytree_algorithms.html#idm48711-bb"><span class="identifier">begin_node</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="splaytree_algorithms.html#idm48724-bb"><span class="identifier">end_node</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="splaytree_algorithms.html#idm48737-bb"><span class="identifier">swap_tree</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="splaytree_algorithms.html#idm48752-bb"><span class="identifier">swap_nodes</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="splaytree_algorithms.html#idm48770-bb"><span class="identifier">swap_nodes</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="splaytree_algorithms.html#idm48792-bb"><span class="identifier">replace_node</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="splaytree_algorithms.html#idm48809-bb"><span class="identifier">replace_node</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="splaytree_algorithms.html#idm48828-bb"><span class="identifier">unlink</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="splaytree_algorithms.html#idm48841-bb"><span class="identifier">unlink_leftmost_without_rebalance</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">bool</span> <a class="link" href="splaytree_algorithms.html#idm48856-bb"><span class="identifier">unique</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a class="link" href="splaytree_algorithms.html#idm48869-bb"><span class="identifier">size</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="splaytree_algorithms.html#idm48882-bb"><span class="identifier">next_node</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="splaytree_algorithms.html#idm48895-bb"><span class="identifier">prev_node</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="splaytree_algorithms.html#idm48908-bb"><span class="identifier">init</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="splaytree_algorithms.html#idm48923-bb"><span class="identifier">init_header</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="splaytree_algorithms.html#idm48938-bb"><span class="identifier">erase</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</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> NodePtrCompare<span class="special">></span> - <span class="keyword">static</span> <span class="keyword">bool</span> <a class="link" href="splaytree_algorithms.html#idm45971706764704-bb"><span class="identifier">transfer_unique</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">NodePtrCompare</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">bool</span> <a class="link" href="splaytree_algorithms.html#idm48953-bb"><span class="identifier">transfer_unique</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">NodePtrCompare</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span><span class="special">;</span> <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodePtrCompare<span class="special">></span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="splaytree_algorithms.html#idm45971706755344-bb"><span class="identifier">transfer_equal</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">NodePtrCompare</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="splaytree_algorithms.html#idm48976-bb"><span class="identifier">transfer_equal</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">NodePtrCompare</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</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">static</span> <span class="keyword">void</span> <a class="link" href="splaytree_algorithms.html#idm45971706746912-bb"><span class="identifier">clone</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</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">static</span> <span class="keyword">void</span> <a class="link" href="splaytree_algorithms.html#idm48997-bb"><span class="identifier">clone</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</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> Disposer<span class="special">></span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="splaytree_algorithms.html#idm45971706735888-bb"><span class="identifier">clear_and_dispose</span></a><span class="special">(</span><span class="identifier">node_ptr</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">static</span> <span class="keyword">void</span> <a class="link" href="splaytree_algorithms.html#idm49023-bb"><span class="identifier">clear_and_dispose</span></a><span class="special">(</span><span class="identifier">node_ptr</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> KeyType<span class="special">,</span> <span class="keyword">typename</span> KeyNodePtrCompare<span class="special">></span> - <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a class="link" href="splaytree_algorithms.html#idm45971706728032-bb"><span class="identifier">count</span></a><span class="special">(</span><span class="identifier">node_ptr</span><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">KeyNodePtrCompare</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a class="link" href="splaytree_algorithms.html#idm49041-bb"><span class="identifier">count</span></a><span class="special">(</span><span class="identifier">node_ptr</span><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">KeyNodePtrCompare</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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> - <a class="link" href="splaytree_algorithms.html#idm45971706719120-bb"><span class="identifier">count</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><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">KeyNodePtrCompare</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="splaytree_algorithms.html#idm49062-bb"><span class="identifier">count</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><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">KeyNodePtrCompare</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> KeyNodePtrCompare<span class="special">></span> - <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="splaytree_algorithms.html#idm45971706710656-bb"><span class="identifier">lower_bound</span></a><span class="special">(</span><span class="identifier">node_ptr</span><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">KeyNodePtrCompare</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="splaytree_algorithms.html#idm49082-bb"><span class="identifier">lower_bound</span></a><span class="special">(</span><span class="identifier">node_ptr</span><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">KeyNodePtrCompare</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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a class="link" href="splaytree_algorithms.html#idm45971706702128-bb"><span class="identifier">lower_bound</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><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">KeyNodePtrCompare</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="splaytree_algorithms.html#idm49102-bb"><span class="identifier">lower_bound</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><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">KeyNodePtrCompare</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> KeyNodePtrCompare<span class="special">></span> - <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="splaytree_algorithms.html#idm45971706693616-bb"><span class="identifier">upper_bound</span></a><span class="special">(</span><span class="identifier">node_ptr</span><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">KeyNodePtrCompare</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="splaytree_algorithms.html#idm49122-bb"><span class="identifier">upper_bound</span></a><span class="special">(</span><span class="identifier">node_ptr</span><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">KeyNodePtrCompare</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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a class="link" href="splaytree_algorithms.html#idm45971706685088-bb"><span class="identifier">upper_bound</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><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">KeyNodePtrCompare</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="splaytree_algorithms.html#idm49142-bb"><span class="identifier">upper_bound</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><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">KeyNodePtrCompare</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> KeyNodePtrCompare<span class="special">></span> - <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="splaytree_algorithms.html#idm45971706676576-bb"><span class="identifier">find</span></a><span class="special">(</span><span class="identifier">node_ptr</span><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">KeyNodePtrCompare</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="splaytree_algorithms.html#idm49162-bb"><span class="identifier">find</span></a><span class="special">(</span><span class="identifier">node_ptr</span><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">KeyNodePtrCompare</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> KeyNodePtrCompare<span class="special">></span> - <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="splaytree_algorithms.html#idm45971706668048-bb"><span class="identifier">find</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><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">KeyNodePtrCompare</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="splaytree_algorithms.html#idm49182-bb"><span class="identifier">find</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><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">KeyNodePtrCompare</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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span> <span class="special">></span> - <a class="link" href="splaytree_algorithms.html#idm45971706659536-bb"><span class="identifier">equal_range</span></a><span class="special">(</span><span class="identifier">node_ptr</span><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">KeyNodePtrCompare</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="splaytree_algorithms.html#idm49202-bb"><span class="identifier">equal_range</span></a><span class="special">(</span><span class="identifier">node_ptr</span><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">KeyNodePtrCompare</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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span> <span class="special">></span> - <a class="link" href="splaytree_algorithms.html#idm45971706650880-bb"><span class="identifier">equal_range</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><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">KeyNodePtrCompare</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="splaytree_algorithms.html#idm49222-bb"><span class="identifier">equal_range</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><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">KeyNodePtrCompare</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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span> <span class="special">></span> - <a class="link" href="splaytree_algorithms.html#idm45971706642240-bb"><span class="identifier">lower_bound_range</span></a><span class="special">(</span><span class="identifier">node_ptr</span><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">KeyNodePtrCompare</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="splaytree_algorithms.html#idm49242-bb"><span class="identifier">lower_bound_range</span></a><span class="special">(</span><span class="identifier">node_ptr</span><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">KeyNodePtrCompare</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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span> <span class="special">></span> - <a class="link" href="splaytree_algorithms.html#idm45971706633584-bb"><span class="identifier">lower_bound_range</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><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">KeyNodePtrCompare</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="splaytree_algorithms.html#idm49262-bb"><span class="identifier">lower_bound_range</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><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">KeyNodePtrCompare</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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span> <span class="special">></span> - <a class="link" href="splaytree_algorithms.html#idm45971706624944-bb"><span class="identifier">bounded_range</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> + <a class="link" href="splaytree_algorithms.html#idm49282-bb"><span class="identifier">bounded_range</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><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">KeyNodePtrCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span> <span class="special">></span> - <a class="link" href="splaytree_algorithms.html#idm45971706611744-bb"><span class="identifier">bounded_range</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> + <a class="link" href="splaytree_algorithms.html#idm49314-bb"><span class="identifier">bounded_range</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><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">KeyNodePtrCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">)</span><span class="special">;</span> <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a class="link" href="splaytree_algorithms.html#idm45971706598560-bb"><span class="identifier">insert_equal_upper_bound</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">NodePtrCompare</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="splaytree_algorithms.html#idm49346-bb"><span class="identifier">insert_equal_upper_bound</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">NodePtrCompare</span><span class="special">)</span><span class="special">;</span> <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a class="link" href="splaytree_algorithms.html#idm45971706590624-bb"><span class="identifier">insert_equal_lower_bound</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">NodePtrCompare</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="splaytree_algorithms.html#idm49365-bb"><span class="identifier">insert_equal_lower_bound</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">NodePtrCompare</span><span class="special">)</span><span class="special">;</span> <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodePtrCompare<span class="special">></span> - <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="splaytree_algorithms.html#idm45971706582688-bb"><span class="identifier">insert_equal</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">NodePtrCompare</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="splaytree_algorithms.html#idm45971706573872-bb"><span class="identifier">insert_before</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="splaytree_algorithms.html#idm45971706565584-bb"><span class="identifier">push_back</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="splaytree_algorithms.html#idm45971706558112-bb"><span class="identifier">push_front</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="splaytree_algorithms.html#idm49384-bb"><span class="identifier">insert_equal</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">NodePtrCompare</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="splaytree_algorithms.html#idm49405-bb"><span class="identifier">insert_before</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="splaytree_algorithms.html#idm49424-bb"><span class="identifier">push_back</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="splaytree_algorithms.html#idm49441-bb"><span class="identifier">push_front</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</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> KeyType<span class="special">,</span> <span class="keyword">typename</span> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="keyword">bool</span> <span class="special">></span> - <a class="link" href="splaytree_algorithms.html#idm45971706550640-bb"><span class="identifier">insert_unique_check</span></a><span class="special">(</span><span class="identifier">node_ptr</span><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">KeyNodePtrCompare</span><span class="special">,</span> + <a class="link" href="splaytree_algorithms.html#idm49458-bb"><span class="identifier">insert_unique_check</span></a><span class="special">(</span><span class="identifier">node_ptr</span><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">KeyNodePtrCompare</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="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> KeyType<span class="special">,</span> <span class="keyword">typename</span> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="keyword">bool</span> <span class="special">></span> - <a class="link" href="splaytree_algorithms.html#idm45971706538016-bb"><span class="identifier">insert_unique_check</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> + <a class="link" href="splaytree_algorithms.html#idm49473-bb"><span class="identifier">insert_unique_check</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><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">KeyNodePtrCompare</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="keyword">static</span> <span class="keyword">void</span> <a class="link" href="splaytree_algorithms.html#idm45971706524400-bb"><span class="identifier">insert_unique_commit</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="splaytree_algorithms.html#idm49490-bb"><span class="identifier">insert_unique_commit</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</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">static</span> <span class="keyword">bool</span> <a class="link" href="splaytree_algorithms.html#idm45971706515984-bb"><span class="identifier">is_header</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="splaytree_algorithms.html#idm45971706510336-bb"><span class="identifier">rebalance</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="splaytree_algorithms.html#idm45971706504720-bb"><span class="identifier">rebalance_subtree</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="splaytree_algorithms.html#idm45971706498192-bb"><span class="identifier">splay_up</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">bool</span> <a class="link" href="splaytree_algorithms.html#idm49498-bb"><span class="identifier">is_header</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="splaytree_algorithms.html#idm49511-bb"><span class="identifier">rebalance</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="splaytree_algorithms.html#idm49524-bb"><span class="identifier">rebalance_subtree</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="splaytree_algorithms.html#idm49539-bb"><span class="identifier">splay_up</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</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> KeyType<span class="special">,</span> <span class="keyword">typename</span> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a class="link" href="splaytree_algorithms.html#idm45971706495424-bb"><span class="identifier">splay_down</span></a><span class="special">(</span><span class="identifier">node_ptr</span><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">KeyNodePtrCompare</span><span class="special">,</span> <span class="keyword">bool</span> <span class="special">*</span> <span class="special">=</span> <span class="number">0</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="splaytree_algorithms.html#idm49545-bb"><span class="identifier">splay_down</span></a><span class="special">(</span><span class="identifier">node_ptr</span><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">KeyNodePtrCompare</span><span class="special">,</span> <span class="keyword">bool</span> <span class="special">*</span> <span class="special">=</span> <span class="number">0</span><span class="special">)</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.39.3.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.39.3.4"></a><h2>Description</h2> <p>A splay tree is an implementation of a binary search tree. The tree is self balancing using the splay algorithm as described in</p> <p>"Self-Adjusting Binary Search Trees by Daniel Dominic Sleator and Robert Endre Tarjan AT&T Bell Laboratories, Murray Hill, NJ Journal of the ACM, Vol 32, no 3, July 1985, pp 652-686</p> <p><a class="link" href="splaytree_algorithms.html" title="Class template splaytree_algorithms">splaytree_algorithms</a> is configured with a NodeTraits class, which encapsulates the information about the node to be manipulated. NodeTraits must support the following interface:</p> @@ -153,7 +154,7 @@ <p><code class="computeroutput">static node_ptr get_right(const_node_ptr n);</code></p> <p><code class="computeroutput">static void set_right(node_ptr n, node_ptr right);</code> </p> <div class="refsect2"> -<a name="id-1.3.20.42.39.3.4.16"></a><h3> +<a name="id-1.3.18.42.39.3.4.16"></a><h3> <a name="boost.intrusive.splaytree_algorithmstypes"></a><code class="computeroutput">splaytree_algorithms</code> public types</h3> @@ -164,293 +165,293 @@ </li></ol></div> </div> <div class="refsect2"> -<a name="id-1.3.20.42.39.3.4.17"></a><h3> -<a name="idm45971706875904-bb"></a><code class="computeroutput">splaytree_algorithms</code> public static functions</h3> +<a name="id-1.3.18.42.39.3.4.17"></a><h3> +<a name="idm48697-bb"></a><code class="computeroutput">splaytree_algorithms</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">node_ptr</span> <a name="idm45971706875344-bb"></a><span class="identifier">get_header</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span> n<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: 'node' is a node of the tree or a header node.</p> +<pre class="literallayout"><span class="keyword">static</span> <span class="identifier">node_ptr</span> <a name="idm48698-bb"></a><span class="identifier">get_header</span><span class="special">(</span><span class="identifier">const_node_ptr</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 a node of the tree or a header node.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns the header of the tree.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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">node_ptr</span> <a name="idm45971706869696-bb"></a><span class="identifier">begin_node</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span> header<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">node_ptr</span> <a name="idm48711-bb"></a><span class="identifier">begin_node</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: 'header' is the header node of a tree.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns the first node of the tree, the header if the tree is empty.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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">node_ptr</span> <a name="idm45971706864016-bb"></a><span class="identifier">end_node</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span> header<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">node_ptr</span> <a name="idm48724-bb"></a><span class="identifier">end_node</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: 'header' is the header node of a tree.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns the header of the tree.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="keyword">void</span> <a name="idm45971706858368-bb"></a><span class="identifier">swap_tree</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span> header1<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span> header2<span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm48737-bb"></a><span class="identifier">swap_tree</span><span class="special">(</span><span class="identifier">node_ptr</span> header1<span class="special">,</span> <span class="identifier">node_ptr</span> header2<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: header1 and header2 must be the header nodes of two trees.</p> <p><span class="bold"><strong>Effects</strong></span>: Swaps two trees. After the function header1 will contain links to the second tree and header2 will have links to the first tree.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="keyword">void</span> <a name="idm45971706852192-bb"></a><span class="identifier">swap_nodes</span><span class="special">(</span><span class="identifier">node_ptr</span> node1<span class="special">,</span> <span class="identifier">node_ptr</span> node2<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm48752-bb"></a><span class="identifier">swap_nodes</span><span class="special">(</span><span class="identifier">node_ptr</span> node1<span class="special">,</span> <span class="identifier">node_ptr</span> node2<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: node1 and node2 can't be header nodes of two trees.</p> <p><span class="bold"><strong>Effects</strong></span>: Swaps two nodes. After the function node1 will be inserted in the position node2 before the function. node2 will be inserted in the position node1 had before the function.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Note</strong></span>: This function will break container ordering invariants if node1 and node2 are not equivalent according to the ordering rules.</p> -<p>Experimental function </p> +<p>Experimental function </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971706844464-bb"></a><span class="identifier">swap_nodes</span><span class="special">(</span><span class="identifier">node_ptr</span> node1<span class="special">,</span> <span class="identifier">node_ptr</span> header1<span class="special">,</span> <span class="identifier">node_ptr</span> node2<span class="special">,</span> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm48770-bb"></a><span class="identifier">swap_nodes</span><span class="special">(</span><span class="identifier">node_ptr</span> node1<span class="special">,</span> <span class="identifier">node_ptr</span> header1<span class="special">,</span> <span class="identifier">node_ptr</span> node2<span class="special">,</span> <span class="identifier">node_ptr</span> header2<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: node1 and node2 can't be header nodes of two trees with header header1 and header2.</p> <p><span class="bold"><strong>Effects</strong></span>: Swaps two nodes. After the function node1 will be inserted in the position node2 before the function. node2 will be inserted in the position node1 had before the function.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Note</strong></span>: This function will break container ordering invariants if node1 and node2 are not equivalent according to the ordering rules.</p> -<p>Experimental function </p> +<p>Experimental function </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971706835328-bb"></a><span class="identifier">replace_node</span><span class="special">(</span><span class="identifier">node_ptr</span> node_to_be_replaced<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm48792-bb"></a><span class="identifier">replace_node</span><span class="special">(</span><span class="identifier">node_ptr</span> node_to_be_replaced<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: node_to_be_replaced must be inserted in a tree and new_node must not be inserted in a tree.</p> <p><span class="bold"><strong>Effects</strong></span>: Replaces node_to_be_replaced in its position in the tree with new_node. The tree does not need to be rebalanced</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: This function will break container ordering invariants if new_node is not equivalent to node_to_be_replaced according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing and comparison is needed. Experimental function </p> +<p><span class="bold"><strong>Note</strong></span>: This function will break container ordering invariants if new_node is not equivalent to node_to_be_replaced according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing and comparison is needed. Experimental function </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971706827760-bb"></a><span class="identifier">replace_node</span><span class="special">(</span><span class="identifier">node_ptr</span> node_to_be_replaced<span class="special">,</span> <span class="identifier">node_ptr</span> header<span class="special">,</span> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm48809-bb"></a><span class="identifier">replace_node</span><span class="special">(</span><span class="identifier">node_ptr</span> node_to_be_replaced<span class="special">,</span> <span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: node_to_be_replaced must be inserted in a tree with header "header" and new_node must not be inserted in a tree.</p> <p><span class="bold"><strong>Effects</strong></span>: Replaces node_to_be_replaced in its position in the tree with new_node. The tree does not need to be rebalanced</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: This function will break container ordering invariants if new_node is not equivalent to node_to_be_replaced according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing or comparison is needed. Experimental function </p> +<p><span class="bold"><strong>Note</strong></span>: This function will break container ordering invariants if new_node is not equivalent to node_to_be_replaced according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing or comparison is needed. Experimental function </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971706819488-bb"></a><span class="identifier">unlink</span><span class="special">(</span><span class="identifier">node_ptr</span> node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: node is a tree node but not the header.</p> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm48828-bb"></a><span class="identifier">unlink</span><span class="special">(</span><span class="identifier">node_ptr</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 a tree node but not the header.</p> <p><span class="bold"><strong>Effects</strong></span>: Unlinks the node and rebalances the tree.</p> <p><span class="bold"><strong>Complexity</strong></span>: Average complexity is constant time.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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">node_ptr</span> <a name="idm45971706813808-bb"></a><span class="identifier">unlink_leftmost_without_rebalance</span><span class="special">(</span><span class="identifier">node_ptr</span> header<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">node_ptr</span> <a name="idm48841-bb"></a><span class="identifier">unlink_leftmost_without_rebalance</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: header is the header of a tree.</p> <p><span class="bold"><strong>Effects</strong></span>: Unlinks the leftmost node from the tree, and updates the header link to the new leftmost node.</p> <p><span class="bold"><strong>Complexity</strong></span>: Average complexity is constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Notes</strong></span>: This function breaks the tree and the tree can only be used for more unlink_leftmost_without_rebalance calls. This function is normally used to achieve a step by step controlled destruction of the tree. </p> +<p><span class="bold"><strong>Notes</strong></span>: This function breaks the tree and the tree can only be used for more unlink_leftmost_without_rebalance calls. This function is normally used to achieve a step by step controlled destruction of the tree. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">bool</span> <a name="idm45971706807040-bb"></a><span class="identifier">unique</span><span class="special">(</span><span class="identifier">const_node_ptr</span> node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: 'node' is a node of the tree or a node initialized by init(...) or init_node.</p> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">bool</span> <a name="idm48856-bb"></a><span class="identifier">unique</span><span class="special">(</span><span class="identifier">const_node_ptr</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 a node of the tree or a node initialized by init(...) or init_node.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns true if the node is initialized by init() or init_node().</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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">std</span><span class="special">::</span><span class="identifier">size_t</span> <a name="idm45971706801328-bb"></a><span class="identifier">size</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: node is a node of the tree but it's not the header.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns the number of nodes of the subtree.</p> +<pre class="literallayout"><span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a name="idm48869-bb"></a><span class="identifier">size</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<p><span class="bold"><strong>Requires</strong></span>: 'header' the header of the tree.</p> +<p><span class="bold"><strong>Effects</strong></span>: Returns the number of nodes of the tree.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear time.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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">node_ptr</span> <a name="idm45971706795664-bb"></a><span class="identifier">next_node</span><span class="special">(</span><span class="identifier">node_ptr</span> node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: 'node' is a node from the tree except the header.</p> +<pre class="literallayout"><span class="keyword">static</span> <span class="identifier">node_ptr</span> <a name="idm48882-bb"></a><span class="identifier">next_node</span><span class="special">(</span><span class="identifier">node_ptr</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 a node from the tree except the header.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns the next node of the tree.</p> <p><span class="bold"><strong>Complexity</strong></span>: Average constant time.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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">node_ptr</span> <a name="idm45971706790000-bb"></a><span class="identifier">prev_node</span><span class="special">(</span><span class="identifier">node_ptr</span> node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: 'node' is a node from the tree except the leftmost node.</p> +<pre class="literallayout"><span class="keyword">static</span> <span class="identifier">node_ptr</span> <a name="idm48895-bb"></a><span class="identifier">prev_node</span><span class="special">(</span><span class="identifier">node_ptr</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 a node from the tree except the leftmost node.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns the previous node of the tree.</p> <p><span class="bold"><strong>Complexity</strong></span>: Average constant time.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="keyword">void</span> <a name="idm45971706784304-bb"></a><span class="identifier">init</span><span class="special">(</span><span class="identifier">node_ptr</span> node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: 'node' must not be part of any tree.</p> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm48908-bb"></a><span class="identifier">init</span><span class="special">(</span><span class="identifier">node_ptr</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' must not be part of any tree.</p> <p><span class="bold"><strong>Effects</strong></span>: After the function unique(node) == true.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Nodes</strong></span>: If node is inserted in a tree, this function corrupts the tree. </p> +<p><span class="bold"><strong>Nodes</strong></span>: If node is inserted in a tree, this function corrupts the tree. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971706777760-bb"></a><span class="identifier">init_header</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: node must not be part of any tree.</p> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm48923-bb"></a><span class="identifier">init_header</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<p><span class="bold"><strong>Requires</strong></span>: header must not be part of any tree.</p> <p><span class="bold"><strong>Effects</strong></span>: Initializes the header to represent an empty tree. unique(header) == true.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Nodes</strong></span>: If node is inserted in a tree, this function corrupts the tree. </p> +<p><span class="bold"><strong>Nodes</strong></span>: If header is inserted in a tree, this function corrupts the tree. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971706771184-bb"></a><span class="identifier">erase</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> z<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm48938-bb"></a><span class="identifier">erase</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> z<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: header must be the header of a tree, z a node of that tree and z != header.</p> <p><span class="bold"><strong>Effects</strong></span>: Erases node "z" from the tree with header "header".</p> <p><span class="bold"><strong>Complexity</strong></span>: Amortized constant time.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. Additional notes: the previous node of z is splayed to speed up range deletions. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. Additional notes: the previous node of z is splayed to speed up range deletions. </p> </li> <li class="listitem"> <pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodePtrCompare<span class="special">></span> - <span class="keyword">static</span> <span class="keyword">bool</span> <a name="idm45971706764704-bb"></a><span class="identifier">transfer_unique</span><span class="special">(</span><span class="identifier">node_ptr</span> header1<span class="special">,</span> <span class="identifier">NodePtrCompare</span> comp<span class="special">,</span> + <span class="keyword">static</span> <span class="keyword">bool</span> <a name="idm48953-bb"></a><span class="identifier">transfer_unique</span><span class="special">(</span><span class="identifier">node_ptr</span> header1<span class="special">,</span> <span class="identifier">NodePtrCompare</span> comp<span class="special">,</span> <span class="identifier">node_ptr</span> header2<span class="special">,</span> <span class="identifier">node_ptr</span> z<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: header1 and header2 must be the headers of trees tree1 and tree2 respectively, z a non-header node of tree1. NodePtrCompare is the comparison function of tree1..</p> <p><span class="bold"><strong>Effects</strong></span>: Transfers node "z" from tree1 to tree2 if tree1 does not contain a node that is equivalent to z.</p> <p><span class="bold"><strong>Returns</strong></span>: True if the node was trasferred, false otherwise.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comparison throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If the comparison throws. </p> </li> <li class="listitem"> <pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodePtrCompare<span class="special">></span> - <span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971706755344-bb"></a><span class="identifier">transfer_equal</span><span class="special">(</span><span class="identifier">node_ptr</span> header1<span class="special">,</span> <span class="identifier">NodePtrCompare</span> comp<span class="special">,</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a name="idm48976-bb"></a><span class="identifier">transfer_equal</span><span class="special">(</span><span class="identifier">node_ptr</span> header1<span class="special">,</span> <span class="identifier">NodePtrCompare</span> comp<span class="special">,</span> <span class="identifier">node_ptr</span> header2<span class="special">,</span> <span class="identifier">node_ptr</span> z<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: header1 and header2 must be the headers of trees tree1 and tree2 respectively, z a non-header node of tree1. NodePtrCompare is the comparison function of tree1..</p> <p><span class="bold"><strong>Effects</strong></span>: Transfers node "z" from tree1 to tree2.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comparison throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If the comparison throws. </p> </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">static</span> <span class="keyword">void</span> <a name="idm45971706746912-bb"></a><span class="identifier">clone</span><span class="special">(</span><span class="identifier">const_node_ptr</span> source_header<span class="special">,</span> <span class="identifier">node_ptr</span> target_header<span class="special">,</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a name="idm48997-bb"></a><span class="identifier">clone</span><span class="special">(</span><span class="identifier">const_node_ptr</span> source_header<span class="special">,</span> <span class="identifier">node_ptr</span> target_header<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>: "cloner" must be a function object taking a node_ptr and returning a new cloned node of it. "disposer" must take a node_ptr and shouldn't throw.</p> -<p><span class="bold"><strong>Effects</strong></span>: First empties target tree calling <code class="computeroutput">void disposer::operator()(const node_ptr &)</code> for every node of the tree except the header.</p> -<p>Then, duplicates the entire tree pointed by "source_header" cloning each source node with <code class="computeroutput">node_ptr Cloner::operator()(const node_ptr &)</code> to obtain the nodes of the target tree. If "cloner" throws, the cloned target nodes are disposed using <code class="computeroutput">void disposer(const node_ptr &)</code>.</p> +<p><span class="bold"><strong>Effects</strong></span>: First empties target tree calling <code class="computeroutput">void disposer::operator()(node_ptr)</code> for every node of the tree except the header.</p> +<p>Then, duplicates the entire tree pointed by "source_header" cloning each source node with <code class="computeroutput">node_ptr Cloner::operator()(node_ptr)</code> to obtain the nodes of the target tree. If "cloner" throws, the cloned target nodes are disposed using <code class="computeroutput">void disposer(node_ptr )</code>.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to the number of element of the source tree plus the number of elements of tree target tree when calling this function.</p> -<p><span class="bold"><strong>Throws</strong></span>: If cloner functor throws. If this happens target nodes are disposed. </p> +<p><span class="bold"><strong>Throws</strong></span>: If cloner functor throws. If this happens target nodes are disposed. </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">static</span> <span class="keyword">void</span> <a name="idm45971706735888-bb"></a><span class="identifier">clear_and_dispose</span><span class="special">(</span><span class="identifier">node_ptr</span> header<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">static</span> <span class="keyword">void</span> <a name="idm49023-bb"></a><span class="identifier">clear_and_dispose</span><span class="special">(</span><span class="identifier">node_ptr</span> header<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" must be an object function taking a node_ptr parameter and shouldn't throw.</p> -<p><span class="bold"><strong>Effects</strong></span>: Empties the target tree calling <code class="computeroutput">void disposer::operator()(const node_ptr &)</code> for every node of the tree except the header.</p> +<p><span class="bold"><strong>Effects</strong></span>: Empties the target tree calling <code class="computeroutput">void disposer::operator()(node_ptr)</code> for every node of the tree except the header.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to the number of element of the source tree plus the. number of elements of tree target tree when calling this function.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> - <a name="idm45971706728032-bb"></a><span class="identifier">count</span><span class="special">(</span><span class="identifier">node_ptr</span> header<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">KeyNodePtrCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <a name="idm49041-bb"></a><span class="identifier">count</span><span class="special">(</span><span class="identifier">node_ptr</span> header<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">KeyNodePtrCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns the number of elements with a key equivalent to "key" according to "comp".</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws. Additional notes: an element with key <code class="computeroutput">key</code> is splayed. </p> +<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws. Additional notes: an element with key <code class="computeroutput">key</code> is splayed. </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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> - <a name="idm45971706719120-bb"></a><span class="identifier">count</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<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">KeyNodePtrCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <a name="idm49062-bb"></a><span class="identifier">count</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<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">KeyNodePtrCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns the number of elements with a key equivalent to "key" according to "comp".</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws. Additional note: no splaying is performed </p> +<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws. Additional note: no splaying is performed </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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a name="idm45971706710656-bb"></a><span class="identifier">lower_bound</span><span class="special">(</span><span class="identifier">node_ptr</span> header<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">KeyNodePtrCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <a name="idm49082-bb"></a><span class="identifier">lower_bound</span><span class="special">(</span><span class="identifier">node_ptr</span> header<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">KeyNodePtrCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns a node_ptr to the first element that is not less than "key" according to "comp" or "header" if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws. Additional notes: the first node of the range is splayed. </p> +<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws. Additional notes: the first node of the range is splayed. </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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a name="idm45971706702128-bb"></a><span class="identifier">lower_bound</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> key<span class="special">,</span> + <a name="idm49102-bb"></a><span class="identifier">lower_bound</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<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">KeyNodePtrCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns a node_ptr to the first element that is not less than "key" according to "comp" or "header" if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws. Additional note: no splaying is performed </p> +<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws. Additional note: no splaying is performed </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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a name="idm45971706693616-bb"></a><span class="identifier">upper_bound</span><span class="special">(</span><span class="identifier">node_ptr</span> header<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">KeyNodePtrCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <a name="idm49122-bb"></a><span class="identifier">upper_bound</span><span class="special">(</span><span class="identifier">node_ptr</span> header<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">KeyNodePtrCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns a node_ptr to the first element that is greater than "key" according to "comp" or "header" if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws. Additional notes: the first node of the range is splayed. </p> +<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws. Additional notes: the first node of the range is splayed. </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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a name="idm45971706685088-bb"></a><span class="identifier">upper_bound</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> key<span class="special">,</span> + <a name="idm49142-bb"></a><span class="identifier">upper_bound</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<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">KeyNodePtrCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns a node_ptr to the first element that is greater than "key" according to "comp" or "header" if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws. Additional note: no splaying is performed </p> +<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws. Additional note: no splaying is performed </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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a name="idm45971706676576-bb"></a><span class="identifier">find</span><span class="special">(</span><span class="identifier">node_ptr</span> header<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">KeyNodePtrCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <a name="idm49162-bb"></a><span class="identifier">find</span><span class="special">(</span><span class="identifier">node_ptr</span> header<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">KeyNodePtrCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns a node_ptr to the first element that is equivalent to "key" according to "comp" or "header" if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws. Additional notes: the found node of the lower bound is splayed. </p> +<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws. Additional notes: the found node of the lower bound is splayed. </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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a name="idm45971706668048-bb"></a><span class="identifier">find</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<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">KeyNodePtrCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <a name="idm49182-bb"></a><span class="identifier">find</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<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">KeyNodePtrCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns a node_ptr to the first element that is equivalent to "key" according to "comp" or "header" if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws. Additional note: no splaying is performed </p> +<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws. Additional note: no splaying is performed </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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span> <span class="special">></span> - <a name="idm45971706659536-bb"></a><span class="identifier">equal_range</span><span class="special">(</span><span class="identifier">node_ptr</span> header<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">KeyNodePtrCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <a name="idm49202-bb"></a><span class="identifier">equal_range</span><span class="special">(</span><span class="identifier">node_ptr</span> header<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">KeyNodePtrCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns an a pair of node_ptr delimiting a range containing all elements that are equivalent to "key" according to "comp" or an empty range that indicates the position where those elements would be if there are no equivalent elements.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws. Additional notes: the first node of the range is splayed. </p> +<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws. Additional notes: the first node of the range is splayed. </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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span> <span class="special">></span> - <a name="idm45971706650880-bb"></a><span class="identifier">equal_range</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> key<span class="special">,</span> + <a name="idm49222-bb"></a><span class="identifier">equal_range</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<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">KeyNodePtrCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns an a pair of node_ptr delimiting a range containing all elements that are equivalent to "key" according to "comp" or an empty range that indicates the position where those elements would be if there are no equivalent elements.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws. Additional note: no splaying is performed </p> +<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws. Additional note: no splaying is performed </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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span> <span class="special">></span> - <a name="idm45971706642240-bb"></a><span class="identifier">lower_bound_range</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> key<span class="special">,</span> + <a name="idm49242-bb"></a><span class="identifier">lower_bound_range</span><span class="special">(</span><span class="identifier">node_ptr</span> header<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">KeyNodePtrCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns an a pair of node_ptr delimiting a range containing the first element that is equivalent to "key" according to "comp" or an empty range that indicates the position where that element would be if there are no equivalent elements.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws. Additional notes: the first node of the range is splayed. </p> +<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws. Additional notes: the first node of the range is splayed. </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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span> <span class="special">></span> - <a name="idm45971706633584-bb"></a><span class="identifier">lower_bound_range</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> key<span class="special">,</span> + <a name="idm49262-bb"></a><span class="identifier">lower_bound_range</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<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">KeyNodePtrCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns an a pair of node_ptr delimiting a range containing the first element that is equivalent to "key" according to "comp" or an empty range that indicates the position where that element would be if there are no equivalent elements.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws. Additional note: no splaying is performed </p> +<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws. Additional note: no splaying is performed </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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span> <span class="special">></span> - <a name="idm45971706624944-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> + <a name="idm49282-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> <span class="identifier">KeyNodePtrCompare</span> comp<span class="special">,</span> <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs. 'lower_key' must not be greater than 'upper_key' according to 'comp'. If 'lower_key' == 'upper_key', ('left_closed' || 'right_closed') must be true.</p> @@ -460,12 +461,12 @@ <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> <p><span class="bold"><strong>Throws</strong></span>: If "comp" throws.</p> <p><span class="bold"><strong>Note</strong></span>: This function can be more efficient than calling upper_bound and lower_bound for lower_key and upper_key.</p> -<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change. Additional notes: the first node of the range is splayed. </p> +<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change. Additional notes: the first node of the range is splayed. </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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span> <span class="special">></span> - <a name="idm45971706611744-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> + <a name="idm49314-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> <span class="identifier">KeyNodePtrCompare</span> comp<span class="special">,</span> <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs. 'lower_key' must not be greater than 'upper_key' according to 'comp'. If 'lower_key' == 'upper_key', ('left_closed' || 'right_closed') must be true.</p> @@ -475,141 +476,117 @@ <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> <p><span class="bold"><strong>Throws</strong></span>: If "comp" throws.</p> <p><span class="bold"><strong>Note</strong></span>: This function can be more efficient than calling upper_bound and lower_bound for lower_key and upper_key.</p> -<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change. Additional note: no splaying is performed </p> +<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change. Additional note: no splaying is performed </p> </li> <li class="listitem"> <pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a name="idm45971706598560-bb"></a><span class="identifier">insert_equal_upper_bound</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">,</span> + <a name="idm49346-bb"></a><span class="identifier">insert_equal_upper_bound</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">,</span> <span class="identifier">NodePtrCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "h" must be the header node of a tree. NodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. NodePtrCompare compares two node_ptrs.</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts new_node into the tree before the upper bound according to "comp".</p> <p><span class="bold"><strong>Complexity</strong></span>: Average complexity for insert element is at most logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws. Additional note: the inserted node is splayed </p> +<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws. Additional note: the inserted node is splayed </p> </li> <li class="listitem"> <pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a name="idm45971706590624-bb"></a><span class="identifier">insert_equal_lower_bound</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">,</span> + <a name="idm49365-bb"></a><span class="identifier">insert_equal_lower_bound</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">,</span> <span class="identifier">NodePtrCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "h" must be the header node of a tree. NodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. NodePtrCompare compares two node_ptrs.</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts new_node into the tree before the lower bound according to "comp".</p> <p><span class="bold"><strong>Complexity</strong></span>: Average complexity for insert element is at most logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws. Additional note: the inserted node is splayed </p> +<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws. Additional note: the inserted node is splayed </p> </li> <li class="listitem"> <pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a name="idm45971706582688-bb"></a><span class="identifier">insert_equal</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> hint<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">,</span> + <a name="idm49384-bb"></a><span class="identifier">insert_equal</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> hint<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">,</span> <span class="identifier">NodePtrCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "header" must be the header node of a tree. NodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. NodePtrCompare compares two node_ptrs. "hint" is node from the "header"'s tree.</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts new_node into the tree, using "hint" as a hint to where it will be inserted. If "hint" is the upper_bound the insertion takes constant time (two comparisons in the worst case).</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic in general, but it is amortized constant time if new_node is inserted immediately before "hint".</p> -<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws. Additional note: the inserted node is splayed </p> +<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws. Additional note: the inserted node is splayed </p> </li> <li class="listitem"> <pre class="literallayout"><span class="keyword">static</span> <span class="identifier">node_ptr</span> -<a name="idm45971706573872-bb"></a><span class="identifier">insert_before</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> pos<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<a name="idm49405-bb"></a><span class="identifier">insert_before</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> pos<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "header" must be the header node of a tree. "pos" must be a valid iterator or header (end) node. "pos" must be an iterator pointing to the successor to "new_node" once inserted according to the order of already inserted nodes. This function does not check "pos" and this precondition must be guaranteed by the caller.</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts new_node into the tree before "pos".</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant-time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: If "pos" is not the successor of the newly inserted "new_node" tree invariants might be broken. Additional note: the inserted node is splayed </p> +<p><span class="bold"><strong>Note</strong></span>: If "pos" is not the successor of the newly inserted "new_node" tree invariants might be broken. Additional note: the inserted node is splayed </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971706565584-bb"></a><span class="identifier">push_back</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm49424-bb"></a><span class="identifier">push_back</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "header" must be the header node of a tree. "new_node" must be, according to the used ordering no less than the greatest inserted key.</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts new_node into the tree before "pos".</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant-time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: If "new_node" is less than the greatest inserted key tree invariants are broken. This function is slightly faster than using "insert_before". Additional note: the inserted node is splayed </p> +<p><span class="bold"><strong>Note</strong></span>: If "new_node" is less than the greatest inserted key tree invariants are broken. This function is slightly faster than using "insert_before". Additional note: the inserted node is splayed </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971706558112-bb"></a><span class="identifier">push_front</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm49441-bb"></a><span class="identifier">push_front</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "header" must be the header node of a tree. "new_node" must be, according to the used ordering, no greater than the lowest inserted key.</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts new_node into the tree before "pos".</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant-time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: If "new_node" is greater than the lowest inserted key tree invariants are broken. This function is slightly faster than using "insert_before". Additional note: the inserted node is splayed </p> +<p><span class="bold"><strong>Note</strong></span>: If "new_node" is greater than the lowest inserted key tree invariants are broken. This function is slightly faster than using "insert_before". Additional note: the inserted node is splayed </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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="keyword">bool</span> <span class="special">></span> - <a name="idm45971706550640-bb"></a><span class="identifier">insert_unique_check</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> key<span class="special">,</span> + <a name="idm49458-bb"></a><span class="identifier">insert_unique_check</span><span class="special">(</span><span class="identifier">node_ptr</span> header<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">KeyNodePtrCompare</span> comp<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>: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. NodePtrCompare compares KeyType with a node_ptr.</p> -<p><span class="bold"><strong>Effects</strong></span>: Checks if there is an equivalent node to "key" in the tree according to "comp" and obtains the needed information to realize a constant-time node insertion if there is no equivalent node.</p> -<p><span class="bold"><strong>Returns</strong></span>: If there is an equivalent value returns a pair containing a node_ptr to the already present node and false. If there is not equivalent key can be inserted returns true in the returned pair's boolean and fills "commit_data" that is meant to be used with the "insert_commit" function to achieve a constant-time insertion function.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Average complexity is at most logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws.</p> -<p><span class="bold"><strong>Notes</strong></span>: This function is used to improve performance when constructing a node is expensive and the user does not want to have two equivalent nodes in the tree: if there is an equivalent value the constructed object must be discarded. Many times, the part of the node that is used to impose the order is much cheaper to construct than the node and this function offers the possibility to use that part to check if the insertion will be successful.</p> -<p>If the check is successful, the user can construct the node and use "insert_commit" to insert the node in constant-time. This gives a total logarithmic complexity to the insertion: check(O(log(N)) + commit(O(1)).</p> -<p>"commit_data" remains valid for a subsequent "insert_unique_commit" only if no more objects are inserted or erased from the set. Additional note: nodes with the given key are splayed </p> +<p>Additional note: nodes with the given key are splayed </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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="keyword">bool</span> <span class="special">></span> - <a name="idm45971706538016-bb"></a><span class="identifier">insert_unique_check</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> hint<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> key<span class="special">,</span> + <a name="idm49473-bb"></a><span class="identifier">insert_unique_check</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> hint<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">KeyNodePtrCompare</span> comp<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>: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. NodePtrCompare compares KeyType with a node_ptr. "hint" is node from the "header"'s tree.</p> -<p><span class="bold"><strong>Effects</strong></span>: Checks if there is an equivalent node to "key" in the tree according to "comp" using "hint" as a hint to where it should be inserted and obtains the needed information to realize a constant-time node insertion if there is no equivalent node. If "hint" is the upper_bound the function has constant time complexity (two comparisons in the worst case).</p> -<p><span class="bold"><strong>Returns</strong></span>: If there is an equivalent value returns a pair containing a node_ptr to the already present node and false. If there is not equivalent key can be inserted returns true in the returned pair's boolean and fills "commit_data" that is meant to be used with the "insert_commit" function to achieve a constant-time insertion function.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Average complexity is at most logarithmic, but it is amortized constant time if new_node should be inserted immediately before "hint".</p> -<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws.</p> -<p><span class="bold"><strong>Notes</strong></span>: This function is used to improve performance when constructing a node is expensive and the user does not want to have two equivalent nodes in the tree: if there is an equivalent value the constructed object must be discarded. Many times, the part of the node that is used to impose the order is much cheaper to construct than the node and this function offers the possibility to use that part to check if the insertion will be successful.</p> -<p>If the check is successful, the user can construct the node and use "insert_commit" to insert the node in constant-time. This gives a total logarithmic complexity to the insertion: check(O(log(N)) + commit(O(1)).</p> -<p>"commit_data" remains valid for a subsequent "insert_unique_commit" only if no more objects are inserted or erased from the set. Additional note: nodes with the given key are splayed </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971706524400-bb"></a><span class="identifier">insert_unique_commit</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> new_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>: "header" must be the header node of a tree. "commit_data" must have been obtained from a previous call to "insert_unique_check". No objects should have been inserted or erased from the set between the "insert_unique_check" that filled "commit_data" and the call to "insert_commit".</p> -<p><span class="bold"><strong>Effects</strong></span>: Inserts new_node in the set using the information obtained from the "commit_data" that a previous "insert_check" filled.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Notes</strong></span>: This function has only sense if a "insert_unique_check" has been previously executed to fill "commit_data". No value should be inserted or erased between the "insert_check" and "insert_commit" calls. </p> +<p>Additional note: nodes with the given key are splayed </p> </li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm49490-bb"></a><span class="identifier">insert_unique_commit</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> new_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></li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">bool</span> <a name="idm45971706515984-bb"></a><span class="identifier">is_header</span><span class="special">(</span><span class="identifier">const_node_ptr</span> p<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">bool</span> <a name="idm49498-bb"></a><span class="identifier">is_header</span><span class="special">(</span><span class="identifier">const_node_ptr</span> p<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: p is a node of a tree.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns true if p is the header of the tree.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="keyword">void</span> <a name="idm45971706510336-bb"></a><span class="identifier">rebalance</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm49511-bb"></a><span class="identifier">rebalance</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: header must be the header of a tree.</p> <p><span class="bold"><strong>Effects</strong></span>: Rebalances the tree.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Linear. </p> +<p><span class="bold"><strong>Complexity</strong></span>: Linear. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="identifier">node_ptr</span> <a name="idm45971706504720-bb"></a><span class="identifier">rebalance_subtree</span><span class="special">(</span><span class="identifier">node_ptr</span> old_root<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">node_ptr</span> <a name="idm49524-bb"></a><span class="identifier">rebalance_subtree</span><span class="special">(</span><span class="identifier">node_ptr</span> old_root<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: old_root is a node of a tree. It shall not be null.</p> <p><span class="bold"><strong>Effects</strong></span>: Rebalances the subtree rooted at old_root.</p> <p><span class="bold"><strong>Returns</strong></span>: The new root of the subtree.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Linear. </p> +<p><span class="bold"><strong>Complexity</strong></span>: Linear. </p> </li> -<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971706498192-bb"></a><span class="identifier">splay_up</span><span class="special">(</span><span class="identifier">node_ptr</span> node<span class="special">,</span> <span class="identifier">node_ptr</span> header<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm49539-bb"></a><span class="identifier">splay_up</span><span class="special">(</span><span class="identifier">node_ptr</span> n<span class="special">,</span> <span class="identifier">node_ptr</span> header<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a name="idm45971706495424-bb"></a><span class="identifier">splay_down</span><span class="special">(</span><span class="identifier">node_ptr</span> header<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">KeyNodePtrCompare</span> comp<span class="special">,</span> + <a name="idm49545-bb"></a><span class="identifier">splay_down</span><span class="special">(</span><span class="identifier">node_ptr</span> header<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">KeyNodePtrCompare</span> comp<span class="special">,</span> <span class="keyword">bool</span> <span class="special">*</span> pfound <span class="special">=</span> <span class="number">0</span><span class="special">)</span><span class="special">;</span></pre></li> </ol></div> </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="splaytree.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.splaytree_algorithms_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_treap.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/store_hash.html b/doc/html/boost/intrusive/store_hash.html index be2301a1eb..8ca3be68fd 100644 --- a/doc/html/boost/intrusive/store_hash.html +++ b/doc/html/boost/intrusive/store_hash.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.options_hpp" title="Header <boost/intrusive/options.hpp>"> <link rel="prev" href="size_type.html" title="Struct template size_type"> <link rel="next" href="tag.html" title="Struct template tag"> +<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> @@ -29,25 +30,22 @@ <h2><span class="refentrytitle">Struct template store_hash</span></h2> <p>boost::intrusive::store_hash</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.options_hpp" title="Header <boost/intrusive/options.hpp>">boost/intrusive/options.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.options_hpp" title="Header <boost/intrusive/options.hpp>">boost/intrusive/options.hpp</a>> </span><span class="keyword">template</span><span class="special"><</span><span class="keyword">bool</span> Enabled<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="store_hash.html" title="Struct template store_hash">store_hash</a> <span class="special">{</span> <span class="special">}</span><span class="special">;</span></pre></div> <div class="refsect1"> -<a name="id-1.3.20.42.21.26.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.21.28.4"></a><h2>Description</h2> <p>This option setter specifies if the unordered hook should offer room to store the hash value. Storing the hash in the hook will speed up rehashing processes in applications where rehashing is frequent, rehashing might throw or the value is heavy to hash. </p> </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="size_type.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.options_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="tag.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/store_hash_is_true.html b/doc/html/boost/intrusive/store_hash_is_true.html new file mode 100644 index 0000000000..50b166340d --- /dev/null +++ b/doc/html/boost/intrusive/store_hash_is_true.html @@ -0,0 +1,75 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>Struct template store_hash_is_true</title> +<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css"> +<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="optimize_multikey_is_true/two_or_three.html" title="Struct template two_or_three"> +<link rel="next" href="store_hash_is_true/two_or_three.html" title="Struct template two_or_three"> +<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> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td> +<td align="center"><a href="../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="optimize_multikey_is_true/two_or_three.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="store_hash_is_true/two_or_three.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.intrusive.store_hash_is_true"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Struct template store_hash_is_true</span></h2> +<p>boost::intrusive::store_hash_is_true</p> +</div> +<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">struct</span> <a class="link" href="store_hash_is_true.html" title="Struct template store_hash_is_true">store_hash_is_true</a> <span class="special">{</span> + <span class="comment">// member classes/structs/unions</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">bool</span> Add<span class="special">></span> + <span class="keyword">struct</span> <a class="link" href="store_hash_is_true/two_or_three.html" title="Struct template two_or_three">two_or_three</a> <span class="special">{</span> + + <span class="comment">// public data members</span> + <span class="emphasis"><em><span class="identifier">unspecified</span></em></span> <span class="identifier">_</span><span class="special">;</span> + <span class="special">}</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="store_hash_is_true.html#idm32694-bb">public static functions</a></span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> U<span class="special">></span> <span class="keyword">static</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span> <a class="link" href="store_hash_is_true.html#idm32695-bb"><span class="identifier">test</span></a><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> U<span class="special">></span> <span class="keyword">static</span> <span class="identifier">two_or_three</span><span class="special"><</span> <span class="identifier">U</span><span class="special">::</span><span class="identifier">store_hash</span> <span class="special">></span> <a class="link" href="../interprocess/named_upgradable_mutex.html#idm32702-bb"><span class="identifier">test</span></a><span class="special">(</span><span class="keyword">int</span><span class="special">)</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">value</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="id-1.3.18.42.14.38.4"></a><h2>Description</h2> +<div class="refsect2"> +<a name="id-1.3.18.42.14.38.4.2"></a><h3> +<a name="idm32694-bb"></a><code class="computeroutput">store_hash_is_true</code> public static functions</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> U<span class="special">></span> <span class="keyword">static</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span> <a name="idm32695-bb"></a><span class="identifier">test</span><span class="special">(</span><span class="special">...</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> U<span class="special">></span> <span class="keyword">static</span> <span class="identifier">two_or_three</span><span class="special"><</span> <span class="identifier">U</span><span class="special">::</span><span class="identifier">store_hash</span> <span class="special">></span> <a name="idm32702-bb"></a><span class="identifier">test</span><span class="special">(</span><span class="keyword">int</span><span class="special">)</span><span class="special">;</span></pre></li> +</ol></div> +</div> +</div> +</div> +<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> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="optimize_multikey_is_true/two_or_three.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="store_hash_is_true/two_or_three.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/doc/html/boost/intrusive/store_hash_is_true/two_or_three.html b/doc/html/boost/intrusive/store_hash_is_true/two_or_three.html new file mode 100644 index 0000000000..9637209706 --- /dev/null +++ b/doc/html/boost/intrusive/store_hash_is_true/two_or_three.html @@ -0,0 +1,54 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>Struct template two_or_three</title> +<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css"> +<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="../store_hash_is_true.html#id-1.3.18.42.14.38.4" title="Description"> +<link rel="prev" href="../store_hash_is_true.html" title="Struct template store_hash_is_true"> +<link rel="next" href="../unordered_bucket.html" title="Struct template unordered_bucket"> +<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> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td> +<td align="center"><a href="../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../store_hash_is_true.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../store_hash_is_true.html#id-1.3.18.42.14.38.4"><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="../unordered_bucket.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.intrusive.store_hash_is_true.two_or_three"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Struct template two_or_three</span></h2> +<p>boost::intrusive::store_hash_is_true::two_or_three</p> +</div> +<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">bool</span> Add<span class="special">></span> +<span class="keyword">struct</span> <a class="link" href="two_or_three.html" title="Struct template two_or_three">two_or_three</a> <span class="special">{</span> + + <span class="comment">// public data members</span> + <span class="emphasis"><em><span class="identifier">unspecified</span></em></span> <span class="identifier">_</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +</div> +<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> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../store_hash_is_true.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../store_hash_is_true.html#id-1.3.18.42.14.38.4"><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="../unordered_bucket.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/doc/html/boost/intrusive/tag.html b/doc/html/boost/intrusive/tag.html index 757027d35f..0bef2cacbd 100644 --- a/doc/html/boost/intrusive/tag.html +++ b/doc/html/boost/intrusive/tag.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.options_hpp" title="Header <boost/intrusive/options.hpp>"> <link rel="prev" href="store_hash.html" title="Struct template store_hash"> <link rel="next" href="value_traits.html" title="Struct template value_traits"> +<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> @@ -29,25 +30,22 @@ <h2><span class="refentrytitle">Struct template tag</span></h2> <p>boost::intrusive::tag</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.options_hpp" title="Header <boost/intrusive/options.hpp>">boost/intrusive/options.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.options_hpp" title="Header <boost/intrusive/options.hpp>">boost/intrusive/options.hpp</a>> </span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Tag<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="tag.html" title="Struct template tag">tag</a> <span class="special">{</span> <span class="special">}</span><span class="special">;</span></pre></div> <div class="refsect1"> -<a name="id-1.3.20.42.21.27.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.21.29.4"></a><h2>Description</h2> <p>This option setter specifies the type of the tag of a base hook. A type cannot have two base hooks of the same type, so a tag can be used to differentiate two base hooks with otherwise same type </p> </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="store_hash.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.options_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="value_traits.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/treap.html b/doc/html/boost/intrusive/treap.html index 70b07cc89d..7cd7244f7c 100644 --- a/doc/html/boost/intrusive/treap.html +++ b/doc/html/boost/intrusive/treap.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.treap_hpp" title="Header <boost/intrusive/treap.hpp>"> <link rel="prev" href="make_treap.html" title="Struct template make_treap"> <link rel="next" href="treap_algorithms.html" title="Class template treap_algorithms"> +<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> @@ -29,8 +30,8 @@ <h2><span class="refentrytitle">Class template treap</span></h2> <p>boost::intrusive::treap</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.treap_hpp" title="Header <boost/intrusive/treap.hpp>">boost/intrusive/treap.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.treap_hpp" title="Header <boost/intrusive/treap.hpp>">boost/intrusive/treap.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="treap.html" title="Class template treap">treap</a> <span class="special">{</span> @@ -64,158 +65,158 @@ <span class="keyword">typedef</span> <span class="identifier">node_algorithms</span><span class="special">::</span><span class="identifier">insert_commit_data</span> <a name="boost.intrusive.treap.insert_commit_data"></a><span class="identifier">insert_commit_data</span><span class="special">;</span> <span class="comment">// <a class="link" href="treap.html#boost.intrusive.treapconstruct-copy-destruct">construct/copy/destruct</a></span> - <a class="link" href="treap.html#idm45971705889504-bb"><span class="identifier">treap</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">explicit</span> <a class="link" href="treap.html#idm45971705886336-bb"><span class="identifier">treap</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span><span class="special">,</span> + <a class="link" href="treap.html#idm50825-bb"><span class="identifier">treap</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">explicit</span> <a class="link" href="treap.html#idm50833-bb"><span class="identifier">treap</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">priority_compare</span> <span class="special">&</span> <span class="special">=</span> <span class="identifier">priority_compare</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="treap.html#idm45971705880240-bb"><span class="identifier">treap</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> <span class="identifier">key_compare</span> <span class="special">&</span> <span class="special">=</span> <span class="identifier">key_compare</span><span class="special">(</span><span class="special">)</span><span class="special">,</span> + <a class="link" href="treap.html#idm50849-bb"><span class="identifier">treap</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> <span class="identifier">key_compare</span> <span class="special">&</span> <span class="special">=</span> <span class="identifier">key_compare</span><span class="special">(</span><span class="special">)</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">priority_compare</span> <span class="special">&</span> <span class="special">=</span> <span class="identifier">priority_compare</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="treap.html#idm45971705870080-bb"><span class="identifier">treap</span></a><span class="special">(</span><a class="link" href="treap.html" title="Class template treap">treap</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> - <a class="link" href="treap.html" title="Class template treap">treap</a> <span class="special">&</span> <a class="link" href="treap.html#idm45971705865776-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><a class="link" href="treap.html" title="Class template treap">treap</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> - <a class="link" href="treap.html#idm45971705862960-bb"><span class="special">~</span><span class="identifier">treap</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="treap.html#idm50876-bb"><span class="identifier">treap</span></a><span class="special">(</span><a class="link" href="treap.html" title="Class template treap">treap</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="treap.html" title="Class template treap">treap</a> <span class="special">&</span> <a class="link" href="treap.html#idm50887-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><a class="link" href="treap.html" title="Class template treap">treap</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="treap.html#idm50896-bb"><span class="special">~</span><span class="identifier">treap</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> - <span class="comment">// <a class="link" href="treap.html#idm45971706446944-bb">public member functions</a></span> + <span class="comment">// <a class="link" href="treap.html#idm49657-bb">public member functions</a></span> <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> PrioPrioComp<span class="special">></span> - <span class="emphasis"><em><span class="identifier">unspecified</span></em></span> <a class="link" href="treap.html#idm45971706446384-bb"><span class="identifier">prio_node_prio_comp</span></a><span class="special">(</span><span class="identifier">PrioPrioComp</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="treap.html#idm45971706443600-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="treap.html#idm45971706439760-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="treap.html#idm45971706435920-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="treap.html#idm45971706432080-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="treap.html#idm45971706428240-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="treap.html#idm45971706424400-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">iterator</span> <a class="link" href="treap.html#idm45971706420560-bb"><span class="identifier">top</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="treap.html#idm45971706416704-bb"><span class="identifier">top</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="treap.html#idm45971706412848-bb"><span class="identifier">ctop</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">reverse_iterator</span> <a class="link" href="treap.html#idm45971706408992-bb"><span class="identifier">rbegin</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="identifier">const_reverse_iterator</span> <a class="link" href="treap.html#idm45971706405136-bb"><span class="identifier">rbegin</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_reverse_iterator</span> <a class="link" href="treap.html#idm45971706401280-bb"><span class="identifier">crbegin</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">reverse_iterator</span> <a class="link" href="treap.html#idm45971706397424-bb"><span class="identifier">rend</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="identifier">const_reverse_iterator</span> <a class="link" href="treap.html#idm45971706393568-bb"><span class="identifier">rend</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_reverse_iterator</span> <a class="link" href="treap.html#idm45971706389712-bb"><span class="identifier">crend</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="treap.html#idm45971706385856-bb"><span class="identifier">root</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="treap.html#idm45971706381984-bb"><span class="identifier">root</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="treap.html#idm45971706378112-bb"><span class="identifier">croot</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">reverse_iterator</span> <a class="link" href="treap.html#idm45971706374240-bb"><span class="identifier">rtop</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="identifier">const_reverse_iterator</span> <a class="link" href="treap.html#idm45971706370368-bb"><span class="identifier">rtop</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_reverse_iterator</span> <a class="link" href="treap.html#idm45971706366496-bb"><span class="identifier">crtop</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">key_compare</span> <a class="link" href="treap.html#idm45971706362624-bb"><span class="identifier">key_comp</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">value_compare</span> <a class="link" href="treap.html#idm45971706358768-bb"><span class="identifier">value_comp</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="treap.html#idm45971706354896-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="treap.html#idm45971706351072-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="identifier">priority_compare</span> <a class="link" href="treap.html#idm45971706347136-bb"><span class="identifier">priority_comp</span></a><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="treap.html#idm45971706343264-bb"><span class="identifier">swap</span></a><span class="special">(</span><a class="link" href="treap.html" title="Class template treap">treap</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="emphasis"><em><span class="identifier">unspecified</span></em></span> <a class="link" href="treap.html#idm49658-bb"><span class="identifier">prio_node_prio_comp</span></a><span class="special">(</span><span class="identifier">PrioPrioComp</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="treap.html#idm49665-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="treap.html#idm49674-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="treap.html#idm49683-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="treap.html#idm49692-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="treap.html#idm49701-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="treap.html#idm49710-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">iterator</span> <a class="link" href="treap.html#idm49719-bb"><span class="identifier">top</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="treap.html#idm49728-bb"><span class="identifier">top</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="treap.html#idm49737-bb"><span class="identifier">ctop</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">reverse_iterator</span> <a class="link" href="treap.html#idm49746-bb"><span class="identifier">rbegin</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">const_reverse_iterator</span> <a class="link" href="treap.html#idm49755-bb"><span class="identifier">rbegin</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_reverse_iterator</span> <a class="link" href="treap.html#idm49764-bb"><span class="identifier">crbegin</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">reverse_iterator</span> <a class="link" href="treap.html#idm49773-bb"><span class="identifier">rend</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">const_reverse_iterator</span> <a class="link" href="treap.html#idm49782-bb"><span class="identifier">rend</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_reverse_iterator</span> <a class="link" href="treap.html#idm49791-bb"><span class="identifier">crend</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="treap.html#idm49800-bb"><span class="identifier">root</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="treap.html#idm49809-bb"><span class="identifier">root</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="treap.html#idm49818-bb"><span class="identifier">croot</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">reverse_iterator</span> <a class="link" href="treap.html#idm49827-bb"><span class="identifier">rtop</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">const_reverse_iterator</span> <a class="link" href="treap.html#idm49836-bb"><span class="identifier">rtop</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_reverse_iterator</span> <a class="link" href="treap.html#idm49845-bb"><span class="identifier">crtop</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">key_compare</span> <a class="link" href="treap.html#idm49854-bb"><span class="identifier">key_comp</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">value_compare</span> <a class="link" href="treap.html#idm49863-bb"><span class="identifier">value_comp</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="treap.html#idm49872-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="treap.html#idm49881-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="identifier">priority_compare</span> <a class="link" href="treap.html#idm49890-bb"><span class="identifier">priority_comp</span></a><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="treap.html#idm49899-bb"><span class="identifier">swap</span></a><span class="special">(</span><a class="link" href="treap.html" title="Class template treap">treap</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="treap.html#idm45971706338720-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="treap.html" title="Class template treap">treap</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="treap.html#idm49911-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="treap.html" title="Class template treap">treap</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="treap.html#idm45971706329664-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><a class="link" href="treap.html" title="Class template treap">treap</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="treap.html#idm45971706320768-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="identifier">iterator</span> <a class="link" href="treap.html#idm45971706314608-bb"><span class="identifier">insert_equal</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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="treap.html#idm45971706307584-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="treap.html#idm45971706299728-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="identifier">iterator</span> <a class="link" href="treap.html#idm45971706293552-bb"><span class="identifier">insert_unique</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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="treap.html#idm45971706286560-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="treap.html#idm49933-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><a class="link" href="treap.html" title="Class template treap">treap</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="treap.html#idm49955-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="identifier">iterator</span> <a class="link" href="treap.html#idm49970-bb"><span class="identifier">insert_equal</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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="treap.html#idm49987-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="treap.html#idm50006-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="identifier">iterator</span> <a class="link" href="treap.html#idm50021-bb"><span class="identifier">insert_unique</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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="treap.html#idm50038-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="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="treap.html#idm45971706278752-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="keyword">const</span> <span class="identifier">priority_type</span> <span class="special">&</span><span class="special">,</span> + <a class="link" href="treap.html#idm50057-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="keyword">const</span> <span class="identifier">priority_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">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="treap.html#idm45971706269760-bb"><span class="identifier">insert_unique_check</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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="identifier">priority_type</span> <span class="special">&</span><span class="special">,</span> + <a class="link" href="treap.html#idm50078-bb"><span class="identifier">insert_unique_check</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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="identifier">priority_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="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> KeyType<span class="special">,</span> <span class="keyword">typename</span> KeyTypeKeyCompare<span class="special">,</span> <span class="keyword">typename</span> PrioType<span class="special">,</span> <span class="keyword">typename</span> PrioValuePrioCompare<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="identifier">BOOST_INTRUSIVE_I</span> <span class="keyword">bool</span> <span class="special">></span> - <a class="link" href="treap.html#idm45971706259984-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">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">PrioType</span> <span class="special">&</span><span class="special">,</span> + <a class="link" href="treap.html#idm50101-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">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">PrioType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">PrioValuePrioCompare</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="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> KeyType<span class="special">,</span> <span class="keyword">typename</span> KeyTypeKeyCompare<span class="special">,</span> <span class="keyword">typename</span> PrioType<span class="special">,</span> <span class="keyword">typename</span> PrioValuePrioCompare<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="treap.html#idm45971706245904-bb"><span class="identifier">insert_unique_check</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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">KeyTypeKeyCompare</span><span class="special">,</span> + <a class="link" href="treap.html#idm50133-bb"><span class="identifier">insert_unique_check</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">PrioType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">PrioValuePrioCompare</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="treap.html#idm45971706231056-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="identifier">iterator</span> <a class="link" href="treap.html#idm45971706222032-bb"><span class="identifier">insert_before</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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">void</span> <a class="link" href="treap.html#idm45971706214752-bb"><span class="identifier">push_back</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">void</span> <a class="link" href="treap.html#idm45971706208144-bb"><span class="identifier">push_front</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">iterator</span> <a class="link" href="treap.html#idm45971706201536-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="identifier">iterator</span> <a class="link" href="treap.html#idm45971706196000-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="treap.html#idm45971706189712-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="identifier">iterator</span> <a class="link" href="treap.html#idm50167-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="identifier">iterator</span> <a class="link" href="treap.html#idm50187-bb"><span class="identifier">insert_before</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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">void</span> <a class="link" href="treap.html#idm50204-bb"><span class="identifier">push_back</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">void</span> <a class="link" href="treap.html#idm50219-bb"><span class="identifier">push_front</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">iterator</span> <a class="link" href="treap.html#idm50234-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="identifier">iterator</span> <a class="link" href="treap.html#idm50247-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="treap.html#idm50262-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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">size_type</span> <a class="link" href="treap.html#idm45971706183616-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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">size_type</span> <a class="link" href="treap.html#idm50277-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">KeyTypeKeyCompare</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="identifier">iterator</span> <a class="link" href="treap.html#idm45971706175056-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="identifier">iterator</span> <a class="link" href="treap.html#idm50298-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="identifier">iterator</span> <a class="link" href="treap.html#idm45971706167104-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="identifier">iterator</span> <a class="link" href="treap.html#idm50317-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="treap.html#idm45971706158400-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="treap.html#idm50338-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> KeyTypeKeyCompare<span class="special">,</span> <span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="identifier">size_type</span> <a class="link" href="treap.html#idm45971706149728-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">KeyTypeKeyCompare</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="treap.html#idm45971706139264-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="treap.html#idm45971706134400-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="treap.html#idm50359-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">KeyTypeKeyCompare</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="treap.html#idm50384-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="treap.html#idm50395-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="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> Options2<span class="special">></span> - <span class="keyword">void</span> <a class="link" href="treap.html#idm45971706128096-bb"><span class="identifier">merge_unique</span></a><span class="special">(</span><a class="link" href="sgtree.html" title="Class template sgtree">sgtree</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> - <a class="link" href="treap.html#idm45971706119584-bb"><span class="keyword">while</span></a><span class="special">(</span><span class="identifier">it</span> <span class="special">!</span> <span class="special">=</span> <span class="identifier">itend</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="treap.html#idm50409-bb"><span class="identifier">merge_unique</span></a><span class="special">(</span><a class="link" href="sgtree.html" title="Class template sgtree">sgtree</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="treap.html#idm50429-bb"><span class="keyword">while</span></a><span class="special">(</span><span class="identifier">it</span> <span class="special">!</span> <span class="special">=</span> <span class="identifier">itend</span><span class="special">)</span><span class="special">;</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> Options2<span class="special">></span> - <span class="keyword">void</span> <a class="link" href="treap.html#idm45971706117920-bb"><span class="identifier">merge_equal</span></a><span class="special">(</span><a class="link" href="sgtree.html" title="Class template sgtree">sgtree</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> - <a class="link" href="treap.html#idm45971706109552-bb"><span class="keyword">while</span></a><span class="special">(</span><span class="identifier">it</span> <span class="special">!</span> <span class="special">=</span> <span class="identifier">itend</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> ExtraChecker<span class="special">></span> <span class="keyword">void</span> <a class="link" href="treap.html#idm45971706107888-bb"><span class="identifier">check</span></a><span class="special">(</span><span class="identifier">ExtraChecker</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="keyword">void</span> <a class="link" href="treap.html#idm45971706102368-bb"><span class="identifier">check</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">size_type</span> <a class="link" href="treap.html#idm45971706098416-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="treap.html#idm50434-bb"><span class="identifier">merge_equal</span></a><span class="special">(</span><a class="link" href="sgtree.html" title="Class template sgtree">sgtree</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="treap.html#idm50443-bb"><span class="keyword">while</span></a><span class="special">(</span><span class="identifier">it</span> <span class="special">!</span> <span class="special">=</span> <span class="identifier">itend</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> ExtraChecker<span class="special">></span> <span class="keyword">void</span> <a class="link" href="treap.html#idm50448-bb"><span class="identifier">check</span></a><span class="special">(</span><span class="identifier">ExtraChecker</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="treap.html#idm50461-bb"><span class="identifier">check</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">size_type</span> <a class="link" href="treap.html#idm50470-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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">size_type</span> <a class="link" href="treap.html#idm45971706093344-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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="treap.html#idm45971706084288-bb"><span class="identifier">lower_bound</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="treap.html#idm50474-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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="treap.html#idm50495-bb"><span class="identifier">lower_bound</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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a class="link" href="treap.html#idm45971706079536-bb"><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> - <span class="identifier">const_iterator</span> <a class="link" href="treap.html#idm45971706072688-bb"><span class="identifier">lower_bound</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="treap.html#idm50499-bb"><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">const_iterator</span> <a class="link" href="treap.html#idm50508-bb"><span class="identifier">lower_bound</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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">const_iterator</span> <a class="link" href="treap.html#idm45971706067664-bb"><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="treap.html#idm45971706060544-bb"><span class="identifier">upper_bound</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="treap.html#idm50512-bb"><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="treap.html#idm50521-bb"><span class="identifier">upper_bound</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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a class="link" href="treap.html#idm45971706055792-bb"><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> - <span class="identifier">const_iterator</span> <a class="link" href="treap.html#idm45971706047088-bb"><span class="identifier">upper_bound</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="treap.html#idm50525-bb"><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">const_iterator</span> <a class="link" href="treap.html#idm50546-bb"><span class="identifier">upper_bound</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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">const_iterator</span> <a class="link" href="treap.html#idm45971706042064-bb"><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="treap.html#idm45971706033088-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">const_iterator</span> <a class="link" href="treap.html#idm50550-bb"><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="treap.html#idm50571-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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a class="link" href="treap.html#idm45971706028352-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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> - <span class="identifier">const_iterator</span> <a class="link" href="treap.html#idm45971706019616-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="treap.html#idm50575-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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">const_iterator</span> <a class="link" href="treap.html#idm50596-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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">const_iterator</span> <a class="link" href="treap.html#idm45971706014608-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">KeyTypeKeyCompare</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="treap.html#idm45971706005600-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="treap.html#idm50600-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">KeyTypeKeyCompare</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="treap.html#idm50621-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> KeyTypeKeyCompare<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="treap.html#idm45971706000768-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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="treap.html#idm50625-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">KeyTypeKeyCompare</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="treap.html#idm45971705991936-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="treap.html#idm50646-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> KeyTypeKeyCompare<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="treap.html#idm45971705986816-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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <a class="link" href="treap.html#idm50650-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">KeyTypeKeyCompare</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="treap.html#idm45971705977696-bb"><span class="identifier">bounded_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="identifier">key_type</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="treap.html#idm50671-bb"><span class="identifier">bounded_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="identifier">key_type</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</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> KeyTypeKeyCompare<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="treap.html#idm45971705965264-bb"><span class="identifier">bounded_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="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> + <a class="link" href="treap.html#idm50681-bb"><span class="identifier">bounded_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="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</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="treap.html#idm45971705948464-bb"><span class="identifier">bounded_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="identifier">key_type</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <a class="link" href="treap.html#idm50723-bb"><span class="identifier">bounded_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="identifier">key_type</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</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> KeyTypeKeyCompare<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="treap.html#idm45971705935744-bb"><span class="identifier">bounded_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="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> + <a class="link" href="treap.html#idm50733-bb"><span class="identifier">bounded_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="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="treap.html#idm45971705918656-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="treap.html#idm45971705913168-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">pointer</span> <a class="link" href="treap.html#idm45971705907680-bb"><span class="identifier">unlink_leftmost_without_rebalance</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="treap.html#idm45971705902768-bb"><span class="identifier">replace_node</span></a><span class="special">(</span><span class="identifier">iterator</span><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">void</span> <a class="link" href="treap.html#idm45971705895504-bb"><span class="identifier">remove_node</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">iterator</span> <a class="link" href="treap.html#idm50775-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="treap.html#idm50779-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">pointer</span> <a class="link" href="treap.html#idm50783-bb"><span class="identifier">unlink_leftmost_without_rebalance</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="treap.html#idm50794-bb"><span class="identifier">replace_node</span></a><span class="special">(</span><span class="identifier">iterator</span><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">void</span> <a class="link" href="treap.html#idm50811-bb"><span class="identifier">remove_node</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="comment">// <a class="link" href="treap.html#idm45971705859056-bb">public static functions</a></span> - <span class="keyword">static</span> <a class="link" href="treap.html" title="Class template treap">treap</a> <span class="special">&</span> <a class="link" href="treap.html#idm45971705858496-bb"><span class="identifier">container_from_end_iterator</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="treap.html" title="Class template treap">treap</a> <span class="special">&</span> <a class="link" href="treap.html#idm45971705852480-bb"><span class="identifier">container_from_end_iterator</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">static</span> <a class="link" href="treap.html" title="Class template treap">treap</a> <span class="special">&</span> <a class="link" href="treap.html#idm45971705846304-bb"><span class="identifier">container_from_iterator</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="treap.html" title="Class template treap">treap</a> <span class="special">&</span> <a class="link" href="treap.html#idm45971705840336-bb"><span class="identifier">container_from_iterator</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">static</span> <span class="identifier">iterator</span> <a class="link" href="treap.html#idm45971705834208-bb"><span class="identifier">s_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_iterator</span> <a class="link" href="treap.html#idm45971705827120-bb"><span class="identifier">s_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="keyword">void</span> <a class="link" href="treap.html#idm45971705820032-bb"><span class="identifier">init_node</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="comment">// <a class="link" href="treap.html#idm50905-bb">public static functions</a></span> + <span class="keyword">static</span> <a class="link" href="treap.html" title="Class template treap">treap</a> <span class="special">&</span> <a class="link" href="treap.html#idm50906-bb"><span class="identifier">container_from_end_iterator</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="treap.html" title="Class template treap">treap</a> <span class="special">&</span> <a class="link" href="treap.html#idm50911-bb"><span class="identifier">container_from_end_iterator</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">static</span> <a class="link" href="treap.html" title="Class template treap">treap</a> <span class="special">&</span> <a class="link" href="treap.html#idm50916-bb"><span class="identifier">container_from_iterator</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="treap.html" title="Class template treap">treap</a> <span class="special">&</span> <a class="link" href="treap.html#idm50921-bb"><span class="identifier">container_from_iterator</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">static</span> <span class="identifier">iterator</span> <a class="link" href="treap.html#idm50926-bb"><span class="identifier">s_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_iterator</span> <a class="link" href="treap.html#idm50930-bb"><span class="identifier">s_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="keyword">void</span> <a class="link" href="treap.html#idm50934-bb"><span class="identifier">init_node</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="comment">// public data members</span> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">bool</span> <span class="identifier">constant_time_size</span><span class="special">;</span> @@ -223,24 +224,24 @@ <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">bool</span> <span class="identifier">safemode_or_autounlink</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.40.4.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.40.4.4"></a><h2>Description</h2> <p>The class template treap is an intrusive treap container that is used to construct intrusive set and multiset containers. The no-throw guarantee holds only, if the key_compare object and priority_compare object don't throw.</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> <p>The container supports the following options: <code class="computeroutput">base_hook<>/member_hook<>/value_traits<></code>, <code class="computeroutput">constant_time_size<></code>, <code class="computeroutput">size_type<></code>, <code class="computeroutput">compare<></code>, <code class="computeroutput">priority<></code> and <code class="computeroutput">priority_of_value<></code> </p> <div class="refsect2"> -<a name="id-1.3.20.42.40.4.4.5"></a><h3> +<a name="id-1.3.18.42.40.4.4.5"></a><h3> <a name="boost.intrusive.treapconstruct-copy-destruct"></a><code class="computeroutput">treap</code> public construct/copy/destruct</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> <li class="listitem"> -<pre class="literallayout"><a name="idm45971705889504-bb"></a><span class="identifier">treap</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm50825-bb"></a><span class="identifier">treap</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Constructs an empty container.</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 constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor of the value_compare/priority_compare objects throw. Basic guarantee. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">explicit</span> <a name="idm45971705886336-bb"></a><span class="identifier">treap</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> cmp<span class="special">,</span> +<pre class="literallayout"><span class="keyword">explicit</span> <a name="idm50833-bb"></a><span class="identifier">treap</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> cmp<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">priority_compare</span> <span class="special">&</span> pcmp <span class="special">=</span> <span class="identifier">priority_compare</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> <p><span class="bold"><strong>Effects</strong></span>: Constructs an empty container.</p> @@ -249,7 +250,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="idm45971705880240-bb"></a><span class="identifier">treap</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="idm50849-bb"></a><span class="identifier">treap</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> <span class="identifier">key_compare</span> <span class="special">&</span> cmp <span class="special">=</span> <span class="identifier">key_compare</span><span class="special">(</span><span class="special">)</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">priority_compare</span> <span class="special">&</span> pcmp <span class="special">=</span> <span class="identifier">priority_compare</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> @@ -259,194 +260,194 @@ <p><span class="bold"><strong>Throws</strong></span>: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor/operator() of the key_compare/priority_compare objects throw. Basic guarantee. </p> </li> <li class="listitem"> -<pre class="literallayout"><a name="idm45971705870080-bb"></a><span class="identifier">treap</span><span class="special">(</span><a class="link" href="treap.html" title="Class template treap">treap</a> <span class="special">&&</span> x<span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm50876-bb"></a><span class="identifier">treap</span><span class="special">(</span><a class="link" href="treap.html" title="Class template treap">treap</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 comparison object and value traits are move constructed and nodes belonging to x (except the node representing the "end") 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 the comparison objet throws. </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 the comparison objet throws. </p> </li> <li class="listitem"> -<pre class="literallayout"><a class="link" href="treap.html" title="Class template treap">treap</a> <span class="special">&</span> <a name="idm45971705865776-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><a class="link" href="treap.html" title="Class template treap">treap</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> +<pre class="literallayout"><a class="link" href="treap.html" title="Class template treap">treap</a> <span class="special">&</span> <a name="idm50887-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><a class="link" href="treap.html" title="Class template treap">treap</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="idm45971705862960-bb"></a><span class="special">~</span><span class="identifier">treap</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm50896-bb"></a><span class="special">~</span><span class="identifier">treap</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 set are not deleted (i.e. no destructors are called), but the nodes according to the <code class="computeroutput"><a class="link" href="value_traits.html" title="Struct template value_traits">value_traits</a></code> template parameter are reinitialized and thus can be reused.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to elements contained in *this.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> </ol></div> </div> <div class="refsect2"> -<a name="id-1.3.20.42.40.4.4.6"></a><h3> -<a name="idm45971706446944-bb"></a><code class="computeroutput">treap</code> public member functions</h3> +<a name="id-1.3.18.42.40.4.4.6"></a><h3> +<a name="idm49657-bb"></a><code class="computeroutput">treap</code> public member functions</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> <li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> PrioPrioComp<span class="special">></span> - <span class="emphasis"><em><span class="identifier">unspecified</span></em></span> <a name="idm45971706446384-bb"></a><span class="identifier">prio_node_prio_comp</span><span class="special">(</span><span class="identifier">PrioPrioComp</span> priopriocomp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> + <span class="emphasis"><em><span class="identifier">unspecified</span></em></span> <a name="idm49658-bb"></a><span class="identifier">prio_node_prio_comp</span><span class="special">(</span><span class="identifier">PrioPrioComp</span> priopriocomp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971706443600-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="idm49665-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971706439760-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="idm49674-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971706435920-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="idm49683-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971706432080-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="idm49692-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971706428240-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="idm49701-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971706424400-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="idm49710-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971706420560-bb"></a><span class="identifier">top</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="idm49719-bb"></a><span class="identifier">top</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 highest priority object of the treap.</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="idm45971706416704-bb"></a><span class="identifier">top</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="idm49728-bb"></a><span class="identifier">top</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 highest priority object of the treap..</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="idm45971706412848-bb"></a><span class="identifier">ctop</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="idm49737-bb"></a><span class="identifier">ctop</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 highest priority object of the treap..</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">reverse_iterator</span> <a name="idm45971706408992-bb"></a><span class="identifier">rbegin</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">reverse_iterator</span> <a name="idm49746-bb"></a><span class="identifier">rbegin</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 a reverse_iterator pointing to the beginning of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45971706405136-bb"></a><span class="identifier">rbegin</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_reverse_iterator</span> <a name="idm49755-bb"></a><span class="identifier">rbegin</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_reverse_iterator pointing to the beginning of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45971706401280-bb"></a><span class="identifier">crbegin</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_reverse_iterator</span> <a name="idm49764-bb"></a><span class="identifier">crbegin</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_reverse_iterator pointing to the beginning of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">reverse_iterator</span> <a name="idm45971706397424-bb"></a><span class="identifier">rend</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">reverse_iterator</span> <a name="idm49773-bb"></a><span class="identifier">rend</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 a reverse_iterator pointing to the end of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45971706393568-bb"></a><span class="identifier">rend</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_reverse_iterator</span> <a name="idm49782-bb"></a><span class="identifier">rend</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_reverse_iterator pointing to the end of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45971706389712-bb"></a><span class="identifier">crend</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_reverse_iterator</span> <a name="idm49791-bb"></a><span class="identifier">crend</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_reverse_iterator pointing to the end of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971706385856-bb"></a><span class="identifier">root</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="idm49800-bb"></a><span class="identifier">root</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 a iterator pointing to the root node of the container or end() if not present.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971706381984-bb"></a><span class="identifier">root</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="idm49809-bb"></a><span class="identifier">root</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 root node of the container or cend() if not present.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971706378112-bb"></a><span class="identifier">croot</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="idm49818-bb"></a><span class="identifier">croot</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 root node of the container or cend() if not present.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">reverse_iterator</span> <a name="idm45971706374240-bb"></a><span class="identifier">rtop</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">reverse_iterator</span> <a name="idm49827-bb"></a><span class="identifier">rtop</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 a reverse_iterator pointing to the highest priority object of the reversed treap.</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_reverse_iterator</span> <a name="idm45971706370368-bb"></a><span class="identifier">rtop</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_reverse_iterator</span> <a name="idm49836-bb"></a><span class="identifier">rtop</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_reverse_iterator pointing to the highest priority objec of the reversed treap.</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_reverse_iterator</span> <a name="idm45971706366496-bb"></a><span class="identifier">crtop</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_reverse_iterator</span> <a name="idm49845-bb"></a><span class="identifier">crtop</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_reverse_iterator pointing to the highest priority object of the reversed treap.</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">key_compare</span> <a name="idm45971706362624-bb"></a><span class="identifier">key_comp</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_compare</span> <a name="idm49854-bb"></a><span class="identifier">key_comp</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_compare object used by the container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: If key_compare copy-constructor throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If key_compare copy-constructor throws. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">value_compare</span> <a name="idm45971706358768-bb"></a><span class="identifier">value_comp</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">value_compare</span> <a name="idm49863-bb"></a><span class="identifier">value_comp</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 value_compare object used by the container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: If value_compare copy-constructor throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If value_compare copy-constructor throws. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">bool</span> <a name="idm45971706354896-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="idm49872-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>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971706351072-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="idm49881-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to elements contained in *this if constant-time size option is disabled. Constant time otherwise.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">priority_compare</span> <a name="idm45971706347136-bb"></a><span class="identifier">priority_comp</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">priority_compare</span> <a name="idm49890-bb"></a><span class="identifier">priority_comp</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 priority_compare object used by the container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> <p><span class="bold"><strong>Throws</strong></span>: If priority_compare copy-constructor throws. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971706343264-bb"></a><span class="identifier">swap</span><span class="special">(</span><a class="link" href="treap.html" title="Class template treap">treap</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="idm49899-bb"></a><span class="identifier">swap</span><span class="special">(</span><a class="link" href="treap.html" title="Class template treap">treap</a> <span class="special">&</span> other<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Swaps the contents of two treaps.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> <p><span class="bold"><strong>Throws</strong></span>: If the comparison functor's swap call throws. </p> </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="idm45971706338720-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="treap.html" title="Class template treap">treap</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="idm49911-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="treap.html" title="Class template treap">treap</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 equivalent to the original nodes.</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. Copies the predicate from the source container.</p> <p>If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).</p> @@ -455,7 +456,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="idm45971706329664-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><a class="link" href="treap.html" title="Class template treap">treap</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="idm49933-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><a class="link" href="treap.html" title="Class template treap">treap</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 equivalent to the original nodes.</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. Copies the predicate from the source container.</p> <p>If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).</p> @@ -463,7 +464,7 @@ <p><span class="bold"><strong>Throws</strong></span>: If cloner throws or predicate copy assignment throws. Basic guarantee. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971706320768-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="idm49955-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 value into the container before the upper bound.</p> <p><span class="bold"><strong>Complexity</strong></span>: Average complexity for insert element is at most logarithmic.</p> @@ -471,7 +472,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">iterator</span> <a name="idm45971706314608-bb"></a><span class="identifier">insert_equal</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<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="idm49970-bb"></a><span class="identifier">insert_equal</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<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, and "hint" must be a valid iterator.</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts x into the container, using "hint" as a hint to where it will be inserted. If "hint" is the upper_bound the insertion takes constant time (two comparisons in the worst case)</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic in general, but it is amortized constant time if t is inserted immediately before hint.</p> @@ -479,7 +480,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="idm45971706307584-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="idm49987-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>: Inserts a each element of a range into the container before the upper bound of the key of each element.</p> <p><span class="bold"><strong>Complexity</strong></span>: Insert range is in general O(N * log(N)), where N is the size of the range. However, it is linear in N if the range is already sorted by key_comp().</p> @@ -487,7 +488,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="idm45971706299728-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="idm50006-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>: Inserts value into the container if the value is not already present.</p> <p><span class="bold"><strong>Complexity</strong></span>: Average complexity for insert element is at most logarithmic.</p> @@ -495,7 +496,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">iterator</span> <a name="idm45971706293552-bb"></a><span class="identifier">insert_unique</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<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="idm50021-bb"></a><span class="identifier">insert_unique</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<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, and "hint" must be a valid iterator</p> <p><span class="bold"><strong>Effects</strong></span>: Tries to insert x into the container, using "hint" as a hint to where it will be inserted.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic in general, but it is amortized constant time (two comparisons in the worst case) if t is inserted immediately before hint.</p> @@ -503,7 +504,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="idm45971706286560-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="idm50038-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>: Tries to insert each element of a range into the container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Insert range is in general O(N * log(N)), where N is the size of the range. However, it is linear in N if the range is already sorted by key_comp().</p> @@ -512,7 +513,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="idm45971706278752-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="keyword">const</span> <span class="identifier">priority_type</span> <span class="special">&</span> prio<span class="special">,</span> +<a name="idm50057-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="keyword">const</span> <span class="identifier">priority_type</span> <span class="special">&</span> prio<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 container, 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> @@ -524,7 +525,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="idm45971706269760-bb"></a><span class="identifier">insert_unique_check</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> key<span class="special">,</span> +<a name="idm50078-bb"></a><span class="identifier">insert_unique_check</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<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="identifier">priority_type</span> <span class="special">&</span> prio<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 container, using a user provided key instead of the value itself, using "hint" as a hint to where it will be inserted.</p> @@ -539,7 +540,7 @@ <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> KeyTypeKeyCompare<span class="special">,</span> <span class="keyword">typename</span> PrioType<span class="special">,</span> <span class="keyword">typename</span> PrioValuePrioCompare<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="identifier">BOOST_INTRUSIVE_I</span> <span class="keyword">bool</span> <span class="special">></span> - <a name="idm45971706259984-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">KeyTypeKeyCompare</span> comp<span class="special">,</span> + <a name="idm50101-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">KeyTypeKeyCompare</span> comp<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">PrioType</span> <span class="special">&</span> prio<span class="special">,</span> <span class="identifier">PrioValuePrioCompare</span> prio_value_pcomp<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> @@ -556,7 +557,7 @@ <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> KeyTypeKeyCompare<span class="special">,</span> <span class="keyword">typename</span> PrioType<span class="special">,</span> <span class="keyword">typename</span> PrioValuePrioCompare<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="idm45971706245904-bb"></a><span class="identifier">insert_unique_check</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> key<span class="special">,</span> + <a name="idm50133-bb"></a><span class="identifier">insert_unique_check</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<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">KeyTypeKeyCompare</span> comp<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">PrioType</span> <span class="special">&</span> prio<span class="special">,</span> <span class="identifier">PrioValuePrioCompare</span> prio_value_pcomp<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> @@ -570,7 +571,7 @@ <p>"commit_data" remains valid for a subsequent "insert_commit" only if no more objects are inserted or erased from the container. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971706231056-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="idm50167-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 container 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="avl_set.html" title="Class template avl_set">avl_set</a></code> using the information obtained from the "commit_data" that a previous "insert_check" filled.</p> @@ -580,7 +581,7 @@ <p><span class="bold"><strong>Notes</strong></span>: This function has only sense if a "insert_check" has been previously executed to fill "commit_data". No value should be inserted or erased between the "insert_check" and "insert_commit" calls. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971706222032-bb"></a><span class="identifier">insert_before</span><span class="special">(</span><span class="identifier">const_iterator</span> pos<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="idm50187-bb"></a><span class="identifier">insert_before</span><span class="special">(</span><span class="identifier">const_iterator</span> pos<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, "pos" must be a valid iterator (or end) and must be the succesor of value once inserted according to the predicate</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts x into the container before "pos".</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> @@ -588,7 +589,7 @@ <p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if "pos" is not the successor of "value" container ordering invariant will be broken. This is a low-level function to be used only for performance reasons by advanced users. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971706214752-bb"></a><span class="identifier">push_back</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">void</span> <a name="idm50204-bb"></a><span class="identifier">push_back</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 it must be no less than the greatest inserted key</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts x into the container in the last position.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> @@ -596,7 +597,7 @@ <p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if value is less than the greatest inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971706208144-bb"></a><span class="identifier">push_front</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">void</span> <a name="idm50219-bb"></a><span class="identifier">push_front</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 it must be no greater than the minimum inserted key</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts x into the container in the first position.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> @@ -604,21 +605,21 @@ <p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if value is greater than the minimum inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971706201536-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="identifier">iterator</span> <a name="idm50234-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 complexity for erase element is constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: if the internal priority_compare function throws. Strong guarantee.</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">iterator</span> <a name="idm45971706196000-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="identifier">iterator</span> <a name="idm50247-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 complexity for erase range is at most O(log(size() + N)), where N is the number of elements in the range.</p> <p><span class="bold"><strong>Throws</strong></span>: if the internal priority_compare function throws. Strong guarantee.</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="idm45971706189712-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="idm50262-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>: O(log(size() + N).</p> @@ -627,7 +628,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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971706183616-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <span class="identifier">size_type</span> <a name="idm50277-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Erases all the elements with the given key. according to the comparison functor "comp".</p> <p><span class="bold"><strong>Returns</strong></span>: The number of erased elements.</p> <p><span class="bold"><strong>Complexity</strong></span>: O(log(size() + N).</p> @@ -636,7 +637,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">iterator</span> <a name="idm45971706175056-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="identifier">iterator</span> <a name="idm50298-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 complexity for erase element is constant time.</p> @@ -645,7 +646,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">iterator</span> <a name="idm45971706167104-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">iterator</span> <a name="idm50317-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> @@ -655,7 +656,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="idm45971706158400-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="idm50338-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> @@ -665,7 +666,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> KeyTypeKeyCompare<span class="special">,</span> <span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971706149728-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">KeyTypeKeyCompare</span> comp<span class="special">,</span> + <span class="identifier">size_type</span> <a name="idm50359-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">KeyTypeKeyCompare</span> comp<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 "comp". Disposer::operator()(pointer) is called for the removed elements.</p> @@ -675,197 +676,124 @@ <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="idm45971706139264-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="idm50384-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="idm45971706134400-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="idm50395-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>Effects</strong></span>: Erases all of the elements calling disposer(p) for each node to be erased. <span class="bold"><strong>Complexity</strong></span>: Average complexity for is at most O(log(size() + N)), where N is the number of elements in the container.</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. Calls N times to disposer functor. </p> </li> <li class="listitem"> <pre class="literallayout"><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> Options2<span class="special">></span> - <span class="keyword">void</span> <a name="idm45971706128096-bb"></a><span class="identifier">merge_unique</span><span class="special">(</span><a class="link" href="sgtree.html" title="Class template sgtree">sgtree</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span></pre> + <span class="keyword">void</span> <a name="idm50409-bb"></a><span class="identifier">merge_unique</span><span class="special">(</span><a class="link" href="sgtree.html" title="Class template sgtree">sgtree</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "source" container's Options can only can differ in the comparison function from *this.</p> <p><span class="bold"><strong>Effects</strong></span>: Attempts to extract each element in source and insert it into a using the comparison object of *this. If there is an element in a with key equivalent to the key of an element from source, then that element is not extracted from source.</p> <p><span class="bold"><strong>Postcondition</strong></span>: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing unless the comparison object throws.</p> -<p><span class="bold"><strong>Complexity</strong></span>: N log(a.size() + N) (N has the value source.size()) </p> +<p><span class="bold"><strong>Complexity</strong></span>: N log(a.size() + N) (N has the value source.size()) </p> </li> -<li class="listitem"><pre class="literallayout"> <a name="idm45971706119584-bb"></a><span class="keyword">while</span><span class="special">(</span><span class="identifier">it</span> <span class="special">!</span> <span class="special">=</span> <span class="identifier">itend</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"> <a name="idm50429-bb"></a><span class="keyword">while</span><span class="special">(</span><span class="identifier">it</span> <span class="special">!</span> <span class="special">=</span> <span class="identifier">itend</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><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> Options2<span class="special">></span> + <span class="keyword">void</span> <a name="idm50434-bb"></a><span class="identifier">merge_equal</span><span class="special">(</span><a class="link" href="sgtree.html" title="Class template sgtree">sgtree</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"> <a name="idm50443-bb"></a><span class="keyword">while</span><span class="special">(</span><span class="identifier">it</span> <span class="special">!</span> <span class="special">=</span> <span class="identifier">itend</span><span class="special">)</span><span class="special">;</span></pre></li> <li class="listitem"> -<pre class="literallayout"><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> Options2<span class="special">></span> - <span class="keyword">void</span> <a name="idm45971706117920-bb"></a><span class="identifier">merge_equal</span><span class="special">(</span><a class="link" href="sgtree.html" title="Class template sgtree">sgtree</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: "source" container's Options can only can differ in the comparison function from *this.</p> -<p><span class="bold"><strong>Effects</strong></span>: Extracts each element in source and insert it into a using the comparison object of *this.</p> -<p><span class="bold"><strong>Postcondition</strong></span>: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing unless the comparison object throws.</p> -<p><span class="bold"><strong>Complexity</strong></span>: N log(a.size() + N) (N has the value source.size()) </p> -</li> -<li class="listitem"><pre class="literallayout"> <a name="idm45971706109552-bb"></a><span class="keyword">while</span><span class="special">(</span><span class="identifier">it</span> <span class="special">!</span> <span class="special">=</span> <span class="identifier">itend</span><span class="special">)</span><span class="special">;</span></pre></li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> ExtraChecker<span class="special">></span> <span class="keyword">void</span> <a name="idm45971706107888-bb"></a><span class="identifier">check</span><span class="special">(</span><span class="identifier">ExtraChecker</span> extra_checker<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> ExtraChecker<span class="special">></span> <span class="keyword">void</span> <a name="idm50448-bb"></a><span class="identifier">check</span><span class="special">(</span><span class="identifier">ExtraChecker</span> extra_checker<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Asserts the integrity of the container with additional checks provided by the user.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear time.</p> -<p><span class="bold"><strong>Note</strong></span>: The method might not have effect when asserts are turned off (e.g., with NDEBUG). Experimental function, interface might change in future versions. </p> +<p><span class="bold"><strong>Note</strong></span>: The method might not have effect when asserts are turned off (e.g., with NDEBUG). Experimental function, interface might change in future versions. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971706102368-bb"></a><span class="identifier">check</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">void</span> <a name="idm50461-bb"></a><span class="identifier">check</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>: Asserts the integrity of the container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear time.</p> -<p><span class="bold"><strong>Note</strong></span>: The method has no effect when asserts are turned off (e.g., with NDEBUG). Experimental function, interface might change in future versions. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">size_type</span> <a name="idm45971706098416-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>: Logarithmic to the number of elements contained plus lineal to number of objects with the given value.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Note</strong></span>: The method has no effect when asserts are turned off (e.g., with NDEBUG). Experimental function, interface might change in future versions. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">size_type</span> <a name="idm50470-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></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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971706093344-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> + <span class="identifier">size_type</span> <a name="idm50474-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns the number of contained elements with the given key</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic to the number of elements contained plus lineal to number of objects with the given key.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> </li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971706084288-bb"></a><span class="identifier">lower_bound</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 an iterator to the first element whose key is not less than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> 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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a name="idm45971706079536-bb"></a><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Effects</strong></span>: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971706072688-bb"></a><span class="identifier">lower_bound</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 an iterator to the first element whose key is not less than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> 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> KeyTypeKeyCompare<span class="special">></span> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm50495-bb"></a><span class="identifier">lower_bound</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></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> KeyTypeKeyCompare<span class="special">></span> + <span class="identifier">iterator</span> <a name="idm50499-bb"></a><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm50508-bb"></a><span class="identifier">lower_bound</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></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> KeyTypeKeyCompare<span class="special">></span> <span class="identifier">const_iterator</span> - <a name="idm45971706067664-bb"></a><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Effects</strong></span>: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971706060544-bb"></a><span class="identifier">upper_bound</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 an iterator to the first element whose key is greater than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> -</li> + <a name="idm50512-bb"></a><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm50521-bb"></a><span class="identifier">upper_bound</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></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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a name="idm45971706055792-bb"></a><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <span class="identifier">iterator</span> <a name="idm50525-bb"></a><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns an iterator to the first element whose key is greater than k according to comp or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971706047088-bb"></a><span class="identifier">upper_bound</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 an iterator to the first element whose key is greater than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm50546-bb"></a><span class="identifier">upper_bound</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></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> KeyTypeKeyCompare<span class="special">></span> <span class="identifier">const_iterator</span> - <a name="idm45971706042064-bb"></a><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> + <a name="idm50550-bb"></a><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns an iterator to the first element whose key is greater than k according to comp or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971706033088-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 whose key is k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm50571-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></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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a name="idm45971706028352-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <span class="identifier">iterator</span> <a name="idm50575-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Finds an iterator to the first element whose key is k or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971706019616-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 an iterator to the first element whose key is k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm50596-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></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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">const_iterator</span> <a name="idm45971706014608-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> + <span class="identifier">const_iterator</span> <a name="idm50600-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Finds an iterator to the first element whose key is k or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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="idm45971706005600-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>: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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="idm50621-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></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> KeyTypeKeyCompare<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="idm45971706000768-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <a name="idm50625-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">></span> -<a name="idm45971705991936-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>: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">></span> +<a name="idm50646-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></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> KeyTypeKeyCompare<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="idm45971705986816-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> + <a name="idm50650-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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="idm45971705977696-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> upper_key<span class="special">,</span> - <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: <code class="computeroutput">upper_key</code> shall not precede <code class="computeroutput">lower_key</code> according to key_compare. [key_comp()(upper_key, lower_key) shall be false]</p> -<p>If <code class="computeroutput">lower_key</code> is equivalent to <code class="computeroutput">upper_key</code> [!key_comp()(upper_key, lower_key) && !key_comp()(lower_key, upper_key)] then ('left_closed' || 'right_closed') must be false.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns an a pair with the following criteria:</p> -<p>first = lower_bound(lower_key) if left_closed, upper_bound(lower_key) otherwise</p> -<p>second = upper_bound(upper_key) if right_closed, lower_bound(upper_key) otherwise</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws.</p> -<p><span class="bold"><strong>Note</strong></span>: This function can be more efficient than calling upper_bound and lower_bound for lower_value and upper_value.</p> -<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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="idm50671-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> upper_key<span class="special">,</span> + <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span><span class="special">;</span></pre></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> KeyTypeKeyCompare<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="idm45971705965264-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> + <a name="idm50681-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span> comp<span class="special">,</span> <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: <code class="computeroutput">lower_key</code> is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, lower_key) if left_closed is true, with respect to !comp(lower_key, nk) otherwise.</p> <p><code class="computeroutput">upper_key</code> is a value such that <code class="computeroutput">*this</code> is partitioned with respect to !comp(upper_key, nk) if right_closed is true, with respect to comp(nk, upper_key) otherwise.</p> @@ -877,26 +805,15 @@ <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> <p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws.</p> <p><span class="bold"><strong>Note</strong></span>: This function can be more efficient than calling upper_bound and lower_bound for lower_key and upper_key.</p> -<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </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">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">></span> -<a name="idm45971705948464-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> upper_key<span class="special">,</span> - <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: <code class="computeroutput">upper_key</code> shall not precede <code class="computeroutput">lower_key</code> according to key_compare. [key_comp()(upper_key, lower_key) shall be false]</p> -<p>If <code class="computeroutput">lower_key</code> is equivalent to <code class="computeroutput">upper_key</code> [!key_comp()(upper_key, lower_key) && !key_comp()(lower_key, upper_key)] then ('left_closed' || 'right_closed') must be false.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns an a pair with the following criteria:</p> -<p>first = lower_bound(lower_key) if left_closed, upper_bound(lower_key) otherwise</p> -<p>second = upper_bound(upper_key) if right_closed, lower_bound(upper_key) otherwise</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws.</p> -<p><span class="bold"><strong>Note</strong></span>: This function can be more efficient than calling upper_bound and lower_bound for lower_value and upper_value.</p> -<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </p> +<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </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">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">></span> +<a name="idm50723-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> upper_key<span class="special">,</span> + <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></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> KeyTypeKeyCompare<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="idm45971705935744-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> + <a name="idm50733-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span> comp<span class="special">,</span> <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: <code class="computeroutput">lower_key</code> is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, lower_key) if left_closed is true, with respect to !comp(lower_key, nk) otherwise.</p> <p><code class="computeroutput">upper_key</code> is a value such that <code class="computeroutput">*this</code> is partitioned with respect to !comp(upper_key, nk) if right_closed is true, with respect to comp(nk, upper_key) otherwise.</p> @@ -908,116 +825,56 @@ <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> <p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws.</p> <p><span class="bold"><strong>Note</strong></span>: This function can be more efficient than calling upper_bound and lower_bound for lower_key and upper_key.</p> -<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971705918656-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 set of appropriate type. Otherwise the behavior is undefined.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns: a valid iterator i belonging to the set 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_iterator</span> <a name="idm45971705913168-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 set of appropriate type. Otherwise the behavior is undefined.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns: a valid const_iterator i belonging to the set 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> +<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm50775-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm50779-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></li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">pointer</span> <a name="idm45971705907680-bb"></a><span class="identifier">unlink_leftmost_without_rebalance</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">pointer</span> <a name="idm50783-bb"></a><span class="identifier">unlink_leftmost_without_rebalance</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>: Unlinks the leftmost node from the container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Average complexity is constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Notes</strong></span>: This function breaks the container and the container can only be used for more unlink_leftmost_without_rebalance calls. This function is normally used to achieve a step by step controlled destruction of the container. </p> +<p><span class="bold"><strong>Notes</strong></span>: This function breaks the container and the container can only be used for more unlink_leftmost_without_rebalance calls. This function is normally used to achieve a step by step controlled destruction of the container. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971705902768-bb"></a><span class="identifier">replace_node</span><span class="special">(</span><span class="identifier">iterator</span> replace_this<span class="special">,</span> <span class="identifier">reference</span> with_this<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">void</span> <a name="idm50794-bb"></a><span class="identifier">replace_node</span><span class="special">(</span><span class="identifier">iterator</span> replace_this<span class="special">,</span> <span class="identifier">reference</span> with_this<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: replace_this must be a valid iterator of *this and with_this must not be inserted in any container.</p> <p><span class="bold"><strong>Effects</strong></span>: Replaces replace_this in its position in the container with with_this. The container does not need to be rebalanced.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: This function will break container ordering invariants if with_this is not equivalent to *replace_this according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing or comparison is needed. </p> +<p><span class="bold"><strong>Note</strong></span>: This function will break container ordering invariants if with_this is not equivalent to *replace_this according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing or comparison is needed. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971705895504-bb"></a><span class="identifier">remove_node</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">void</span> <a name="idm50811-bb"></a><span class="identifier">remove_node</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>Effects</strong></span>: removes "value" from the container.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic time.</p> <p><span class="bold"><strong>Note</strong></span>: This static function is only usable with non-constant time size containers that have stateless comparison functors.</p> -<p>If the user calls this function with a constant time size container or stateful comparison functor a compilation error will be issued. </p> +<p>If the user calls this function with a constant time size container or stateful comparison functor a compilation error will be issued. </p> </li> </ol></div> </div> <div class="refsect2"> -<a name="id-1.3.20.42.40.4.4.7"></a><h3> -<a name="idm45971705859056-bb"></a><code class="computeroutput">treap</code> public static functions</h3> +<a name="id-1.3.18.42.40.4.4.7"></a><h3> +<a name="idm50905-bb"></a><code class="computeroutput">treap</code> public static functions</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <a class="link" href="treap.html" title="Class template treap">treap</a> <span class="special">&</span> <a name="idm45971705858496-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Precondition</strong></span>: end_iterator must be a valid end iterator of the container.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the container associated to the end iterator</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Constant. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="treap.html" title="Class template treap">treap</a> <span class="special">&</span> -<a name="idm45971705852480-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">const_iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Precondition</strong></span>: end_iterator must be a valid end iterator of the container.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the container associated to the end iterator</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Constant. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <a class="link" href="treap.html" title="Class template treap">treap</a> <span class="special">&</span> <a name="idm45971705846304-bb"></a><span class="identifier">container_from_iterator</span><span class="special">(</span><span class="identifier">iterator</span> it<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Precondition</strong></span>: it must be a valid iterator of the container.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the container associated to the iterator</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="treap.html" title="Class template treap">treap</a> <span class="special">&</span> <a name="idm45971705840336-bb"></a><span class="identifier">container_from_iterator</span><span class="special">(</span><span class="identifier">const_iterator</span> it<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Precondition</strong></span>: it must be a valid iterator of the container.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the container associated to the iterator</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="identifier">iterator</span> <a name="idm45971705834208-bb"></a><span class="identifier">s_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 set of appropriate type. Otherwise the behavior is undefined.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns: a valid iterator i belonging to the set 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> -<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">const_iterator</span> <a name="idm45971705827120-bb"></a><span class="identifier">s_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 set of appropriate type. Otherwise the behavior is undefined.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns: a valid iterator i belonging to the set 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> -<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="keyword">void</span> <a name="idm45971705820032-bb"></a><span class="identifier">init_node</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 shall not be in a container.</p> -<p><span class="bold"><strong>Effects</strong></span>: init_node puts the hook of a value in a well-known default state.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> -<p><span class="bold"><strong>Note</strong></span>: This function puts the hook in the well-known default state used by auto_unlink and safe hooks. </p> -</li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <a class="link" href="treap.html" title="Class template treap">treap</a> <span class="special">&</span> <a name="idm50906-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="treap.html" title="Class template treap">treap</a> <span class="special">&</span> +<a name="idm50911-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">const_iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <a class="link" href="treap.html" title="Class template treap">treap</a> <span class="special">&</span> <a name="idm50916-bb"></a><span class="identifier">container_from_iterator</span><span class="special">(</span><span class="identifier">iterator</span> it<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="treap.html" title="Class template treap">treap</a> <span class="special">&</span> <a name="idm50921-bb"></a><span class="identifier">container_from_iterator</span><span class="special">(</span><span class="identifier">const_iterator</span> it<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">iterator</span> <a name="idm50926-bb"></a><span class="identifier">s_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></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">const_iterator</span> <a name="idm50930-bb"></a><span class="identifier">s_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></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm50934-bb"></a><span class="identifier">init_node</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></li> </ol></div> </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="make_treap.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.treap_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="treap_algorithms.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/treap_algorithms.html b/doc/html/boost/intrusive/treap_algorithms.html index dbf96a0781..ecbe2fb80a 100644 --- a/doc/html/boost/intrusive/treap_algorithms.html +++ b/doc/html/boost/intrusive/treap_algorithms.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.treap_algorithms_hpp" title="Header <boost/intrusive/treap_algorithms.hpp>"> <link rel="prev" href="treap.html" title="Class template treap"> <link rel="next" href="treap_algorithms/insert_commit_data.html" title="Struct insert_commit_data"> +<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> @@ -29,8 +30,8 @@ <h2><span class="refentrytitle">Class template treap_algorithms</span></h2> <p>boost::intrusive::treap_algorithms</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.treap_algorithms_hpp" title="Header <boost/intrusive/treap_algorithms.hpp>">boost/intrusive/treap_algorithms.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.treap_algorithms_hpp" title="Header <boost/intrusive/treap_algorithms.hpp>">boost/intrusive/treap_algorithms.hpp</a>> </span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodeTraits<span class="special">></span> <span class="keyword">class</span> <a class="link" href="treap_algorithms.html" title="Class template treap_algorithms">treap_algorithms</a> <span class="special">{</span> @@ -46,91 +47,91 @@ <span class="keyword">struct</span> <a class="link" href="treap_algorithms/insert_commit_data.html" title="Struct insert_commit_data">insert_commit_data</a> <span class="special">{</span> <span class="special">}</span><span class="special">;</span> - <span class="comment">// <a class="link" href="treap_algorithms.html#idm45971705796000-bb">public static functions</a></span> - <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="treap_algorithms.html#idm45971705795440-bb"><span class="identifier">get_header</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="treap_algorithms.html#idm45971705789792-bb"><span class="identifier">begin_node</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="treap_algorithms.html#idm45971705784112-bb"><span class="identifier">end_node</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="treap_algorithms.html#idm45971705778464-bb"><span class="identifier">swap_tree</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="treap_algorithms.html#idm45971705772016-bb"><span class="identifier">swap_nodes</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="treap_algorithms.html#idm45971705764288-bb"><span class="identifier">swap_nodes</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="treap_algorithms.html#idm45971705755152-bb"><span class="identifier">replace_node</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="treap_algorithms.html#idm45971705747584-bb"><span class="identifier">replace_node</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="comment">// <a class="link" href="treap_algorithms.html#idm50984-bb">public static functions</a></span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="treap_algorithms.html#idm50985-bb"><span class="identifier">get_header</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="treap_algorithms.html#idm50998-bb"><span class="identifier">begin_node</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="treap_algorithms.html#idm51011-bb"><span class="identifier">end_node</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="treap_algorithms.html#idm51024-bb"><span class="identifier">swap_tree</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="treap_algorithms.html#idm51039-bb"><span class="identifier">swap_nodes</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="treap_algorithms.html#idm51057-bb"><span class="identifier">swap_nodes</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="treap_algorithms.html#idm51079-bb"><span class="identifier">replace_node</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="treap_algorithms.html#idm51096-bb"><span class="identifier">replace_node</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</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> NodePtrPriorityCompare<span class="special">></span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="treap_algorithms.html#idm45971705739312-bb"><span class="identifier">unlink</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">NodePtrPriorityCompare</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="treap_algorithms.html#idm45971705732368-bb"><span class="identifier">unlink_leftmost_without_rebalance</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">bool</span> <a class="link" href="treap_algorithms.html#idm45971705725600-bb"><span class="identifier">unique</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a class="link" href="treap_algorithms.html#idm45971705719888-bb"><span class="identifier">size</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="treap_algorithms.html#idm45971705714224-bb"><span class="identifier">next_node</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="treap_algorithms.html#idm45971705708560-bb"><span class="identifier">prev_node</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="treap_algorithms.html#idm45971705702864-bb"><span class="identifier">init</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="treap_algorithms.html#idm45971705696320-bb"><span class="identifier">init_header</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="treap_algorithms.html#idm51115-bb"><span class="identifier">unlink</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">NodePtrPriorityCompare</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="treap_algorithms.html#idm51132-bb"><span class="identifier">unlink_leftmost_without_rebalance</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">bool</span> <a class="link" href="treap_algorithms.html#idm51147-bb"><span class="identifier">unique</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a class="link" href="treap_algorithms.html#idm51160-bb"><span class="identifier">size</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="treap_algorithms.html#idm51173-bb"><span class="identifier">next_node</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="treap_algorithms.html#idm51186-bb"><span class="identifier">prev_node</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="treap_algorithms.html#idm51199-bb"><span class="identifier">init</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="treap_algorithms.html#idm51214-bb"><span class="identifier">init_header</span></a><span class="special">(</span><span class="identifier">node_ptr</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> NodePtrPriorityCompare<span class="special">></span> - <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="treap_algorithms.html#idm45971705689744-bb"><span class="identifier">erase</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">NodePtrPriorityCompare</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="treap_algorithms.html#idm51229-bb"><span class="identifier">erase</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">NodePtrPriorityCompare</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">static</span> <span class="keyword">void</span> <a class="link" href="treap_algorithms.html#idm45971705682080-bb"><span class="identifier">clone</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</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">static</span> <span class="keyword">void</span> <a class="link" href="treap_algorithms.html#idm51248-bb"><span class="identifier">clone</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</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> Disposer<span class="special">></span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="treap_algorithms.html#idm45971705671056-bb"><span class="identifier">clear_and_dispose</span></a><span class="special">(</span><span class="identifier">node_ptr</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">static</span> <span class="keyword">void</span> <a class="link" href="treap_algorithms.html#idm51274-bb"><span class="identifier">clear_and_dispose</span></a><span class="special">(</span><span class="identifier">node_ptr</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> KeyType<span class="special">,</span> <span class="keyword">typename</span> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a class="link" href="treap_algorithms.html#idm45971705663200-bb"><span class="identifier">lower_bound</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><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">KeyNodePtrCompare</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="treap_algorithms.html#idm51292-bb"><span class="identifier">lower_bound</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><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">KeyNodePtrCompare</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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a class="link" href="treap_algorithms.html#idm45971705654736-bb"><span class="identifier">upper_bound</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><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">KeyNodePtrCompare</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="treap_algorithms.html#idm51312-bb"><span class="identifier">upper_bound</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><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">KeyNodePtrCompare</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> KeyNodePtrCompare<span class="special">></span> - <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="treap_algorithms.html#idm45971705646272-bb"><span class="identifier">find</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><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">KeyNodePtrCompare</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="treap_algorithms.html#idm51332-bb"><span class="identifier">find</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><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">KeyNodePtrCompare</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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span> <span class="special">></span> - <a class="link" href="treap_algorithms.html#idm45971705637808-bb"><span class="identifier">equal_range</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><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">KeyNodePtrCompare</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="treap_algorithms.html#idm51352-bb"><span class="identifier">equal_range</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><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">KeyNodePtrCompare</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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span> <span class="special">></span> - <a class="link" href="treap_algorithms.html#idm45971705629216-bb"><span class="identifier">bounded_range</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> + <a class="link" href="treap_algorithms.html#idm51372-bb"><span class="identifier">bounded_range</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><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">KeyNodePtrCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> - <a class="link" href="treap_algorithms.html#idm45971705616080-bb"><span class="identifier">count</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><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">KeyNodePtrCompare</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="treap_algorithms.html#idm51404-bb"><span class="identifier">count</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><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">KeyNodePtrCompare</span><span class="special">)</span><span class="special">;</span> <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodePtrCompare<span class="special">,</span> <span class="keyword">typename</span> NodePtrPriorityCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a class="link" href="treap_algorithms.html#idm45971705607664-bb"><span class="identifier">insert_equal_upper_bound</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">NodePtrCompare</span><span class="special">,</span> + <a class="link" href="treap_algorithms.html#idm51424-bb"><span class="identifier">insert_equal_upper_bound</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">NodePtrCompare</span><span class="special">,</span> <span class="identifier">NodePtrPriorityCompare</span><span class="special">)</span><span class="special">;</span> <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodePtrCompare<span class="special">,</span> <span class="keyword">typename</span> NodePtrPriorityCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a class="link" href="treap_algorithms.html#idm45971705598288-bb"><span class="identifier">insert_equal_lower_bound</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">NodePtrCompare</span><span class="special">,</span> + <a class="link" href="treap_algorithms.html#idm51446-bb"><span class="identifier">insert_equal_lower_bound</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">NodePtrCompare</span><span class="special">,</span> <span class="identifier">NodePtrPriorityCompare</span><span class="special">)</span><span class="special">;</span> <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodePtrCompare<span class="special">,</span> <span class="keyword">typename</span> NodePtrPriorityCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a class="link" href="treap_algorithms.html#idm45971705588928-bb"><span class="identifier">insert_equal</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">NodePtrCompare</span><span class="special">,</span> + <a class="link" href="treap_algorithms.html#idm51468-bb"><span class="identifier">insert_equal</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">NodePtrCompare</span><span class="special">,</span> <span class="identifier">NodePtrPriorityCompare</span><span class="special">)</span><span class="special">;</span> <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodePtrPriorityCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a class="link" href="treap_algorithms.html#idm45971705578672-bb"><span class="identifier">insert_before</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">NodePtrPriorityCompare</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="treap_algorithms.html#idm51492-bb"><span class="identifier">insert_before</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">NodePtrPriorityCompare</span><span class="special">)</span><span class="special">;</span> <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodePtrPriorityCompare<span class="special">></span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="treap_algorithms.html#idm45971705568912-bb"><span class="identifier">push_back</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">NodePtrPriorityCompare</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="treap_algorithms.html#idm51515-bb"><span class="identifier">push_back</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">NodePtrPriorityCompare</span><span class="special">)</span><span class="special">;</span> <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodePtrPriorityCompare<span class="special">></span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="treap_algorithms.html#idm45971705559984-bb"><span class="identifier">push_front</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">NodePtrPriorityCompare</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="treap_algorithms.html#idm51536-bb"><span class="identifier">push_front</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">NodePtrPriorityCompare</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> KeyNodePtrCompare<span class="special">,</span> <span class="keyword">typename</span> PrioType<span class="special">,</span> <span class="keyword">typename</span> PrioNodePtrPrioCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="keyword">bool</span> <span class="special">></span> - <a class="link" href="treap_algorithms.html#idm45971705551056-bb"><span class="identifier">insert_unique_check</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><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">KeyNodePtrCompare</span><span class="special">,</span> + <a class="link" href="treap_algorithms.html#idm51557-bb"><span class="identifier">insert_unique_check</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><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">KeyNodePtrCompare</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">PrioType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">PrioNodePtrPrioCompare</span><span class="special">,</span> <a class="link" href="treap_algorithms/insert_commit_data.html" title="Struct insert_commit_data">insert_commit_data</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> KeyType<span class="special">,</span> <span class="keyword">typename</span> KeyNodePtrCompare<span class="special">,</span> <span class="keyword">typename</span> PrioType<span class="special">,</span> <span class="keyword">typename</span> PrioNodePtrPrioCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="keyword">bool</span> <span class="special">></span> - <a class="link" href="treap_algorithms.html#idm45971705535696-bb"><span class="identifier">insert_unique_check</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> + <a class="link" href="treap_algorithms.html#idm51592-bb"><span class="identifier">insert_unique_check</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><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">KeyNodePtrCompare</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">PrioType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">PrioNodePtrPrioCompare</span><span class="special">,</span> <a class="link" href="treap_algorithms/insert_commit_data.html" title="Struct insert_commit_data">insert_commit_data</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="treap_algorithms.html#idm45971705519344-bb"><span class="identifier">insert_unique_commit</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="treap_algorithms.html#idm51629-bb"><span class="identifier">insert_unique_commit</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="treap_algorithms/insert_commit_data.html" title="Struct insert_commit_data">insert_commit_data</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> NodePtrCompare<span class="special">,</span> <span class="keyword">typename</span> PrioNodePtrPrioCompare<span class="special">></span> - <span class="keyword">static</span> <span class="keyword">bool</span> <a class="link" href="treap_algorithms.html#idm45971705510496-bb"><span class="identifier">transfer_unique</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">NodePtrCompare</span><span class="special">,</span> + <span class="keyword">static</span> <span class="keyword">bool</span> <a class="link" href="treap_algorithms.html#idm51649-bb"><span class="identifier">transfer_unique</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">NodePtrCompare</span><span class="special">,</span> <span class="identifier">PrioNodePtrPrioCompare</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span><span class="special">;</span> <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodePtrCompare<span class="special">,</span> <span class="keyword">typename</span> PrioNodePtrPrioCompare<span class="special">></span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="treap_algorithms.html#idm45971705499888-bb"><span class="identifier">transfer_equal</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">NodePtrCompare</span><span class="special">,</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="treap_algorithms.html#idm51675-bb"><span class="identifier">transfer_equal</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">NodePtrCompare</span><span class="special">,</span> <span class="identifier">PrioNodePtrPrioCompare</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">bool</span> <a class="link" href="treap_algorithms.html#idm45971705490208-bb"><span class="identifier">is_header</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">bool</span> <a class="link" href="treap_algorithms.html#idm51699-bb"><span class="identifier">is_header</span></a><span class="special">(</span><span class="identifier">const_node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</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.41.3.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.41.3.4"></a><h2>Description</h2> <p><a class="link" href="treap_algorithms.html" title="Class template treap_algorithms">treap_algorithms</a> provides basic algorithms to manipulate nodes forming a treap.</p> <p>(1) the header node is maintained with links not only to the root but also to the leftmost node of the tree, to enable constant time begin(), and to the rightmost node of the tree, to enable linear time performance when used with the generic set algorithms (set_union, etc.);</p> <p>(2) when a node being deleted has two children its successor node is relinked into its place, rather than copied, so that the only pointers invalidated are those referring to the deleted node.</p> @@ -147,203 +148,203 @@ <p><code class="computeroutput">static node_ptr get_right(const_node_ptr n);</code></p> <p><code class="computeroutput">static void set_right(node_ptr n, node_ptr right);</code> </p> <div class="refsect2"> -<a name="id-1.3.20.42.41.3.4.17"></a><h3> -<a name="idm45971705796000-bb"></a><code class="computeroutput">treap_algorithms</code> public static functions</h3> +<a name="id-1.3.18.42.41.3.4.17"></a><h3> +<a name="idm50984-bb"></a><code class="computeroutput">treap_algorithms</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">node_ptr</span> <a name="idm45971705795440-bb"></a><span class="identifier">get_header</span><span class="special">(</span><span class="identifier">const_node_ptr</span> n<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: 'node' is a node of the tree or a header node.</p> +<pre class="literallayout"><span class="keyword">static</span> <span class="identifier">node_ptr</span> <a name="idm50985-bb"></a><span class="identifier">get_header</span><span class="special">(</span><span class="identifier">const_node_ptr</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 a node of the tree or a header node.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns the header of the tree.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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">node_ptr</span> <a name="idm45971705789792-bb"></a><span class="identifier">begin_node</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<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">node_ptr</span> <a name="idm50998-bb"></a><span class="identifier">begin_node</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: 'header' is the header node of a tree.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns the first node of the tree, the header if the tree is empty.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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">node_ptr</span> <a name="idm45971705784112-bb"></a><span class="identifier">end_node</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<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">node_ptr</span> <a name="idm51011-bb"></a><span class="identifier">end_node</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: 'header' is the header node of a tree.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns the header of the tree.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="keyword">void</span> <a name="idm45971705778464-bb"></a><span class="identifier">swap_tree</span><span class="special">(</span><span class="identifier">node_ptr</span> header1<span class="special">,</span> <span class="identifier">node_ptr</span> header2<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm51024-bb"></a><span class="identifier">swap_tree</span><span class="special">(</span><span class="identifier">node_ptr</span> header1<span class="special">,</span> <span class="identifier">node_ptr</span> header2<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: header1 and header2 must be the header nodes of two trees.</p> <p><span class="bold"><strong>Effects</strong></span>: Swaps two trees. After the function header1 will contain links to the second tree and header2 will have links to the first tree.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="keyword">void</span> <a name="idm45971705772016-bb"></a><span class="identifier">swap_nodes</span><span class="special">(</span><span class="identifier">node_ptr</span> node1<span class="special">,</span> <span class="identifier">node_ptr</span> node2<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm51039-bb"></a><span class="identifier">swap_nodes</span><span class="special">(</span><span class="identifier">node_ptr</span> node1<span class="special">,</span> <span class="identifier">node_ptr</span> node2<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: node1 and node2 can't be header nodes of two trees.</p> <p><span class="bold"><strong>Effects</strong></span>: Swaps two nodes. After the function node1 will be inserted in the position node2 before the function. node2 will be inserted in the position node1 had before the function.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Note</strong></span>: This function will break container ordering invariants if node1 and node2 are not equivalent according to the ordering rules.</p> -<p>Experimental function </p> +<p>Experimental function </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971705764288-bb"></a><span class="identifier">swap_nodes</span><span class="special">(</span><span class="identifier">node_ptr</span> node1<span class="special">,</span> <span class="identifier">node_ptr</span> header1<span class="special">,</span> <span class="identifier">node_ptr</span> node2<span class="special">,</span> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm51057-bb"></a><span class="identifier">swap_nodes</span><span class="special">(</span><span class="identifier">node_ptr</span> node1<span class="special">,</span> <span class="identifier">node_ptr</span> header1<span class="special">,</span> <span class="identifier">node_ptr</span> node2<span class="special">,</span> <span class="identifier">node_ptr</span> header2<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: node1 and node2 can't be header nodes of two trees with header header1 and header2.</p> <p><span class="bold"><strong>Effects</strong></span>: Swaps two nodes. After the function node1 will be inserted in the position node2 before the function. node2 will be inserted in the position node1 had before the function.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Note</strong></span>: This function will break container ordering invariants if node1 and node2 are not equivalent according to the ordering rules.</p> -<p>Experimental function </p> +<p>Experimental function </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971705755152-bb"></a><span class="identifier">replace_node</span><span class="special">(</span><span class="identifier">node_ptr</span> node_to_be_replaced<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm51079-bb"></a><span class="identifier">replace_node</span><span class="special">(</span><span class="identifier">node_ptr</span> node_to_be_replaced<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: node_to_be_replaced must be inserted in a tree and new_node must not be inserted in a tree.</p> <p><span class="bold"><strong>Effects</strong></span>: Replaces node_to_be_replaced in its position in the tree with new_node. The tree does not need to be rebalanced</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: This function will break container ordering invariants if new_node is not equivalent to node_to_be_replaced according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing and comparison is needed. Experimental function </p> +<p><span class="bold"><strong>Note</strong></span>: This function will break container ordering invariants if new_node is not equivalent to node_to_be_replaced according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing and comparison is needed. Experimental function </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971705747584-bb"></a><span class="identifier">replace_node</span><span class="special">(</span><span class="identifier">node_ptr</span> node_to_be_replaced<span class="special">,</span> <span class="identifier">node_ptr</span> header<span class="special">,</span> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm51096-bb"></a><span class="identifier">replace_node</span><span class="special">(</span><span class="identifier">node_ptr</span> node_to_be_replaced<span class="special">,</span> <span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: node_to_be_replaced must be inserted in a tree with header "header" and new_node must not be inserted in a tree.</p> <p><span class="bold"><strong>Effects</strong></span>: Replaces node_to_be_replaced in its position in the tree with new_node. The tree does not need to be rebalanced</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: This function will break container ordering invariants if new_node is not equivalent to node_to_be_replaced according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing or comparison is needed. Experimental function </p> +<p><span class="bold"><strong>Note</strong></span>: This function will break container ordering invariants if new_node is not equivalent to node_to_be_replaced according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing or comparison is needed. Experimental function </p> </li> <li class="listitem"> <pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodePtrPriorityCompare<span class="special">></span> - <span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971705739312-bb"></a><span class="identifier">unlink</span><span class="special">(</span><span class="identifier">node_ptr</span> node<span class="special">,</span> <span class="identifier">NodePtrPriorityCompare</span> pcomp<span class="special">)</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: node is a tree node but not the header.</p> + <span class="keyword">static</span> <span class="keyword">void</span> <a name="idm51115-bb"></a><span class="identifier">unlink</span><span class="special">(</span><span class="identifier">node_ptr</span> n<span class="special">,</span> <span class="identifier">NodePtrPriorityCompare</span> pcomp<span class="special">)</span><span class="special">;</span></pre> +<p><span class="bold"><strong>Requires</strong></span>: 'n' is a tree node but not the header.</p> <p><span class="bold"><strong>Effects</strong></span>: Unlinks the node and rebalances the tree.</p> <p><span class="bold"><strong>Complexity</strong></span>: Average complexity is constant time.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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">node_ptr</span> <a name="idm45971705732368-bb"></a><span class="identifier">unlink_leftmost_without_rebalance</span><span class="special">(</span><span class="identifier">node_ptr</span> header<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">node_ptr</span> <a name="idm51132-bb"></a><span class="identifier">unlink_leftmost_without_rebalance</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: header is the header of a tree.</p> <p><span class="bold"><strong>Effects</strong></span>: Unlinks the leftmost node from the tree, and updates the header link to the new leftmost node.</p> <p><span class="bold"><strong>Complexity</strong></span>: Average complexity is constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Notes</strong></span>: This function breaks the tree and the tree can only be used for more unlink_leftmost_without_rebalance calls. This function is normally used to achieve a step by step controlled destruction of the tree. </p> +<p><span class="bold"><strong>Notes</strong></span>: This function breaks the tree and the tree can only be used for more unlink_leftmost_without_rebalance calls. This function is normally used to achieve a step by step controlled destruction of the tree. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">bool</span> <a name="idm45971705725600-bb"></a><span class="identifier">unique</span><span class="special">(</span><span class="identifier">const_node_ptr</span> node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: 'node' is a node of the tree or a node initialized by init(...) or init_node.</p> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">bool</span> <a name="idm51147-bb"></a><span class="identifier">unique</span><span class="special">(</span><span class="identifier">const_node_ptr</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 a node of the tree or a node initialized by init(...) or init_node.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns true if the node is initialized by init() or init_node().</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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">std</span><span class="special">::</span><span class="identifier">size_t</span> <a name="idm45971705719888-bb"></a><span class="identifier">size</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: node is a node of the tree but it's not the header.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns the number of nodes of the subtree.</p> +<pre class="literallayout"><span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a name="idm51160-bb"></a><span class="identifier">size</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<p><span class="bold"><strong>Requires</strong></span>: 'header' the header of the tree.</p> +<p><span class="bold"><strong>Effects</strong></span>: Returns the number of nodes of the tree.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear time.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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">node_ptr</span> <a name="idm45971705714224-bb"></a><span class="identifier">next_node</span><span class="special">(</span><span class="identifier">node_ptr</span> node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: 'node' is a node from the tree except the header.</p> +<pre class="literallayout"><span class="keyword">static</span> <span class="identifier">node_ptr</span> <a name="idm51173-bb"></a><span class="identifier">next_node</span><span class="special">(</span><span class="identifier">node_ptr</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 a node from the tree except the header.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns the next node of the tree.</p> <p><span class="bold"><strong>Complexity</strong></span>: Average constant time.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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">node_ptr</span> <a name="idm45971705708560-bb"></a><span class="identifier">prev_node</span><span class="special">(</span><span class="identifier">node_ptr</span> node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: 'node' is a node from the tree except the leftmost node.</p> +<pre class="literallayout"><span class="keyword">static</span> <span class="identifier">node_ptr</span> <a name="idm51186-bb"></a><span class="identifier">prev_node</span><span class="special">(</span><span class="identifier">node_ptr</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 a node from the tree except the leftmost node.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns the previous node of the tree.</p> <p><span class="bold"><strong>Complexity</strong></span>: Average constant time.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="keyword">void</span> <a name="idm45971705702864-bb"></a><span class="identifier">init</span><span class="special">(</span><span class="identifier">node_ptr</span> node<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: 'node' must not be part of any tree.</p> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm51199-bb"></a><span class="identifier">init</span><span class="special">(</span><span class="identifier">node_ptr</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' must not be part of any tree.</p> <p><span class="bold"><strong>Effects</strong></span>: After the function unique(node) == true.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Nodes</strong></span>: If node is inserted in a tree, this function corrupts the tree. </p> +<p><span class="bold"><strong>Nodes</strong></span>: If node is inserted in a tree, this function corrupts the tree. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971705696320-bb"></a><span class="identifier">init_header</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: node must not be part of any tree.</p> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm51214-bb"></a><span class="identifier">init_header</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<p><span class="bold"><strong>Requires</strong></span>: header must not be part of any tree.</p> <p><span class="bold"><strong>Effects</strong></span>: Initializes the header to represent an empty tree. unique(header) == true.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Nodes</strong></span>: If node is inserted in a tree, this function corrupts the tree. </p> +<p><span class="bold"><strong>Nodes</strong></span>: If header is inserted in a tree, this function corrupts the tree. </p> </li> <li class="listitem"> <pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodePtrPriorityCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a name="idm45971705689744-bb"></a><span class="identifier">erase</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> z<span class="special">,</span> <span class="identifier">NodePtrPriorityCompare</span> pcomp<span class="special">)</span><span class="special">;</span></pre> + <a name="idm51229-bb"></a><span class="identifier">erase</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> z<span class="special">,</span> <span class="identifier">NodePtrPriorityCompare</span> pcomp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: header must be the header of a tree, z a node of that tree and z != header.</p> <p><span class="bold"><strong>Effects</strong></span>: Erases node "z" from the tree with header "header".</p> <p><span class="bold"><strong>Complexity</strong></span>: Amortized constant time.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </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">static</span> <span class="keyword">void</span> <a name="idm45971705682080-bb"></a><span class="identifier">clone</span><span class="special">(</span><span class="identifier">const_node_ptr</span> source_header<span class="special">,</span> <span class="identifier">node_ptr</span> target_header<span class="special">,</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a name="idm51248-bb"></a><span class="identifier">clone</span><span class="special">(</span><span class="identifier">const_node_ptr</span> source_header<span class="special">,</span> <span class="identifier">node_ptr</span> target_header<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>: "cloner" must be a function object taking a node_ptr and returning a new cloned node of it. "disposer" must take a node_ptr and shouldn't throw.</p> -<p><span class="bold"><strong>Effects</strong></span>: First empties target tree calling <code class="computeroutput">void disposer::operator()(const node_ptr &)</code> for every node of the tree except the header.</p> -<p>Then, duplicates the entire tree pointed by "source_header" cloning each source node with <code class="computeroutput">node_ptr Cloner::operator()(const node_ptr &)</code> to obtain the nodes of the target tree. If "cloner" throws, the cloned target nodes are disposed using <code class="computeroutput">void disposer(const node_ptr &)</code>.</p> +<p><span class="bold"><strong>Effects</strong></span>: First empties target tree calling <code class="computeroutput">void disposer::operator()(node_ptr)</code> for every node of the tree except the header.</p> +<p>Then, duplicates the entire tree pointed by "source_header" cloning each source node with <code class="computeroutput">node_ptr Cloner::operator()(node_ptr)</code> to obtain the nodes of the target tree. If "cloner" throws, the cloned target nodes are disposed using <code class="computeroutput">void disposer(node_ptr )</code>.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to the number of element of the source tree plus the number of elements of tree target tree when calling this function.</p> -<p><span class="bold"><strong>Throws</strong></span>: If cloner functor throws. If this happens target nodes are disposed. </p> +<p><span class="bold"><strong>Throws</strong></span>: If cloner functor throws. If this happens target nodes are disposed. </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">static</span> <span class="keyword">void</span> <a name="idm45971705671056-bb"></a><span class="identifier">clear_and_dispose</span><span class="special">(</span><span class="identifier">node_ptr</span> header<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">static</span> <span class="keyword">void</span> <a name="idm51274-bb"></a><span class="identifier">clear_and_dispose</span><span class="special">(</span><span class="identifier">node_ptr</span> header<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" must be an object function taking a node_ptr parameter and shouldn't throw.</p> -<p><span class="bold"><strong>Effects</strong></span>: Empties the target tree calling <code class="computeroutput">void disposer::operator()(const node_ptr &)</code> for every node of the tree except the header.</p> +<p><span class="bold"><strong>Effects</strong></span>: Empties the target tree calling <code class="computeroutput">void disposer::operator()(node_ptr)</code> for every node of the tree except the header.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to the number of element of the source tree plus the. number of elements of tree target tree when calling this function.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a name="idm45971705663200-bb"></a><span class="identifier">lower_bound</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> key<span class="special">,</span> + <a name="idm51292-bb"></a><span class="identifier">lower_bound</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<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">KeyNodePtrCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns a node_ptr to the first element that is not less than "key" according to "comp" or "header" if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If "comp" 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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a name="idm45971705654736-bb"></a><span class="identifier">upper_bound</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> key<span class="special">,</span> + <a name="idm51312-bb"></a><span class="identifier">upper_bound</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<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">KeyNodePtrCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns a node_ptr to the first element that is greater than "key" according to "comp" or "header" if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If "comp" 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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a name="idm45971705646272-bb"></a><span class="identifier">find</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<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">KeyNodePtrCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <a name="idm51332-bb"></a><span class="identifier">find</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<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">KeyNodePtrCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns a node_ptr to the first element that is equivalent to "key" according to "comp" or "header" if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If "comp" 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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span> <span class="special">></span> - <a name="idm45971705637808-bb"></a><span class="identifier">equal_range</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> key<span class="special">,</span> + <a name="idm51352-bb"></a><span class="identifier">equal_range</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<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">KeyNodePtrCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns an a pair of node_ptr delimiting a range containing all elements that are equivalent to "key" according to "comp" or an empty range that indicates the position where those elements would be if there are no equivalent elements.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If "comp" 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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">node_ptr</span> <span class="special">></span> - <a name="idm45971705629216-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> + <a name="idm51372-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> <span class="identifier">KeyNodePtrCompare</span> comp<span class="special">,</span> <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs. 'lower_key' must not be greater than 'upper_key' according to 'comp'. If 'lower_key' == 'upper_key', ('left_closed' || 'right_closed') must be true.</p> @@ -353,21 +354,21 @@ <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> <p><span class="bold"><strong>Throws</strong></span>: If "comp" throws.</p> <p><span class="bold"><strong>Note</strong></span>: This function can be more efficient than calling upper_bound and lower_bound for lower_key and upper_key.</p> -<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change. </p> +<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change. </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> KeyNodePtrCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> - <a name="idm45971705616080-bb"></a><span class="identifier">count</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<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">KeyNodePtrCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <a name="idm51404-bb"></a><span class="identifier">count</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<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">KeyNodePtrCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns the number of elements with a key equivalent to "key" according to "comp".</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If "comp" throws. </p> </li> <li class="listitem"> <pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodePtrCompare<span class="special">,</span> <span class="keyword">typename</span> NodePtrPriorityCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a name="idm45971705607664-bb"></a><span class="identifier">insert_equal_upper_bound</span><span class="special">(</span><span class="identifier">node_ptr</span> h<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">,</span> <span class="identifier">NodePtrCompare</span> comp<span class="special">,</span> + <a name="idm51424-bb"></a><span class="identifier">insert_equal_upper_bound</span><span class="special">(</span><span class="identifier">node_ptr</span> h<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">,</span> <span class="identifier">NodePtrCompare</span> comp<span class="special">,</span> <span class="identifier">NodePtrPriorityCompare</span> pcomp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "h" must be the header node of a tree. NodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. NodePtrCompare compares two node_ptrs. NodePtrPriorityCompare is a priority function object that induces a strict weak ordering compatible with the one used to create the the tree. NodePtrPriorityCompare compares two node_ptrs.</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts new_node into the tree before the upper bound according to "comp" and rotates the tree according to "pcomp".</p> @@ -377,7 +378,7 @@ <li class="listitem"> <pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodePtrCompare<span class="special">,</span> <span class="keyword">typename</span> NodePtrPriorityCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a name="idm45971705598288-bb"></a><span class="identifier">insert_equal_lower_bound</span><span class="special">(</span><span class="identifier">node_ptr</span> h<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">,</span> <span class="identifier">NodePtrCompare</span> comp<span class="special">,</span> + <a name="idm51446-bb"></a><span class="identifier">insert_equal_lower_bound</span><span class="special">(</span><span class="identifier">node_ptr</span> h<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">,</span> <span class="identifier">NodePtrCompare</span> comp<span class="special">,</span> <span class="identifier">NodePtrPriorityCompare</span> pcomp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "h" must be the header node of a tree. NodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. NodePtrCompare compares two node_ptrs. NodePtrPriorityCompare is a priority function object that induces a strict weak ordering compatible with the one used to create the the tree. NodePtrPriorityCompare compares two node_ptrs.</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts new_node into the tree before the upper bound according to "comp" and rotates the tree according to "pcomp".</p> @@ -387,7 +388,7 @@ <li class="listitem"> <pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodePtrCompare<span class="special">,</span> <span class="keyword">typename</span> NodePtrPriorityCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a name="idm45971705588928-bb"></a><span class="identifier">insert_equal</span><span class="special">(</span><span class="identifier">node_ptr</span> h<span class="special">,</span> <span class="identifier">node_ptr</span> hint<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">,</span> + <a name="idm51468-bb"></a><span class="identifier">insert_equal</span><span class="special">(</span><span class="identifier">node_ptr</span> h<span class="special">,</span> <span class="identifier">node_ptr</span> hint<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">,</span> <span class="identifier">NodePtrCompare</span> comp<span class="special">,</span> <span class="identifier">NodePtrPriorityCompare</span> pcomp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "header" must be the header node of a tree. NodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. NodePtrCompare compares two node_ptrs. "hint" is node from the "header"'s tree. NodePtrPriorityCompare is a priority function object that induces a strict weak ordering compatible with the one used to create the the tree. NodePtrPriorityCompare compares two node_ptrs.</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts new_node into the tree, using "hint" as a hint to where it will be inserted. If "hint" is the upper_bound the insertion takes constant time (two comparisons in the worst case). Rotates the tree according to "pcomp".</p> @@ -397,7 +398,7 @@ <li class="listitem"> <pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodePtrPriorityCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">node_ptr</span> - <a name="idm45971705578672-bb"></a><span class="identifier">insert_before</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> pos<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">,</span> + <a name="idm51492-bb"></a><span class="identifier">insert_before</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> pos<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">,</span> <span class="identifier">NodePtrPriorityCompare</span> pcomp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "header" must be the header node of a tree. "pos" must be a valid node of the tree (including header end) node. "pos" must be a node pointing to the successor to "new_node" once inserted according to the order of already inserted nodes. This function does not check "pos" and this precondition must be guaranteed by the caller. NodePtrPriorityCompare is a priority function object that induces a strict weak ordering compatible with the one used to create the the tree. NodePtrPriorityCompare compares two node_ptrs.</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts new_node into the tree before "pos" and rotates the tree according to "pcomp".</p> @@ -407,7 +408,7 @@ </li> <li class="listitem"> <pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodePtrPriorityCompare<span class="special">></span> - <span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971705568912-bb"></a><span class="identifier">push_back</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">,</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a name="idm51515-bb"></a><span class="identifier">push_back</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">,</span> <span class="identifier">NodePtrPriorityCompare</span> pcomp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "header" must be the header node of a tree. "new_node" must be, according to the used ordering no less than the greatest inserted key. NodePtrPriorityCompare is a priority function object that induces a strict weak ordering compatible with the one used to create the the tree. NodePtrPriorityCompare compares two node_ptrs.</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts x into the tree in the last position and rotates the tree according to "pcomp".</p> @@ -417,7 +418,7 @@ </li> <li class="listitem"> <pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodePtrPriorityCompare<span class="special">></span> - <span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971705559984-bb"></a><span class="identifier">push_front</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">,</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a name="idm51536-bb"></a><span class="identifier">push_front</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">,</span> <span class="identifier">NodePtrPriorityCompare</span> pcomp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "header" must be the header node of a tree. "new_node" must be, according to the used ordering, no greater than the lowest inserted key. NodePtrPriorityCompare is a priority function object that induces a strict weak ordering compatible with the one used to create the the tree. NodePtrPriorityCompare compares two node_ptrs.</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts x into the tree in the first position and rotates the tree according to "pcomp".</p> @@ -429,7 +430,7 @@ <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> KeyNodePtrCompare<span class="special">,</span> <span class="keyword">typename</span> PrioType<span class="special">,</span> <span class="keyword">typename</span> PrioNodePtrPrioCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="keyword">bool</span> <span class="special">></span> - <a name="idm45971705551056-bb"></a><span class="identifier">insert_unique_check</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> key<span class="special">,</span> + <a name="idm51557-bb"></a><span class="identifier">insert_unique_check</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<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">KeyNodePtrCompare</span> comp<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">PrioType</span> <span class="special">&</span> prio<span class="special">,</span> <span class="identifier">PrioNodePtrPrioCompare</span> pcomp<span class="special">,</span> <a class="link" href="treap_algorithms/insert_commit_data.html" title="Struct insert_commit_data">insert_commit_data</a> <span class="special">&</span> commit_data<span class="special">)</span><span class="special">;</span></pre> @@ -446,7 +447,7 @@ <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> KeyNodePtrCompare<span class="special">,</span> <span class="keyword">typename</span> PrioType<span class="special">,</span> <span class="keyword">typename</span> PrioNodePtrPrioCompare<span class="special">></span> <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="keyword">bool</span> <span class="special">></span> - <a name="idm45971705535696-bb"></a><span class="identifier">insert_unique_check</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> hint<span class="special">,</span> + <a name="idm51592-bb"></a><span class="identifier">insert_unique_check</span><span class="special">(</span><span class="identifier">const_node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> hint<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">KeyNodePtrCompare</span> comp<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">PrioType</span> <span class="special">&</span> prio<span class="special">,</span> <span class="identifier">PrioNodePtrPrioCompare</span> pcomp<span class="special">,</span> <a class="link" href="treap_algorithms/insert_commit_data.html" title="Struct insert_commit_data">insert_commit_data</a> <span class="special">&</span> commit_data<span class="special">)</span><span class="special">;</span></pre> @@ -460,7 +461,7 @@ <p>"commit_data" remains valid for a subsequent "insert_unique_commit" only if no more objects are inserted or erased from the set. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971705519344-bb"></a><span class="identifier">insert_unique_commit</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">,</span> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm51629-bb"></a><span class="identifier">insert_unique_commit</span><span class="special">(</span><span class="identifier">node_ptr</span> header<span class="special">,</span> <span class="identifier">node_ptr</span> new_node<span class="special">,</span> <span class="keyword">const</span> <a class="link" href="treap_algorithms/insert_commit_data.html" title="Struct insert_commit_data">insert_commit_data</a> <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>: "header" must be the header node of a tree. "commit_data" must have been obtained from a previous call to "insert_unique_check". No objects should have been inserted or erased from the set between the "insert_unique_check" that filled "commit_data" and the call to "insert_commit".</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts new_node in the set using the information obtained from the "commit_data" that a previous "insert_check" filled.</p> @@ -470,44 +471,41 @@ </li> <li class="listitem"> <pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodePtrCompare<span class="special">,</span> <span class="keyword">typename</span> PrioNodePtrPrioCompare<span class="special">></span> - <span class="keyword">static</span> <span class="keyword">bool</span> <a name="idm45971705510496-bb"></a><span class="identifier">transfer_unique</span><span class="special">(</span><span class="identifier">node_ptr</span> header1<span class="special">,</span> <span class="identifier">NodePtrCompare</span> comp<span class="special">,</span> + <span class="keyword">static</span> <span class="keyword">bool</span> <a name="idm51649-bb"></a><span class="identifier">transfer_unique</span><span class="special">(</span><span class="identifier">node_ptr</span> header1<span class="special">,</span> <span class="identifier">NodePtrCompare</span> comp<span class="special">,</span> <span class="identifier">PrioNodePtrPrioCompare</span> pcomp<span class="special">,</span> <span class="identifier">node_ptr</span> header2<span class="special">,</span> <span class="identifier">node_ptr</span> z<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: header1 and header2 must be the headers of trees tree1 and tree2 respectively, z a non-header node of tree1. NodePtrCompare is the comparison function of tree1..</p> <p><span class="bold"><strong>Effects</strong></span>: Transfers node "z" from tree1 to tree2 if tree1 does not contain a node that is equivalent to z.</p> <p><span class="bold"><strong>Returns</strong></span>: True if the node was trasferred, false otherwise.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comparison throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If the comparison throws. </p> </li> <li class="listitem"> <pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodePtrCompare<span class="special">,</span> <span class="keyword">typename</span> PrioNodePtrPrioCompare<span class="special">></span> - <span class="keyword">static</span> <span class="keyword">void</span> <a name="idm45971705499888-bb"></a><span class="identifier">transfer_equal</span><span class="special">(</span><span class="identifier">node_ptr</span> header1<span class="special">,</span> <span class="identifier">NodePtrCompare</span> comp<span class="special">,</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a name="idm51675-bb"></a><span class="identifier">transfer_equal</span><span class="special">(</span><span class="identifier">node_ptr</span> header1<span class="special">,</span> <span class="identifier">NodePtrCompare</span> comp<span class="special">,</span> <span class="identifier">PrioNodePtrPrioCompare</span> pcomp<span class="special">,</span> <span class="identifier">node_ptr</span> header2<span class="special">,</span> <span class="identifier">node_ptr</span> z<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: header1 and header2 must be the headers of trees tree1 and tree2 respectively, z a non-header node of tree1. NodePtrCompare is the comparison function of tree1..</p> <p><span class="bold"><strong>Effects</strong></span>: Transfers node "z" from tree1 to tree2.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comparison throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If the comparison throws. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">bool</span> <a name="idm45971705490208-bb"></a><span class="identifier">is_header</span><span class="special">(</span><span class="identifier">const_node_ptr</span> p<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">bool</span> <a name="idm51699-bb"></a><span class="identifier">is_header</span><span class="special">(</span><span class="identifier">const_node_ptr</span> p<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: p is a node of a tree.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns true if p is the header of the tree.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> </ol></div> </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="treap.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.treap_algorithms_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="treap_algorithms/insert_commit_data.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/treap_algorithms/insert_commit_data.html b/doc/html/boost/intrusive/treap_algorithms/insert_commit_data.html index 3e2ff3a96e..d555280f5e 100644 --- a/doc/html/boost/intrusive/treap_algorithms/insert_commit_data.html +++ b/doc/html/boost/intrusive/treap_algorithms/insert_commit_data.html @@ -6,9 +6,10 @@ <link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css"> <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="../treap_algorithms.html#id-1.3.20.42.41.3.4" title="Description"> +<link rel="up" href="../treap_algorithms.html#id-1.3.18.42.41.3.4" title="Description"> <link rel="prev" href="../treap_algorithms.html" title="Class template treap_algorithms"> <link rel="next" href="../make_treap_multiset.html" title="Struct template make_treap_multiset"> +<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="../treap_algorithms.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../treap_algorithms.html#id-1.3.20.42.41.3.4"><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_treap_multiset.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a> +<a accesskey="p" href="../treap_algorithms.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../treap_algorithms.html#id-1.3.18.42.41.3.4"><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_treap_multiset.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a> </div> <div class="refentry"> <a name="boost.intrusive.treap_algorithms.insert_commit_data"></a><div class="titlepage"></div> @@ -29,29 +30,26 @@ <h2><span class="refentrytitle">Struct insert_commit_data</span></h2> <p>boost::intrusive::treap_algorithms::insert_commit_data</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.treap_algorithms_hpp" title="Header <boost/intrusive/treap_algorithms.hpp>">boost/intrusive/treap_algorithms.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.treap_algorithms_hpp" title="Header <boost/intrusive/treap_algorithms.hpp>">boost/intrusive/treap_algorithms.hpp</a>> </span> <span class="keyword">struct</span> <a class="link" href="insert_commit_data.html" title="Struct insert_commit_data">insert_commit_data</a> <span class="special">{</span> <span class="special">}</span><span class="special">;</span></pre></div> <div class="refsect1"> -<a name="id-1.3.20.42.41.3.4.18.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.41.3.4.18.4"></a><h2>Description</h2> <p>This type is the information that will be filled by insert_unique_check </p> </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="../treap_algorithms.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../treap_algorithms.html#id-1.3.20.42.41.3.4"><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_treap_multiset.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a> +<a accesskey="p" href="../treap_algorithms.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../treap_algorithms.html#id-1.3.18.42.41.3.4"><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_treap_multiset.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a> </div> </body> </html> diff --git a/doc/html/boost/intrusive/treap_multiset.html b/doc/html/boost/intrusive/treap_multiset.html index 901a34ae10..a99f6f0e3a 100644 --- a/doc/html/boost/intrusive/treap_multiset.html +++ b/doc/html/boost/intrusive/treap_multiset.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.treap_set_hpp" title="Header <boost/intrusive/treap_set.hpp>"> <link rel="prev" href="make_treap_set.html" title="Struct template make_treap_set"> <link rel="next" href="treap_set.html" title="Class template treap_set"> +<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> @@ -29,8 +30,8 @@ <h2><span class="refentrytitle">Class template treap_multiset</span></h2> <p>boost::intrusive::treap_multiset</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.treap_set_hpp" title="Header <boost/intrusive/treap_set.hpp>">boost/intrusive/treap_set.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.treap_set_hpp" title="Header <boost/intrusive/treap_set.hpp>">boost/intrusive/treap_set.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="treap_multiset.html" title="Class template treap_multiset">treap_multiset</a> <span class="special">{</span> @@ -62,651 +63,574 @@ <span class="keyword">typedef</span> <span class="identifier">implementation_defined</span><span class="special">::</span><span class="identifier">node_algorithms</span> <a name="boost.intrusive.treap_multiset.node_algorithms"></a><span class="identifier">node_algorithms</span><span class="special">;</span> <span class="comment">// <a class="link" href="treap_multiset.html#boost.intrusive.treap_multisetconstruct-copy-destruct">construct/copy/destruct</a></span> - <a class="link" href="treap_multiset.html#idm45971704973104-bb"><span class="identifier">treap_multiset</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">explicit</span> <a class="link" href="treap_multiset.html#idm45971704969936-bb"><span class="identifier">treap_multiset</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span><span class="special">,</span> + <a class="link" href="treap_multiset.html#idm52781-bb"><span class="identifier">treap_multiset</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">explicit</span> <a class="link" href="treap_multiset.html#idm52789-bb"><span class="identifier">treap_multiset</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">priority_compare</span> <span class="special">&</span> <span class="special">=</span> <span class="identifier">priority_compare</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="treap_multiset.html#idm45971704963840-bb"><span class="identifier">treap_multiset</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="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> <span class="special">=</span> <span class="identifier">key_compare</span><span class="special">(</span><span class="special">)</span><span class="special">,</span> + <a class="link" href="treap_multiset.html#idm52798-bb"><span class="identifier">treap_multiset</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="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> <span class="special">=</span> <span class="identifier">key_compare</span><span class="special">(</span><span class="special">)</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">priority_compare</span> <span class="special">&</span> <span class="special">=</span> <span class="identifier">priority_compare</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="treap_multiset.html#idm45971704954368-bb"><span class="identifier">treap_multiset</span></a><span class="special">(</span><a class="link" href="treap_multiset.html" title="Class template treap_multiset">treap_multiset</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> - <a class="link" href="treap_multiset.html" title="Class template treap_multiset">treap_multiset</a> <span class="special">&</span> <a class="link" href="treap_multiset.html#idm45971704952128-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><a class="link" href="treap_multiset.html" title="Class template treap_multiset">treap_multiset</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> - <a class="link" href="treap_multiset.html#idm45971704949312-bb"><span class="special">~</span><span class="identifier">treap_multiset</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="treap_multiset.html#idm52814-bb"><span class="identifier">treap_multiset</span></a><span class="special">(</span><a class="link" href="treap_multiset.html" title="Class template treap_multiset">treap_multiset</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="treap_multiset.html" title="Class template treap_multiset">treap_multiset</a> <span class="special">&</span> <a class="link" href="treap_multiset.html#idm52821-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><a class="link" href="treap_multiset.html" title="Class template treap_multiset">treap_multiset</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="treap_multiset.html#idm52830-bb"><span class="special">~</span><span class="identifier">treap_multiset</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> - <span class="comment">// <a class="link" href="treap_multiset.html#idm45971705436288-bb">public member functions</a></span> - <span class="identifier">iterator</span> <a class="link" href="treap_multiset.html#idm45971705435728-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="treap_multiset.html#idm45971705431888-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="treap_multiset.html#idm45971705428048-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="treap_multiset.html#idm45971705424208-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="treap_multiset.html#idm45971705420368-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="treap_multiset.html#idm45971705416528-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">reverse_iterator</span> <a class="link" href="treap_multiset.html#idm45971705412688-bb"><span class="identifier">rbegin</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="identifier">const_reverse_iterator</span> <a class="link" href="treap_multiset.html#idm45971705408832-bb"><span class="identifier">rbegin</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_reverse_iterator</span> <a class="link" href="treap_multiset.html#idm45971705404976-bb"><span class="identifier">crbegin</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">reverse_iterator</span> <a class="link" href="treap_multiset.html#idm45971705401120-bb"><span class="identifier">rend</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="identifier">const_reverse_iterator</span> <a class="link" href="treap_multiset.html#idm45971705397264-bb"><span class="identifier">rend</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_reverse_iterator</span> <a class="link" href="treap_multiset.html#idm45971705393408-bb"><span class="identifier">crend</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="treap_multiset.html#idm45971705389552-bb"><span class="identifier">root</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="treap_multiset.html#idm45971705385680-bb"><span class="identifier">root</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="treap_multiset.html#idm45971705381808-bb"><span class="identifier">croot</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">key_compare</span> <a class="link" href="treap_multiset.html#idm45971705377936-bb"><span class="identifier">key_comp</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">value_compare</span> <a class="link" href="treap_multiset.html#idm45971705374080-bb"><span class="identifier">value_comp</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="treap_multiset.html#idm45971705370208-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="treap_multiset.html#idm45971705366384-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="treap_multiset.html#idm45971705362448-bb"><span class="identifier">swap</span></a><span class="special">(</span><a class="link" href="treap_multiset.html" title="Class template treap_multiset">treap_multiset</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="comment">// <a class="link" href="treap_multiset.html#idm51824-bb">public member functions</a></span> + <span class="identifier">iterator</span> <a class="link" href="treap_multiset.html#idm51825-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="treap_multiset.html#idm51834-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="treap_multiset.html#idm51843-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="treap_multiset.html#idm51852-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="treap_multiset.html#idm51861-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="treap_multiset.html#idm51870-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">reverse_iterator</span> <a class="link" href="treap_multiset.html#idm51879-bb"><span class="identifier">rbegin</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">const_reverse_iterator</span> <a class="link" href="treap_multiset.html#idm51888-bb"><span class="identifier">rbegin</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_reverse_iterator</span> <a class="link" href="treap_multiset.html#idm51897-bb"><span class="identifier">crbegin</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">reverse_iterator</span> <a class="link" href="treap_multiset.html#idm51906-bb"><span class="identifier">rend</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">const_reverse_iterator</span> <a class="link" href="treap_multiset.html#idm51915-bb"><span class="identifier">rend</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_reverse_iterator</span> <a class="link" href="treap_multiset.html#idm51924-bb"><span class="identifier">crend</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="treap_multiset.html#idm51933-bb"><span class="identifier">root</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="treap_multiset.html#idm51942-bb"><span class="identifier">root</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="treap_multiset.html#idm51951-bb"><span class="identifier">croot</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">key_compare</span> <a class="link" href="treap_multiset.html#idm51960-bb"><span class="identifier">key_comp</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">value_compare</span> <a class="link" href="treap_multiset.html#idm51969-bb"><span class="identifier">value_comp</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="treap_multiset.html#idm51978-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="treap_multiset.html#idm51987-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="treap_multiset.html#idm51996-bb"><span class="identifier">swap</span></a><span class="special">(</span><a class="link" href="treap_multiset.html" title="Class template treap_multiset">treap_multiset</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="treap_multiset.html#idm45971705357904-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="treap_multiset.html" title="Class template treap_multiset">treap_multiset</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="treap_multiset.html#idm52008-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="treap_multiset.html" title="Class template treap_multiset">treap_multiset</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="treap_multiset.html#idm45971705348848-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><a class="link" href="treap_multiset.html" title="Class template treap_multiset">treap_multiset</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="treap_multiset.html#idm45971705339952-bb"><span class="identifier">top</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="treap_multiset.html#idm45971705336096-bb"><span class="identifier">top</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="treap_multiset.html#idm45971705332240-bb"><span class="identifier">ctop</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">reverse_iterator</span> <a class="link" href="treap_multiset.html#idm45971705328384-bb"><span class="identifier">rtop</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="identifier">const_reverse_iterator</span> <a class="link" href="treap_multiset.html#idm45971705324512-bb"><span class="identifier">rtop</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_reverse_iterator</span> <a class="link" href="treap_multiset.html#idm45971705320640-bb"><span class="identifier">crtop</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">priority_compare</span> <a class="link" href="treap_multiset.html#idm45971705316768-bb"><span class="identifier">priority_comp</span></a><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="treap_multiset.html#idm45971705312896-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="identifier">reference</span><span class="special">)</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="treap_multiset.html#idm45971705306736-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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="treap_multiset.html#idm45971705299712-bb"><span class="identifier">insert</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">iterator</span> <a class="link" href="treap_multiset.html#idm45971705291856-bb"><span class="identifier">insert_before</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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">void</span> <a class="link" href="treap_multiset.html#idm45971705284576-bb"><span class="identifier">push_back</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">void</span> <a class="link" href="treap_multiset.html#idm45971705277968-bb"><span class="identifier">push_front</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">iterator</span> <a class="link" href="treap_multiset.html#idm45971705271360-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="identifier">iterator</span> <a class="link" href="treap_multiset.html#idm45971705265824-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="treap_multiset.html#idm45971705259536-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">void</span> <a class="link" href="treap_multiset.html#idm52030-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><a class="link" href="treap_multiset.html" title="Class template treap_multiset">treap_multiset</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="treap_multiset.html#idm52052-bb"><span class="identifier">top</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="treap_multiset.html#idm52061-bb"><span class="identifier">top</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="treap_multiset.html#idm52070-bb"><span class="identifier">ctop</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">reverse_iterator</span> <a class="link" href="treap_multiset.html#idm52079-bb"><span class="identifier">rtop</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">const_reverse_iterator</span> <a class="link" href="treap_multiset.html#idm52088-bb"><span class="identifier">rtop</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_reverse_iterator</span> <a class="link" href="treap_multiset.html#idm52097-bb"><span class="identifier">crtop</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">priority_compare</span> <a class="link" href="treap_multiset.html#idm52106-bb"><span class="identifier">priority_comp</span></a><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="treap_multiset.html#idm52115-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="identifier">reference</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="treap_multiset.html#idm52130-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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="treap_multiset.html#idm52147-bb"><span class="identifier">insert</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">iterator</span> <a class="link" href="treap_multiset.html#idm52166-bb"><span class="identifier">insert_before</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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">void</span> <a class="link" href="treap_multiset.html#idm52183-bb"><span class="identifier">push_back</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">void</span> <a class="link" href="treap_multiset.html#idm52198-bb"><span class="identifier">push_front</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">iterator</span> <a class="link" href="treap_multiset.html#idm52213-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="identifier">iterator</span> <a class="link" href="treap_multiset.html#idm52226-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="treap_multiset.html#idm52241-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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">size_type</span> <a class="link" href="treap_multiset.html#idm45971705253440-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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">size_type</span> <a class="link" href="treap_multiset.html#idm52256-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">KeyTypeKeyCompare</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="identifier">iterator</span> <a class="link" href="treap_multiset.html#idm45971705244880-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="identifier">iterator</span> <a class="link" href="treap_multiset.html#idm52277-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="identifier">iterator</span> <a class="link" href="treap_multiset.html#idm45971705236928-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="identifier">iterator</span> <a class="link" href="treap_multiset.html#idm52296-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="treap_multiset.html#idm45971705228224-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="treap_multiset.html#idm52317-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> KeyTypeKeyCompare<span class="special">,</span> <span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="identifier">size_type</span> <a class="link" href="treap_multiset.html#idm45971705219552-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">KeyTypeKeyCompare</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="treap_multiset.html#idm45971705209088-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="treap_multiset.html#idm45971705204224-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="treap_multiset.html#idm45971705197920-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="identifier">size_type</span> <a class="link" href="treap_multiset.html#idm52338-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">KeyTypeKeyCompare</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="treap_multiset.html#idm52363-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="treap_multiset.html#idm52374-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="treap_multiset.html#idm52388-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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">size_type</span> <a class="link" href="treap_multiset.html#idm45971705192848-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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="treap_multiset.html#idm45971705183792-bb"><span class="identifier">lower_bound</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="treap_multiset.html#idm52392-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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="treap_multiset.html#idm52413-bb"><span class="identifier">lower_bound</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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a class="link" href="treap_multiset.html#idm45971705179040-bb"><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> - <span class="identifier">const_iterator</span> <a class="link" href="treap_multiset.html#idm45971705172192-bb"><span class="identifier">lower_bound</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="treap_multiset.html#idm52417-bb"><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">const_iterator</span> <a class="link" href="treap_multiset.html#idm52426-bb"><span class="identifier">lower_bound</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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">const_iterator</span> <a class="link" href="treap_multiset.html#idm45971705167168-bb"><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="treap_multiset.html#idm45971705160048-bb"><span class="identifier">upper_bound</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="treap_multiset.html#idm52430-bb"><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="treap_multiset.html#idm52439-bb"><span class="identifier">upper_bound</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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a class="link" href="treap_multiset.html#idm45971705155296-bb"><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> - <span class="identifier">const_iterator</span> <a class="link" href="treap_multiset.html#idm45971705146592-bb"><span class="identifier">upper_bound</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="treap_multiset.html#idm52443-bb"><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">const_iterator</span> <a class="link" href="treap_multiset.html#idm52464-bb"><span class="identifier">upper_bound</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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">const_iterator</span> <a class="link" href="treap_multiset.html#idm45971705141568-bb"><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="treap_multiset.html#idm45971705132592-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">const_iterator</span> <a class="link" href="treap_multiset.html#idm52468-bb"><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="treap_multiset.html#idm52489-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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a class="link" href="treap_multiset.html#idm45971705127856-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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> - <span class="identifier">const_iterator</span> <a class="link" href="treap_multiset.html#idm45971705119120-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="treap_multiset.html#idm52493-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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">const_iterator</span> <a class="link" href="treap_multiset.html#idm52514-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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">const_iterator</span> <a class="link" href="treap_multiset.html#idm45971705114112-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">KeyTypeKeyCompare</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="treap_multiset.html#idm45971705105104-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="treap_multiset.html#idm52518-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">KeyTypeKeyCompare</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="treap_multiset.html#idm52539-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> KeyTypeKeyCompare<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="treap_multiset.html#idm45971705100272-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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="treap_multiset.html#idm52543-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">KeyTypeKeyCompare</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="treap_multiset.html#idm45971705091440-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="treap_multiset.html#idm52564-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> KeyTypeKeyCompare<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="treap_multiset.html#idm45971705086320-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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <a class="link" href="treap_multiset.html#idm52568-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">KeyTypeKeyCompare</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="treap_multiset.html#idm45971705077200-bb"><span class="identifier">bounded_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="identifier">key_type</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="treap_multiset.html#idm52589-bb"><span class="identifier">bounded_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="identifier">key_type</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</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> KeyTypeKeyCompare<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="treap_multiset.html#idm45971705064768-bb"><span class="identifier">bounded_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="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> + <a class="link" href="treap_multiset.html#idm52599-bb"><span class="identifier">bounded_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="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</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="treap_multiset.html#idm45971705047968-bb"><span class="identifier">bounded_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="identifier">key_type</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <a class="link" href="treap_multiset.html#idm52641-bb"><span class="identifier">bounded_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="identifier">key_type</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</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> KeyTypeKeyCompare<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="treap_multiset.html#idm45971705035248-bb"><span class="identifier">bounded_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="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> + <a class="link" href="treap_multiset.html#idm52651-bb"><span class="identifier">bounded_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="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="treap_multiset.html#idm45971705018160-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="treap_multiset.html#idm45971705012672-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">pointer</span> <a class="link" href="treap_multiset.html#idm45971705007184-bb"><span class="identifier">unlink_leftmost_without_rebalance</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="treap_multiset.html#idm45971705002272-bb"><span class="identifier">replace_node</span></a><span class="special">(</span><span class="identifier">iterator</span><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">void</span> <a class="link" href="treap_multiset.html#idm45971704995008-bb"><span class="identifier">remove_node</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">template</span><span class="special"><</span><span class="keyword">class</span> <span class="special">...</span> Options2<span class="special">></span> <span class="keyword">void</span> <a class="link" href="treap_multiset.html#idm45971704989168-bb"><span class="identifier">merge</span></a><span class="special">(</span><a class="link" href="treap_multiset.html" title="Class template treap_multiset">treap_multiset</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</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">class</span> <span class="special">...</span> Options2<span class="special">></span> <span class="keyword">void</span> <a class="link" href="treap_multiset.html#idm45971704981216-bb"><span class="identifier">merge</span></a><span class="special">(</span><a class="link" href="treap_set.html" title="Class template treap_set">treap_set</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="treap_multiset.html#idm52693-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="treap_multiset.html#idm52697-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">pointer</span> <a class="link" href="treap_multiset.html#idm52701-bb"><span class="identifier">unlink_leftmost_without_rebalance</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="treap_multiset.html#idm52712-bb"><span class="identifier">replace_node</span></a><span class="special">(</span><span class="identifier">iterator</span><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">void</span> <a class="link" href="treap_multiset.html#idm52729-bb"><span class="identifier">remove_node</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">template</span><span class="special"><</span><span class="keyword">class</span> <span class="special">...</span> Options2<span class="special">></span> <span class="keyword">void</span> <a class="link" href="treap_multiset.html#idm52743-bb"><span class="identifier">merge</span></a><span class="special">(</span><a class="link" href="treap_multiset.html" title="Class template treap_multiset">treap_multiset</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</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">class</span> <span class="special">...</span> Options2<span class="special">></span> <span class="keyword">void</span> <a class="link" href="treap_multiset.html#idm52762-bb"><span class="identifier">merge</span></a><span class="special">(</span><a class="link" href="treap_set.html" title="Class template treap_set">treap_set</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> - <span class="comment">// <a class="link" href="treap_multiset.html#idm45971704945408-bb">public static functions</a></span> - <span class="keyword">static</span> <a class="link" href="treap_multiset.html" title="Class template treap_multiset">treap_multiset</a> <span class="special">&</span> <a class="link" href="treap_multiset.html#idm45971704944848-bb"><span class="identifier">container_from_end_iterator</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="comment">// <a class="link" href="treap_multiset.html#idm52839-bb">public static functions</a></span> + <span class="keyword">static</span> <a class="link" href="treap_multiset.html" title="Class template treap_multiset">treap_multiset</a> <span class="special">&</span> <a class="link" href="treap_multiset.html#idm52840-bb"><span class="identifier">container_from_end_iterator</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> <span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="treap_multiset.html" title="Class template treap_multiset">treap_multiset</a> <span class="special">&</span> - <a class="link" href="treap_multiset.html#idm45971704938832-bb"><span class="identifier">container_from_end_iterator</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">static</span> <a class="link" href="treap_multiset.html" title="Class template treap_multiset">treap_multiset</a> <span class="special">&</span> <a class="link" href="treap_multiset.html#idm45971704932656-bb"><span class="identifier">container_from_iterator</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <a class="link" href="treap_multiset.html#idm52845-bb"><span class="identifier">container_from_end_iterator</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">static</span> <a class="link" href="treap_multiset.html" title="Class template treap_multiset">treap_multiset</a> <span class="special">&</span> <a class="link" href="treap_multiset.html#idm52850-bb"><span class="identifier">container_from_iterator</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> <span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="treap_multiset.html" title="Class template treap_multiset">treap_multiset</a> <span class="special">&</span> - <a class="link" href="treap_multiset.html#idm45971704926688-bb"><span class="identifier">container_from_iterator</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">static</span> <span class="identifier">iterator</span> <a class="link" href="treap_multiset.html#idm45971704920560-bb"><span class="identifier">s_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_iterator</span> <a class="link" href="treap_multiset.html#idm45971704913472-bb"><span class="identifier">s_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="keyword">void</span> <a class="link" href="treap_multiset.html#idm45971704906384-bb"><span class="identifier">init_node</span></a><span class="special">(</span><span class="identifier">reference</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <a class="link" href="treap_multiset.html#idm52855-bb"><span class="identifier">container_from_iterator</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">static</span> <span class="identifier">iterator</span> <a class="link" href="treap_multiset.html#idm52860-bb"><span class="identifier">s_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_iterator</span> <a class="link" href="treap_multiset.html#idm52864-bb"><span class="identifier">s_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="keyword">void</span> <a class="link" href="treap_multiset.html#idm52868-bb"><span class="identifier">init_node</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="comment">// public data members</span> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">bool</span> <span class="identifier">constant_time_size</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.42.5.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.42.5.4"></a><h2>Description</h2> <p>The class template <a class="link" href="treap_multiset.html" title="Class template treap_multiset">treap_multiset</a> is an intrusive container, that mimics most of the interface of std::treap_multiset as described in the C++ standard.</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> <p>The container supports the following options: <code class="computeroutput">base_hook<>/member_hook<>/value_traits<></code>, <code class="computeroutput">constant_time_size<></code>, <code class="computeroutput">size_type<></code>, <code class="computeroutput">compare<></code>, <code class="computeroutput">priority<></code> and <code class="computeroutput">priority_of_value<></code> </p> <div class="refsect2"> -<a name="id-1.3.20.42.42.5.4.5"></a><h3> +<a name="id-1.3.18.42.42.5.4.5"></a><h3> <a name="boost.intrusive.treap_multisetconstruct-copy-destruct"></a><code class="computeroutput">treap_multiset</code> public construct/copy/destruct</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> <li class="listitem"> -<pre class="literallayout"><a name="idm45971704973104-bb"></a><span class="identifier">treap_multiset</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm52781-bb"></a><span class="identifier">treap_multiset</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Constructs an empty container.</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 constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor of the value_compare/priority_compare objects throw. Basic guarantee. </p> +<p><span class="bold"><strong>Throws</strong></span>: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor of the value_compare/priority_compare objects throw. Basic guarantee. </p> </li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">explicit</span> <a name="idm45971704969936-bb"></a><span class="identifier">treap_multiset</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> cmp<span class="special">,</span> +<li class="listitem"><pre class="literallayout"><span class="keyword">explicit</span> <a name="idm52789-bb"></a><span class="identifier">treap_multiset</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> cmp<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">priority_compare</span> <span class="special">&</span> pcmp <span class="special">=</span> <span class="identifier">priority_compare</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> -<p><span class="bold"><strong>Effects</strong></span>: Constructs an empty container.</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 constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor of the value_compare/priority_compare objects throw. Basic guarantee. </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> - <a name="idm45971704963840-bb"></a><span class="identifier">treap_multiset</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="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></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="idm52798-bb"></a><span class="identifier">treap_multiset</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="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> cmp <span class="special">=</span> <span class="identifier">key_compare</span><span class="special">(</span><span class="special">)</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">priority_compare</span> <span class="special">&</span> pcmp <span class="special">=</span> <span class="identifier">priority_compare</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> -<p><span class="bold"><strong>Requires</strong></span>: Dereferencing iterator must yield an lvalue of type value_type. cmp must be a comparison function that induces a strict weak ordering.</p> -<p><span class="bold"><strong>Effects</strong></span>: Constructs an empty container and inserts elements from [b, e).</p> -<p><span class="bold"><strong>Complexity</strong></span>: Linear in N if [b, e) is already sorted using comp and otherwise N * log N, where N is the distance between first and last.</p> -<p><span class="bold"><strong>Throws</strong></span>: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor/operator() of the key_compare/priority_compare objects throw. Basic guarantee. </p> -</li> + <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></li> <li class="listitem"> -<pre class="literallayout"><a name="idm45971704954368-bb"></a><span class="identifier">treap_multiset</span><span class="special">(</span><a class="link" href="treap_multiset.html" title="Class template treap_multiset">treap_multiset</a> <span class="special">&&</span> x<span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm52814-bb"></a><span class="identifier">treap_multiset</span><span class="special">(</span><a class="link" href="treap_multiset.html" title="Class template treap_multiset">treap_multiset</a> <span class="special">&&</span> x<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: to-do </p> </li> <li class="listitem"> -<pre class="literallayout"><a class="link" href="treap_multiset.html" title="Class template treap_multiset">treap_multiset</a> <span class="special">&</span> <a name="idm45971704952128-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><a class="link" href="treap_multiset.html" title="Class template treap_multiset">treap_multiset</a> <span class="special">&&</span> x<span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a class="link" href="treap_multiset.html" title="Class template treap_multiset">treap_multiset</a> <span class="special">&</span> <a name="idm52821-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><a class="link" href="treap_multiset.html" title="Class template treap_multiset">treap_multiset</a> <span class="special">&&</span> x<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: to-do </p> </li> <li class="listitem"> -<pre class="literallayout"><a name="idm45971704949312-bb"></a><span class="special">~</span><span class="identifier">treap_multiset</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm52830-bb"></a><span class="special">~</span><span class="identifier">treap_multiset</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 set are not deleted (i.e. no destructors are called), but the nodes according to the <code class="computeroutput"><a class="link" href="value_traits.html" title="Struct template value_traits">value_traits</a></code> template parameter are reinitialized and thus can be reused.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to elements contained in *this.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> </ol></div> </div> <div class="refsect2"> -<a name="id-1.3.20.42.42.5.4.6"></a><h3> -<a name="idm45971705436288-bb"></a><code class="computeroutput">treap_multiset</code> public member functions</h3> +<a name="id-1.3.18.42.42.5.4.6"></a><h3> +<a name="idm51824-bb"></a><code class="computeroutput">treap_multiset</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="idm45971705435728-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="idm51825-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971705431888-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="idm51834-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971705428048-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="idm51843-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971705424208-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="idm51852-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971705420368-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="idm51861-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971705416528-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="idm51870-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">reverse_iterator</span> <a name="idm45971705412688-bb"></a><span class="identifier">rbegin</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">reverse_iterator</span> <a name="idm51879-bb"></a><span class="identifier">rbegin</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 a reverse_iterator pointing to the beginning of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45971705408832-bb"></a><span class="identifier">rbegin</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_reverse_iterator</span> <a name="idm51888-bb"></a><span class="identifier">rbegin</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_reverse_iterator pointing to the beginning of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45971705404976-bb"></a><span class="identifier">crbegin</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_reverse_iterator</span> <a name="idm51897-bb"></a><span class="identifier">crbegin</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_reverse_iterator pointing to the beginning of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">reverse_iterator</span> <a name="idm45971705401120-bb"></a><span class="identifier">rend</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">reverse_iterator</span> <a name="idm51906-bb"></a><span class="identifier">rend</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 a reverse_iterator pointing to the end of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45971705397264-bb"></a><span class="identifier">rend</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_reverse_iterator</span> <a name="idm51915-bb"></a><span class="identifier">rend</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_reverse_iterator pointing to the end of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45971705393408-bb"></a><span class="identifier">crend</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_reverse_iterator</span> <a name="idm51924-bb"></a><span class="identifier">crend</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_reverse_iterator pointing to the end of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971705389552-bb"></a><span class="identifier">root</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="idm51933-bb"></a><span class="identifier">root</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 a iterator pointing to the root node of the container or end() if not present.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971705385680-bb"></a><span class="identifier">root</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="idm51942-bb"></a><span class="identifier">root</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 root node of the container or cend() if not present.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971705381808-bb"></a><span class="identifier">croot</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="idm51951-bb"></a><span class="identifier">croot</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 root node of the container or cend() if not present.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">key_compare</span> <a name="idm45971705377936-bb"></a><span class="identifier">key_comp</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_compare</span> <a name="idm51960-bb"></a><span class="identifier">key_comp</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_compare object used by the container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: If key_compare copy-constructor throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If key_compare copy-constructor throws. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">value_compare</span> <a name="idm45971705374080-bb"></a><span class="identifier">value_comp</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">value_compare</span> <a name="idm51969-bb"></a><span class="identifier">value_comp</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 value_compare object used by the container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: If value_compare copy-constructor throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If value_compare copy-constructor throws. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">bool</span> <a name="idm45971705370208-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="idm51978-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>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971705366384-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="idm51987-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to elements contained in *this if constant-time size option is disabled. Constant time otherwise.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971705362448-bb"></a><span class="identifier">swap</span><span class="special">(</span><a class="link" href="treap_multiset.html" title="Class template treap_multiset">treap_multiset</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="idm51996-bb"></a><span class="identifier">swap</span><span class="special">(</span><a class="link" href="treap_multiset.html" title="Class template treap_multiset">treap_multiset</a> <span class="special">&</span> other<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Swaps the contents of two treaps.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comparison functor's swap call throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If the comparison functor's swap call throws. </p> </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="idm45971705357904-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="treap_multiset.html" title="Class template treap_multiset">treap_multiset</a> <span class="special">&</span> src<span class="special">,</span> <span class="identifier">Cloner</span> cloner<span class="special">,</span> + <span class="keyword">void</span> <a name="idm52008-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="treap_multiset.html" title="Class template treap_multiset">treap_multiset</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 equivalent to the original nodes.</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. Copies the predicate from the source container.</p> <p>If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to erased plus inserted elements.</p> -<p><span class="bold"><strong>Throws</strong></span>: If cloner throws or predicate copy assignment throws. Basic guarantee. </p> +<p><span class="bold"><strong>Throws</strong></span>: If cloner throws or predicate copy assignment throws. Basic guarantee. </p> </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="idm45971705348848-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><a class="link" href="treap_multiset.html" title="Class template treap_multiset">treap_multiset</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="idm52030-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><a class="link" href="treap_multiset.html" title="Class template treap_multiset">treap_multiset</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 equivalent to the original nodes.</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. Copies the predicate from the source container.</p> <p>If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to erased plus inserted elements.</p> -<p><span class="bold"><strong>Throws</strong></span>: If cloner throws or predicate copy assignment throws. Basic guarantee. </p> +<p><span class="bold"><strong>Throws</strong></span>: If cloner throws or predicate copy assignment throws. Basic guarantee. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971705339952-bb"></a><span class="identifier">top</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="idm52052-bb"></a><span class="identifier">top</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 highest priority object of the treap.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971705336096-bb"></a><span class="identifier">top</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="idm52061-bb"></a><span class="identifier">top</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 highest priority object of the treap..</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971705332240-bb"></a><span class="identifier">ctop</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="idm52070-bb"></a><span class="identifier">ctop</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 highest priority object of the treap..</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">reverse_iterator</span> <a name="idm45971705328384-bb"></a><span class="identifier">rtop</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">reverse_iterator</span> <a name="idm52079-bb"></a><span class="identifier">rtop</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 a reverse_iterator pointing to the highest priority object of the reversed treap.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45971705324512-bb"></a><span class="identifier">rtop</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_reverse_iterator</span> <a name="idm52088-bb"></a><span class="identifier">rtop</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_reverse_iterator pointing to the highest priority objec of the reversed treap.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45971705320640-bb"></a><span class="identifier">crtop</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_reverse_iterator</span> <a name="idm52097-bb"></a><span class="identifier">crtop</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_reverse_iterator pointing to the highest priority object of the reversed treap.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">priority_compare</span> <a name="idm45971705316768-bb"></a><span class="identifier">priority_comp</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">priority_compare</span> <a name="idm52106-bb"></a><span class="identifier">priority_comp</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 a const_reverse_iterator pointing to the highest priority object of the reversed treap.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971705312896-bb"></a><span class="identifier">insert</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="idm52115-bb"></a><span class="identifier">insert</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 value into the container before the upper bound.</p> <p><span class="bold"><strong>Complexity</strong></span>: Average complexity for insert element is at most logarithmic.</p> <p><span class="bold"><strong>Throws</strong></span>: If the internal key_compare or priority_compare functions throw. Strong guarantee.</p> -<p><span class="bold"><strong>Note</strong></span>: Does not affect the validity of iterators and references. No copy-constructors are called. </p> +<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">iterator</span> <a name="idm45971705306736-bb"></a><span class="identifier">insert</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<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="idm52130-bb"></a><span class="identifier">insert</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<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, and "hint" must be a valid iterator.</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts x into the container, using "hint" as a hint to where it will be inserted. If "hint" is the upper_bound the insertion takes constant time (two comparisons in the worst case)</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic in general, but it is amortized constant time if t is inserted immediately before hint.</p> <p><span class="bold"><strong>Throws</strong></span>: If the internal key_compare or priority_compare functions throw. Strong guarantee.</p> -<p><span class="bold"><strong>Note</strong></span>: Does not affect the validity of iterators and references. No copy-constructors are called. </p> +<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="idm45971705299712-bb"></a><span class="identifier">insert</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="idm52147-bb"></a><span class="identifier">insert</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>: Inserts a each element of a range into the container before the upper bound of the key of each element.</p> <p><span class="bold"><strong>Complexity</strong></span>: Insert range is in general O(N * log(N)), where N is the size of the range. However, it is linear in N if the range is already sorted by key_comp().</p> <p><span class="bold"><strong>Throws</strong></span>: If the internal key_compare or priority_compare functions throw. Strong guarantee.</p> -<p><span class="bold"><strong>Note</strong></span>: Does not affect the validity of iterators and references. No copy-constructors are called. </p> +<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">iterator</span> <a name="idm45971705291856-bb"></a><span class="identifier">insert_before</span><span class="special">(</span><span class="identifier">const_iterator</span> pos<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="idm52166-bb"></a><span class="identifier">insert_before</span><span class="special">(</span><span class="identifier">const_iterator</span> pos<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, "pos" must be a valid iterator (or end) and must be the succesor of value once inserted according to the predicate</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts x into the container before "pos".</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: If the internal priority_compare function throws. Strong guarantee.</p> -<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if "pos" is not the successor of "value" container ordering invariant will be broken. This is a low-level function to be used only for performance reasons by advanced users. </p> +<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if "pos" is not the successor of "value" container ordering invariant will be broken. This is a low-level function to be used only for performance reasons by advanced users. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971705284576-bb"></a><span class="identifier">push_back</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">void</span> <a name="idm52183-bb"></a><span class="identifier">push_back</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 it must be no less than the greatest inserted key</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts x into the container in the last position.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: If the internal priority_compare function throws. Strong guarantee.</p> -<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if value is less than the greatest inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users. </p> +<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if value is less than the greatest inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971705277968-bb"></a><span class="identifier">push_front</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">void</span> <a name="idm52198-bb"></a><span class="identifier">push_front</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 it must be no greater than the minimum inserted key</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts x into the container in the first position.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: If the internal priority_compare function throws. Strong guarantee.</p> -<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if value is greater than the minimum inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users. </p> +<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if value is greater than the minimum inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971705271360-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="identifier">iterator</span> <a name="idm52213-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 complexity for erase element is constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: if the internal priority_compare function throws. Strong guarantee.</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> +<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">iterator</span> <a name="idm45971705265824-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="identifier">iterator</span> <a name="idm52226-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 complexity for erase range is at most O(log(size() + N)), where N is the number of elements in the range.</p> <p><span class="bold"><strong>Throws</strong></span>: if the internal priority_compare function throws. Strong guarantee.</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> +<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="idm45971705259536-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="idm52241-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>: O(log(size() + N).</p> <p><span class="bold"><strong>Throws</strong></span>: if the internal priority_compare function throws. Strong guarantee.</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> +<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> KeyType<span class="special">,</span> <span class="keyword">typename</span> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971705253440-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <span class="identifier">size_type</span> <a name="idm52256-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Erases all the elements with the given key. according to the comparison functor "comp".</p> <p><span class="bold"><strong>Returns</strong></span>: The number of erased elements.</p> <p><span class="bold"><strong>Complexity</strong></span>: O(log(size() + N).</p> <p><span class="bold"><strong>Throws</strong></span>: if the internal priority_compare function throws. Equivalent guarantee to <span class="emphasis"><em>while(beg != end) erase(beg++);</em></span></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> +<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="identifier">iterator</span> <a name="idm45971705244880-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="identifier">iterator</span> <a name="idm52277-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 complexity for erase element is constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: if the internal priority_compare function throws. Strong guarantee.</p> -<p><span class="bold"><strong>Note</strong></span>: Invalidates the iterators to the erased elements. </p> +<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">template</span><span class="special"><</span><span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="identifier">iterator</span> <a name="idm45971705236928-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">iterator</span> <a name="idm52296-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> <p><span class="bold"><strong>Complexity</strong></span>: Average complexity for erase range is at most O(log(size() + N)), where N is the number of elements in the range.</p> <p><span class="bold"><strong>Throws</strong></span>: if the internal priority_compare function throws. Strong guarantee.</p> -<p><span class="bold"><strong>Note</strong></span>: Invalidates the iterators to the erased elements. </p> +<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">template</span><span class="special"><</span><span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971705228224-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="idm52317-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> <p><span class="bold"><strong>Complexity</strong></span>: O(log(size() + N).</p> <p><span class="bold"><strong>Throws</strong></span>: if the priority_compare function throws then weak guarantee and heap invariants are broken. The safest thing would be to clear or destroy the container.</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> +<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> KeyType<span class="special">,</span> <span class="keyword">typename</span> KeyTypeKeyCompare<span class="special">,</span> <span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971705219552-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">KeyTypeKeyCompare</span> comp<span class="special">,</span> + <span class="identifier">size_type</span> <a name="idm52338-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">KeyTypeKeyCompare</span> comp<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 "comp". Disposer::operator()(pointer) is called for the removed elements.</p> <p><span class="bold"><strong>Returns</strong></span>: The number of erased elements.</p> <p><span class="bold"><strong>Complexity</strong></span>: O(log(size() + N).</p> <p><span class="bold"><strong>Throws</strong></span>: if the priority_compare function throws then weak guarantee and heap invariants are broken. The safest thing would be to clear or destroy the container.</p> -<p><span class="bold"><strong>Note</strong></span>: Invalidates the iterators to the erased elements. </p> +<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="idm45971705209088-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="idm52363-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> +<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="idm45971705204224-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="idm52374-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>Effects</strong></span>: Erases all of the elements calling disposer(p) for each node to be erased. <span class="bold"><strong>Complexity</strong></span>: Average complexity for is at most O(log(size() + N)), where N is the number of elements in the container.</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. Calls N times to disposer functor. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">size_type</span> <a name="idm45971705197920-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>: Logarithmic to the number of elements contained plus lineal to number of objects with the given value.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Note</strong></span>: Invalidates the iterators (but not the references) to the erased elements. Calls N times to disposer functor. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">size_type</span> <a name="idm52388-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></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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971705192848-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> + <span class="identifier">size_type</span> <a name="idm52392-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns the number of contained elements with the given key</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic to the number of elements contained plus lineal to number of objects with the given key.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971705183792-bb"></a><span class="identifier">lower_bound</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 an iterator to the first element whose key is not less than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> 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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a name="idm45971705179040-bb"></a><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Effects</strong></span>: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971705172192-bb"></a><span class="identifier">lower_bound</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 an iterator to the first element whose key is not less than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> 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> KeyTypeKeyCompare<span class="special">></span> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm52413-bb"></a><span class="identifier">lower_bound</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></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> KeyTypeKeyCompare<span class="special">></span> + <span class="identifier">iterator</span> <a name="idm52417-bb"></a><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm52426-bb"></a><span class="identifier">lower_bound</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></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> KeyTypeKeyCompare<span class="special">></span> <span class="identifier">const_iterator</span> - <a name="idm45971705167168-bb"></a><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Effects</strong></span>: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971705160048-bb"></a><span class="identifier">upper_bound</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 an iterator to the first element whose key is greater than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> -</li> + <a name="idm52430-bb"></a><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm52439-bb"></a><span class="identifier">upper_bound</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></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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a name="idm45971705155296-bb"></a><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <span class="identifier">iterator</span> <a name="idm52443-bb"></a><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns an iterator to the first element whose key is greater than k according to comp or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971705146592-bb"></a><span class="identifier">upper_bound</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 an iterator to the first element whose key is greater than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm52464-bb"></a><span class="identifier">upper_bound</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></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> KeyTypeKeyCompare<span class="special">></span> <span class="identifier">const_iterator</span> - <a name="idm45971705141568-bb"></a><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> + <a name="idm52468-bb"></a><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns an iterator to the first element whose key is greater than k according to comp or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971705132592-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 whose key is k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm52489-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></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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a name="idm45971705127856-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <span class="identifier">iterator</span> <a name="idm52493-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Finds an iterator to the first element whose key is k or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971705119120-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 an iterator to the first element whose key is k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm52514-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></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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">const_iterator</span> <a name="idm45971705114112-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> + <span class="identifier">const_iterator</span> <a name="idm52518-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Finds an iterator to the first element whose key is k or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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="idm45971705105104-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>: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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="idm52539-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></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> KeyTypeKeyCompare<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="idm45971705100272-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <a name="idm52543-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">></span> -<a name="idm45971705091440-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>: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">></span> +<a name="idm52564-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></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> KeyTypeKeyCompare<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="idm45971705086320-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> + <a name="idm52568-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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="idm45971705077200-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> upper_key<span class="special">,</span> - <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: <code class="computeroutput">upper_key</code> shall not precede <code class="computeroutput">lower_key</code> according to key_compare. [key_comp()(upper_key, lower_key) shall be false]</p> -<p>If <code class="computeroutput">lower_key</code> is equivalent to <code class="computeroutput">upper_key</code> [!key_comp()(upper_key, lower_key) && !key_comp()(lower_key, upper_key)] then ('left_closed' || 'right_closed') must be false.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns an a pair with the following criteria:</p> -<p>first = lower_bound(lower_key) if left_closed, upper_bound(lower_key) otherwise</p> -<p>second = upper_bound(upper_key) if right_closed, lower_bound(upper_key) otherwise</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws.</p> -<p><span class="bold"><strong>Note</strong></span>: This function can be more efficient than calling upper_bound and lower_bound for lower_value and upper_value.</p> -<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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="idm52589-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> upper_key<span class="special">,</span> + <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span><span class="special">;</span></pre></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> KeyTypeKeyCompare<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="idm45971705064768-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> + <a name="idm52599-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span> comp<span class="special">,</span> <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: <code class="computeroutput">lower_key</code> is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, lower_key) if left_closed is true, with respect to !comp(lower_key, nk) otherwise.</p> <p><code class="computeroutput">upper_key</code> is a value such that <code class="computeroutput">*this</code> is partitioned with respect to !comp(upper_key, nk) if right_closed is true, with respect to comp(nk, upper_key) otherwise.</p> @@ -718,26 +642,15 @@ <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> <p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws.</p> <p><span class="bold"><strong>Note</strong></span>: This function can be more efficient than calling upper_bound and lower_bound for lower_key and upper_key.</p> -<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </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">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">></span> -<a name="idm45971705047968-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> upper_key<span class="special">,</span> - <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: <code class="computeroutput">upper_key</code> shall not precede <code class="computeroutput">lower_key</code> according to key_compare. [key_comp()(upper_key, lower_key) shall be false]</p> -<p>If <code class="computeroutput">lower_key</code> is equivalent to <code class="computeroutput">upper_key</code> [!key_comp()(upper_key, lower_key) && !key_comp()(lower_key, upper_key)] then ('left_closed' || 'right_closed') must be false.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns an a pair with the following criteria:</p> -<p>first = lower_bound(lower_key) if left_closed, upper_bound(lower_key) otherwise</p> -<p>second = upper_bound(upper_key) if right_closed, lower_bound(upper_key) otherwise</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws.</p> -<p><span class="bold"><strong>Note</strong></span>: This function can be more efficient than calling upper_bound and lower_bound for lower_value and upper_value.</p> -<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </p> +<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </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">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">></span> +<a name="idm52641-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> upper_key<span class="special">,</span> + <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></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> KeyTypeKeyCompare<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="idm45971705035248-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> + <a name="idm52651-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span> comp<span class="special">,</span> <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: <code class="computeroutput">lower_key</code> is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, lower_key) if left_closed is true, with respect to !comp(lower_key, nk) otherwise.</p> <p><code class="computeroutput">upper_key</code> is a value such that <code class="computeroutput">*this</code> is partitioned with respect to !comp(upper_key, nk) if right_closed is true, with respect to comp(nk, upper_key) otherwise.</p> @@ -749,135 +662,75 @@ <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> <p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws.</p> <p><span class="bold"><strong>Note</strong></span>: This function can be more efficient than calling upper_bound and lower_bound for lower_key and upper_key.</p> -<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </p> +<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm52693-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm52697-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></li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971705018160-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 set of appropriate type. Otherwise the behavior is undefined.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns: a valid iterator i belonging to the set 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_iterator</span> <a name="idm45971705012672-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 set of appropriate type. Otherwise the behavior is undefined.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns: a valid const_iterator i belonging to the set 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">pointer</span> <a name="idm45971705007184-bb"></a><span class="identifier">unlink_leftmost_without_rebalance</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">pointer</span> <a name="idm52701-bb"></a><span class="identifier">unlink_leftmost_without_rebalance</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>: Unlinks the leftmost node from the container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Average complexity is constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Notes</strong></span>: This function breaks the container and the container can only be used for more unlink_leftmost_without_rebalance calls. This function is normally used to achieve a step by step controlled destruction of the container. </p> +<p><span class="bold"><strong>Notes</strong></span>: This function breaks the container and the container can only be used for more unlink_leftmost_without_rebalance calls. This function is normally used to achieve a step by step controlled destruction of the container. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971705002272-bb"></a><span class="identifier">replace_node</span><span class="special">(</span><span class="identifier">iterator</span> replace_this<span class="special">,</span> <span class="identifier">reference</span> with_this<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">void</span> <a name="idm52712-bb"></a><span class="identifier">replace_node</span><span class="special">(</span><span class="identifier">iterator</span> replace_this<span class="special">,</span> <span class="identifier">reference</span> with_this<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: replace_this must be a valid iterator of *this and with_this must not be inserted in any container.</p> <p><span class="bold"><strong>Effects</strong></span>: Replaces replace_this in its position in the container with with_this. The container does not need to be rebalanced.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: This function will break container ordering invariants if with_this is not equivalent to *replace_this according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing or comparison is needed. </p> +<p><span class="bold"><strong>Note</strong></span>: This function will break container ordering invariants if with_this is not equivalent to *replace_this according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing or comparison is needed. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971704995008-bb"></a><span class="identifier">remove_node</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">void</span> <a name="idm52729-bb"></a><span class="identifier">remove_node</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>Effects</strong></span>: removes "value" from the container.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic time.</p> <p><span class="bold"><strong>Note</strong></span>: This static function is only usable with non-constant time size containers that have stateless comparison functors.</p> -<p>If the user calls this function with a constant time size container or stateful comparison functor a compilation error will be issued. </p> +<p>If the user calls this function with a constant time size container or stateful comparison functor a compilation error will be issued. </p> </li> <li class="listitem"> <pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="special">...</span> Options2<span class="special">></span> - <span class="keyword">void</span> <a name="idm45971704989168-bb"></a><span class="identifier">merge</span><span class="special">(</span><a class="link" href="treap_multiset.html" title="Class template treap_multiset">treap_multiset</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span> source<span class="special">)</span><span class="special">;</span></pre> + <span class="keyword">void</span> <a name="idm52743-bb"></a><span class="identifier">merge</span><span class="special">(</span><a class="link" href="treap_multiset.html" title="Class template treap_multiset">treap_multiset</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span> source<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "source" container's Options can only can differ in the comparison function from *this.</p> <p><span class="bold"><strong>Effects</strong></span>: Attempts to extract each element in source and insert it into a using the comparison object of *this. If there is an element in a with key equivalent to the key of an element from source, then that element is not extracted from source.</p> <p><span class="bold"><strong>Postcondition</strong></span>: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing unless the comparison object throws.</p> -<p><span class="bold"><strong>Complexity</strong></span>: N log(a.size() + N) (N has the value source.size()) </p> +<p><span class="bold"><strong>Complexity</strong></span>: N log(a.size() + N) (N has the value source.size()) </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="special">...</span> Options2<span class="special">></span> <span class="keyword">void</span> <a name="idm45971704981216-bb"></a><span class="identifier">merge</span><span class="special">(</span><a class="link" href="treap_set.html" title="Class template treap_set">treap_set</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span> source<span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="special">...</span> Options2<span class="special">></span> <span class="keyword">void</span> <a name="idm52762-bb"></a><span class="identifier">merge</span><span class="special">(</span><a class="link" href="treap_set.html" title="Class template treap_set">treap_set</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span> source<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "source" container's Options can only can differ in the comparison function from *this.</p> <p><span class="bold"><strong>Effects</strong></span>: Attempts to extract each element in source and insert it into a using the comparison object of *this. If there is an element in a with key equivalent to the key of an element from source, then that element is not extracted from source.</p> <p><span class="bold"><strong>Postcondition</strong></span>: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing unless the comparison object throws.</p> -<p><span class="bold"><strong>Complexity</strong></span>: N log(a.size() + N) (N has the value source.size()) </p> +<p><span class="bold"><strong>Complexity</strong></span>: N log(a.size() + N) (N has the value source.size()) </p> </li> </ol></div> </div> <div class="refsect2"> -<a name="id-1.3.20.42.42.5.4.7"></a><h3> -<a name="idm45971704945408-bb"></a><code class="computeroutput">treap_multiset</code> public static functions</h3> +<a name="id-1.3.18.42.42.5.4.7"></a><h3> +<a name="idm52839-bb"></a><code class="computeroutput">treap_multiset</code> public static functions</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <a class="link" href="treap_multiset.html" title="Class template treap_multiset">treap_multiset</a> <span class="special">&</span> -<a name="idm45971704944848-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Precondition</strong></span>: end_iterator must be a valid end iterator of the container.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the container associated to the end iterator</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Constant. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="treap_multiset.html" title="Class template treap_multiset">treap_multiset</a> <span class="special">&</span> -<a name="idm45971704938832-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">const_iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Precondition</strong></span>: end_iterator must be a valid end iterator of the container.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the container associated to the end iterator</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Constant. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <a class="link" href="treap_multiset.html" title="Class template treap_multiset">treap_multiset</a> <span class="special">&</span> <a name="idm45971704932656-bb"></a><span class="identifier">container_from_iterator</span><span class="special">(</span><span class="identifier">iterator</span> it<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Precondition</strong></span>: it must be a valid iterator of the container.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the container associated to the iterator</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="treap_multiset.html" title="Class template treap_multiset">treap_multiset</a> <span class="special">&</span> -<a name="idm45971704926688-bb"></a><span class="identifier">container_from_iterator</span><span class="special">(</span><span class="identifier">const_iterator</span> it<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Precondition</strong></span>: it must be a valid iterator of the container.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the container associated to the iterator</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="identifier">iterator</span> <a name="idm45971704920560-bb"></a><span class="identifier">s_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 set of appropriate type. Otherwise the behavior is undefined.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns: a valid iterator i belonging to the set 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> -<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">const_iterator</span> <a name="idm45971704913472-bb"></a><span class="identifier">s_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 set of appropriate type. Otherwise the behavior is undefined.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns: a valid iterator i belonging to the set 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> -<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="keyword">void</span> <a name="idm45971704906384-bb"></a><span class="identifier">init_node</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 shall not be in a container.</p> -<p><span class="bold"><strong>Effects</strong></span>: init_node puts the hook of a value in a well-known default state.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> -<p><span class="bold"><strong>Note</strong></span>: This function puts the hook in the well-known default state used by auto_unlink and safe hooks. </p> -</li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <a class="link" href="treap_multiset.html" title="Class template treap_multiset">treap_multiset</a> <span class="special">&</span> +<a name="idm52840-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="treap_multiset.html" title="Class template treap_multiset">treap_multiset</a> <span class="special">&</span> +<a name="idm52845-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">const_iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <a class="link" href="treap_multiset.html" title="Class template treap_multiset">treap_multiset</a> <span class="special">&</span> <a name="idm52850-bb"></a><span class="identifier">container_from_iterator</span><span class="special">(</span><span class="identifier">iterator</span> it<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="treap_multiset.html" title="Class template treap_multiset">treap_multiset</a> <span class="special">&</span> +<a name="idm52855-bb"></a><span class="identifier">container_from_iterator</span><span class="special">(</span><span class="identifier">const_iterator</span> it<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">iterator</span> <a name="idm52860-bb"></a><span class="identifier">s_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></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">const_iterator</span> <a name="idm52864-bb"></a><span class="identifier">s_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></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm52868-bb"></a><span class="identifier">init_node</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></li> </ol></div> </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="make_treap_set.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.treap_set_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="treap_set.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/treap_set.html b/doc/html/boost/intrusive/treap_set.html index 05a1bca9a4..2e03c6c55a 100644 --- a/doc/html/boost/intrusive/treap_set.html +++ b/doc/html/boost/intrusive/treap_set.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.treap_set_hpp" title="Header <boost/intrusive/treap_set.hpp>"> <link rel="prev" href="treap_multiset.html" title="Class template treap_multiset"> <link rel="next" href="trivial_value_traits.html" title="Struct template trivial_value_traits"> +<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> @@ -29,8 +30,8 @@ <h2><span class="refentrytitle">Class template treap_set</span></h2> <p>boost::intrusive::treap_set</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.treap_set_hpp" title="Header <boost/intrusive/treap_set.hpp>">boost/intrusive/treap_set.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.treap_set_hpp" title="Header <boost/intrusive/treap_set.hpp>">boost/intrusive/treap_set.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="treap_set.html" title="Class template treap_set">treap_set</a> <span class="special">{</span> @@ -62,711 +63,616 @@ <span class="keyword">typedef</span> <span class="identifier">implementation_defined</span><span class="special">::</span><span class="identifier">node_algorithms</span> <a name="boost.intrusive.treap_set.node_algorithms"></a><span class="identifier">node_algorithms</span><span class="special">;</span> <span class="comment">// <a class="link" href="treap_set.html#boost.intrusive.treap_setconstruct-copy-destruct">construct/copy/destruct</a></span> - <a class="link" href="treap_set.html#idm45971704365200-bb"><span class="identifier">treap_set</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">explicit</span> <a class="link" href="treap_set.html#idm45971704362032-bb"><span class="identifier">treap_set</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span><span class="special">,</span> + <a class="link" href="treap_set.html#idm53970-bb"><span class="identifier">treap_set</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">explicit</span> <a class="link" href="treap_set.html#idm53978-bb"><span class="identifier">treap_set</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">priority_compare</span> <span class="special">&</span> <span class="special">=</span> <span class="identifier">priority_compare</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="treap_set.html#idm45971704355936-bb"><span class="identifier">treap_set</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="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> <span class="special">=</span> <span class="identifier">key_compare</span><span class="special">(</span><span class="special">)</span><span class="special">,</span> + <a class="link" href="treap_set.html#idm53987-bb"><span class="identifier">treap_set</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="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> <span class="special">=</span> <span class="identifier">key_compare</span><span class="special">(</span><span class="special">)</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">priority_compare</span> <span class="special">&</span> <span class="special">=</span> <span class="identifier">priority_compare</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="treap_set.html#idm45971704346464-bb"><span class="identifier">treap_set</span></a><span class="special">(</span><a class="link" href="treap_set.html" title="Class template treap_set">treap_set</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> - <a class="link" href="treap_set.html" title="Class template treap_set">treap_set</a> <span class="special">&</span> <a class="link" href="treap_set.html#idm45971704344224-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><a class="link" href="treap_set.html" title="Class template treap_set">treap_set</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> - <a class="link" href="treap_set.html#idm45971704341408-bb"><span class="special">~</span><span class="identifier">treap_set</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="treap_set.html#idm54003-bb"><span class="identifier">treap_set</span></a><span class="special">(</span><a class="link" href="treap_set.html" title="Class template treap_set">treap_set</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="treap_set.html" title="Class template treap_set">treap_set</a> <span class="special">&</span> <a class="link" href="treap_set.html#idm54010-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><a class="link" href="treap_set.html" title="Class template treap_set">treap_set</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="treap_set.html#idm54019-bb"><span class="special">~</span><span class="identifier">treap_set</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> - <span class="comment">// <a class="link" href="treap_set.html#idm45971704870464-bb">public member functions</a></span> - <span class="identifier">iterator</span> <a class="link" href="treap_set.html#idm45971704869904-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="treap_set.html#idm45971704866064-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="treap_set.html#idm45971704862224-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="treap_set.html#idm45971704858384-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="treap_set.html#idm45971704854544-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="treap_set.html#idm45971704850704-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">reverse_iterator</span> <a class="link" href="treap_set.html#idm45971704846864-bb"><span class="identifier">rbegin</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="identifier">const_reverse_iterator</span> <a class="link" href="treap_set.html#idm45971704843008-bb"><span class="identifier">rbegin</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_reverse_iterator</span> <a class="link" href="treap_set.html#idm45971704839152-bb"><span class="identifier">crbegin</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">reverse_iterator</span> <a class="link" href="treap_set.html#idm45971704835296-bb"><span class="identifier">rend</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="identifier">const_reverse_iterator</span> <a class="link" href="treap_set.html#idm45971704831440-bb"><span class="identifier">rend</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_reverse_iterator</span> <a class="link" href="treap_set.html#idm45971704827584-bb"><span class="identifier">crend</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="treap_set.html#idm45971704823728-bb"><span class="identifier">root</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="treap_set.html#idm45971704819856-bb"><span class="identifier">root</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="treap_set.html#idm45971704815984-bb"><span class="identifier">croot</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">key_compare</span> <a class="link" href="treap_set.html#idm45971704812112-bb"><span class="identifier">key_comp</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">value_compare</span> <a class="link" href="treap_set.html#idm45971704808256-bb"><span class="identifier">value_comp</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="treap_set.html#idm45971704804384-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="treap_set.html#idm45971704800560-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="treap_set.html#idm45971704796624-bb"><span class="identifier">swap</span></a><span class="special">(</span><a class="link" href="treap_set.html" title="Class template treap_set">treap_set</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="comment">// <a class="link" href="treap_set.html#idm52939-bb">public member functions</a></span> + <span class="identifier">iterator</span> <a class="link" href="treap_set.html#idm52940-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="treap_set.html#idm52949-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="treap_set.html#idm52958-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="treap_set.html#idm52967-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="treap_set.html#idm52976-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="treap_set.html#idm52985-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">reverse_iterator</span> <a class="link" href="treap_set.html#idm52994-bb"><span class="identifier">rbegin</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">const_reverse_iterator</span> <a class="link" href="treap_set.html#idm53003-bb"><span class="identifier">rbegin</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_reverse_iterator</span> <a class="link" href="treap_set.html#idm53012-bb"><span class="identifier">crbegin</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">reverse_iterator</span> <a class="link" href="treap_set.html#idm53021-bb"><span class="identifier">rend</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">const_reverse_iterator</span> <a class="link" href="treap_set.html#idm53030-bb"><span class="identifier">rend</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_reverse_iterator</span> <a class="link" href="treap_set.html#idm53039-bb"><span class="identifier">crend</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="treap_set.html#idm53048-bb"><span class="identifier">root</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="treap_set.html#idm53057-bb"><span class="identifier">root</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="treap_set.html#idm53066-bb"><span class="identifier">croot</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">key_compare</span> <a class="link" href="treap_set.html#idm53075-bb"><span class="identifier">key_comp</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">value_compare</span> <a class="link" href="treap_set.html#idm53084-bb"><span class="identifier">value_comp</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="treap_set.html#idm53093-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="treap_set.html#idm53102-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="treap_set.html#idm53111-bb"><span class="identifier">swap</span></a><span class="special">(</span><a class="link" href="treap_set.html" title="Class template treap_set">treap_set</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="treap_set.html#idm45971704792080-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="treap_set.html" title="Class template treap_set">treap_set</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="treap_set.html#idm53123-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="treap_set.html" title="Class template treap_set">treap_set</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="treap_set.html#idm45971704783024-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><a class="link" href="treap_set.html" title="Class template treap_set">treap_set</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="treap_set.html#idm45971704774128-bb"><span class="identifier">top</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="treap_set.html#idm45971704770272-bb"><span class="identifier">top</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="treap_set.html#idm45971704766416-bb"><span class="identifier">ctop</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">reverse_iterator</span> <a class="link" href="treap_set.html#idm45971704762560-bb"><span class="identifier">rtop</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="identifier">const_reverse_iterator</span> <a class="link" href="treap_set.html#idm45971704758688-bb"><span class="identifier">rtop</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_reverse_iterator</span> <a class="link" href="treap_set.html#idm45971704754816-bb"><span class="identifier">crtop</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">priority_compare</span> <a class="link" href="treap_set.html#idm45971704750944-bb"><span class="identifier">priority_comp</span></a><span class="special">(</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="keyword">bool</span> <span class="special">></span> <a class="link" href="treap_set.html#idm45971704747072-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="identifier">reference</span><span class="special">)</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="treap_set.html#idm45971704740896-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">,</span> <span class="identifier">reference</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="treap_set.html#idm53145-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><a class="link" href="treap_set.html" title="Class template treap_set">treap_set</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="treap_set.html#idm53167-bb"><span class="identifier">top</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="treap_set.html#idm53176-bb"><span class="identifier">top</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="treap_set.html#idm53185-bb"><span class="identifier">ctop</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">reverse_iterator</span> <a class="link" href="treap_set.html#idm53194-bb"><span class="identifier">rtop</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="identifier">const_reverse_iterator</span> <a class="link" href="treap_set.html#idm53203-bb"><span class="identifier">rtop</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_reverse_iterator</span> <a class="link" href="treap_set.html#idm53212-bb"><span class="identifier">crtop</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">priority_compare</span> <a class="link" href="treap_set.html#idm53221-bb"><span class="identifier">priority_comp</span></a><span class="special">(</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="keyword">bool</span> <span class="special">></span> <a class="link" href="treap_set.html#idm53230-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="identifier">reference</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="treap_set.html#idm53245-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">,</span> <span class="identifier">reference</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="treap_set.html#idm45971704733904-bb"><span class="identifier">insert_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="keyword">const</span> <span class="identifier">priority_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> + <a class="link" href="treap_set.html#idm53262-bb"><span class="identifier">insert_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="keyword">const</span> <span class="identifier">priority_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">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="treap_set.html#idm45971704724912-bb"><span class="identifier">insert_check</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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="identifier">priority_type</span> <span class="special">&</span><span class="special">,</span> + <a class="link" href="treap_set.html#idm53270-bb"><span class="identifier">insert_check</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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="identifier">priority_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="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> KeyType<span class="special">,</span> <span class="keyword">typename</span> KeyTypeKeyCompare<span class="special">,</span> <span class="keyword">typename</span> PrioType<span class="special">,</span> <span class="keyword">typename</span> PrioValuePrioCompare<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="treap_set.html#idm45971704715136-bb"><span class="identifier">insert_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">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">PrioType</span> <span class="special">&</span><span class="special">,</span> + <a class="link" href="treap_set.html#idm53280-bb"><span class="identifier">insert_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">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">PrioType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">PrioValuePrioCompare</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="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> KeyType<span class="special">,</span> <span class="keyword">typename</span> KeyTypeKeyCompare<span class="special">,</span> <span class="keyword">typename</span> PrioType<span class="special">,</span> <span class="keyword">typename</span> PrioValuePrioCompare<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="treap_set.html#idm45971704708304-bb"><span class="identifier">insert_check</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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">KeyTypeKeyCompare</span><span class="special">,</span> + <a class="link" href="treap_set.html#idm53297-bb"><span class="identifier">insert_check</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">PrioType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">PrioValuePrioCompare</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="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="treap_set.html#idm45971704700784-bb"><span class="identifier">insert</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">iterator</span> <a class="link" href="treap_set.html#idm45971704692976-bb"><span class="identifier">insert_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="identifier">iterator</span> <a class="link" href="treap_set.html#idm45971704683952-bb"><span class="identifier">insert_before</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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">void</span> <a class="link" href="treap_set.html#idm45971704676672-bb"><span class="identifier">push_back</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">void</span> <a class="link" href="treap_set.html#idm45971704670064-bb"><span class="identifier">push_front</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">iterator</span> <a class="link" href="treap_set.html#idm45971704663456-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="identifier">iterator</span> <a class="link" href="treap_set.html#idm45971704657920-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="treap_set.html#idm45971704651632-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> Iterator<span class="special">></span> <span class="keyword">void</span> <a class="link" href="treap_set.html#idm53316-bb"><span class="identifier">insert</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">iterator</span> <a class="link" href="treap_set.html#idm53335-bb"><span class="identifier">insert_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="identifier">iterator</span> <a class="link" href="treap_set.html#idm53355-bb"><span class="identifier">insert_before</span></a><span class="special">(</span><span class="identifier">const_iterator</span><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">void</span> <a class="link" href="treap_set.html#idm53372-bb"><span class="identifier">push_back</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">void</span> <a class="link" href="treap_set.html#idm53387-bb"><span class="identifier">push_front</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">iterator</span> <a class="link" href="treap_set.html#idm53402-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="identifier">iterator</span> <a class="link" href="treap_set.html#idm53415-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="treap_set.html#idm53430-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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">size_type</span> <a class="link" href="treap_set.html#idm45971704645536-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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">size_type</span> <a class="link" href="treap_set.html#idm53445-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">KeyTypeKeyCompare</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="identifier">iterator</span> <a class="link" href="treap_set.html#idm45971704636976-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="identifier">iterator</span> <a class="link" href="treap_set.html#idm53466-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="identifier">iterator</span> <a class="link" href="treap_set.html#idm45971704629024-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="identifier">iterator</span> <a class="link" href="treap_set.html#idm53485-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="treap_set.html#idm45971704620320-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="treap_set.html#idm53506-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> KeyTypeKeyCompare<span class="special">,</span> <span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="identifier">size_type</span> <a class="link" href="treap_set.html#idm45971704611648-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">KeyTypeKeyCompare</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="treap_set.html#idm45971704601184-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="treap_set.html#idm45971704596320-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="treap_set.html#idm45971704590016-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="identifier">size_type</span> <a class="link" href="treap_set.html#idm53527-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">KeyTypeKeyCompare</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="treap_set.html#idm53552-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="treap_set.html#idm53563-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="treap_set.html#idm53577-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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">size_type</span> <a class="link" href="treap_set.html#idm45971704584944-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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="treap_set.html#idm45971704575888-bb"><span class="identifier">lower_bound</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="treap_set.html#idm53581-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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="treap_set.html#idm53602-bb"><span class="identifier">lower_bound</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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a class="link" href="treap_set.html#idm45971704571136-bb"><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> - <span class="identifier">const_iterator</span> <a class="link" href="treap_set.html#idm45971704564288-bb"><span class="identifier">lower_bound</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="treap_set.html#idm53606-bb"><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">const_iterator</span> <a class="link" href="treap_set.html#idm53615-bb"><span class="identifier">lower_bound</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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">const_iterator</span> <a class="link" href="treap_set.html#idm45971704559264-bb"><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="treap_set.html#idm45971704552144-bb"><span class="identifier">upper_bound</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="treap_set.html#idm53619-bb"><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="treap_set.html#idm53628-bb"><span class="identifier">upper_bound</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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a class="link" href="treap_set.html#idm45971704547392-bb"><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> - <span class="identifier">const_iterator</span> <a class="link" href="treap_set.html#idm45971704538688-bb"><span class="identifier">upper_bound</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="treap_set.html#idm53632-bb"><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">const_iterator</span> <a class="link" href="treap_set.html#idm53653-bb"><span class="identifier">upper_bound</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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">const_iterator</span> <a class="link" href="treap_set.html#idm45971704533664-bb"><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="treap_set.html#idm45971704524688-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">const_iterator</span> <a class="link" href="treap_set.html#idm53657-bb"><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="treap_set.html#idm53678-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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a class="link" href="treap_set.html#idm45971704519952-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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> - <span class="identifier">const_iterator</span> <a class="link" href="treap_set.html#idm45971704511216-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="treap_set.html#idm53682-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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">const_iterator</span> <a class="link" href="treap_set.html#idm53703-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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">const_iterator</span> <a class="link" href="treap_set.html#idm45971704506208-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">KeyTypeKeyCompare</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="treap_set.html#idm45971704497200-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="treap_set.html#idm53707-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">KeyTypeKeyCompare</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="treap_set.html#idm53728-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> KeyTypeKeyCompare<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="treap_set.html#idm45971704492368-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">KeyTypeKeyCompare</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="treap_set.html#idm53732-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">KeyTypeKeyCompare</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="treap_set.html#idm45971704483536-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="treap_set.html#idm53753-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> KeyTypeKeyCompare<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="treap_set.html#idm45971704478416-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">KeyTypeKeyCompare</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <a class="link" href="treap_set.html#idm53757-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">KeyTypeKeyCompare</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="treap_set.html#idm45971704469296-bb"><span class="identifier">bounded_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="identifier">key_type</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="treap_set.html#idm53778-bb"><span class="identifier">bounded_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="identifier">key_type</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</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> KeyTypeKeyCompare<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="treap_set.html#idm45971704456864-bb"><span class="identifier">bounded_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="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> + <a class="link" href="treap_set.html#idm53788-bb"><span class="identifier">bounded_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="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</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="treap_set.html#idm45971704440064-bb"><span class="identifier">bounded_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="identifier">key_type</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <a class="link" href="treap_set.html#idm53830-bb"><span class="identifier">bounded_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="identifier">key_type</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</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> KeyTypeKeyCompare<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="treap_set.html#idm45971704427344-bb"><span class="identifier">bounded_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="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> + <a class="link" href="treap_set.html#idm53840-bb"><span class="identifier">bounded_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="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">iterator</span> <a class="link" href="treap_set.html#idm45971704410256-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="treap_set.html#idm45971704404768-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">pointer</span> <a class="link" href="treap_set.html#idm45971704399280-bb"><span class="identifier">unlink_leftmost_without_rebalance</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="treap_set.html#idm45971704394368-bb"><span class="identifier">replace_node</span></a><span class="special">(</span><span class="identifier">iterator</span><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">void</span> <a class="link" href="treap_set.html#idm45971704387104-bb"><span class="identifier">remove_node</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">template</span><span class="special"><</span><span class="keyword">class</span> <span class="special">...</span> Options2<span class="special">></span> <span class="keyword">void</span> <a class="link" href="treap_set.html#idm45971704381264-bb"><span class="identifier">merge</span></a><span class="special">(</span><a class="link" href="treap_set.html" title="Class template treap_set">treap_set</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</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">class</span> <span class="special">...</span> Options2<span class="special">></span> <span class="keyword">void</span> <a class="link" href="treap_set.html#idm45971704373312-bb"><span class="identifier">merge</span></a><span class="special">(</span><a class="link" href="treap_multiset.html" title="Class template treap_multiset">treap_multiset</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">iterator</span> <a class="link" href="treap_set.html#idm53882-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="treap_set.html#idm53886-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">pointer</span> <a class="link" href="treap_set.html#idm53890-bb"><span class="identifier">unlink_leftmost_without_rebalance</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="treap_set.html#idm53901-bb"><span class="identifier">replace_node</span></a><span class="special">(</span><span class="identifier">iterator</span><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">void</span> <a class="link" href="treap_set.html#idm53918-bb"><span class="identifier">remove_node</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">template</span><span class="special"><</span><span class="keyword">class</span> <span class="special">...</span> Options2<span class="special">></span> <span class="keyword">void</span> <a class="link" href="treap_set.html#idm53932-bb"><span class="identifier">merge</span></a><span class="special">(</span><a class="link" href="treap_set.html" title="Class template treap_set">treap_set</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</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">class</span> <span class="special">...</span> Options2<span class="special">></span> <span class="keyword">void</span> <a class="link" href="treap_set.html#idm53951-bb"><span class="identifier">merge</span></a><span class="special">(</span><a class="link" href="treap_multiset.html" title="Class template treap_multiset">treap_multiset</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> - <span class="comment">// <a class="link" href="treap_set.html#idm45971704337504-bb">public static functions</a></span> - <span class="keyword">static</span> <a class="link" href="treap_set.html" title="Class template treap_set">treap_set</a> <span class="special">&</span> <a class="link" href="treap_set.html#idm45971704336944-bb"><span class="identifier">container_from_end_iterator</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="comment">// <a class="link" href="treap_set.html#idm54028-bb">public static functions</a></span> + <span class="keyword">static</span> <a class="link" href="treap_set.html" title="Class template treap_set">treap_set</a> <span class="special">&</span> <a class="link" href="treap_set.html#idm54029-bb"><span class="identifier">container_from_end_iterator</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> <span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="treap_set.html" title="Class template treap_set">treap_set</a> <span class="special">&</span> - <a class="link" href="treap_set.html#idm45971704330928-bb"><span class="identifier">container_from_end_iterator</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">static</span> <a class="link" href="treap_set.html" title="Class template treap_set">treap_set</a> <span class="special">&</span> <a class="link" href="treap_set.html#idm45971704324752-bb"><span class="identifier">container_from_iterator</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="treap_set.html" title="Class template treap_set">treap_set</a> <span class="special">&</span> <a class="link" href="treap_set.html#idm45971704318784-bb"><span class="identifier">container_from_iterator</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">static</span> <span class="identifier">iterator</span> <a class="link" href="treap_set.html#idm45971704312656-bb"><span class="identifier">s_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_iterator</span> <a class="link" href="treap_set.html#idm45971704305568-bb"><span class="identifier">s_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="keyword">void</span> <a class="link" href="treap_set.html#idm45971704298480-bb"><span class="identifier">init_node</span></a><span class="special">(</span><span class="identifier">reference</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <a class="link" href="treap_set.html#idm54034-bb"><span class="identifier">container_from_end_iterator</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">static</span> <a class="link" href="treap_set.html" title="Class template treap_set">treap_set</a> <span class="special">&</span> <a class="link" href="treap_set.html#idm54039-bb"><span class="identifier">container_from_iterator</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="treap_set.html" title="Class template treap_set">treap_set</a> <span class="special">&</span> <a class="link" href="treap_set.html#idm54044-bb"><span class="identifier">container_from_iterator</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">static</span> <span class="identifier">iterator</span> <a class="link" href="treap_set.html#idm54049-bb"><span class="identifier">s_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_iterator</span> <a class="link" href="treap_set.html#idm54053-bb"><span class="identifier">s_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="keyword">void</span> <a class="link" href="treap_set.html#idm54057-bb"><span class="identifier">init_node</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="comment">// public data members</span> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">bool</span> <span class="identifier">constant_time_size</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.42.6.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.42.6.4"></a><h2>Description</h2> <p>The class template <a class="link" href="treap_set.html" title="Class template treap_set">treap_set</a> is an intrusive container, that mimics most of the interface of std::set as described in the C++ standard.</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> <p>The container supports the following options: <code class="computeroutput">base_hook<>/member_hook<>/value_traits<></code>, <code class="computeroutput">constant_time_size<></code>, <code class="computeroutput">size_type<></code>, <code class="computeroutput">compare<></code>, <code class="computeroutput">priority<></code> and <code class="computeroutput">priority_of_value<></code> </p> <div class="refsect2"> -<a name="id-1.3.20.42.42.6.4.5"></a><h3> +<a name="id-1.3.18.42.42.6.4.5"></a><h3> <a name="boost.intrusive.treap_setconstruct-copy-destruct"></a><code class="computeroutput">treap_set</code> public construct/copy/destruct</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> <li class="listitem"> -<pre class="literallayout"><a name="idm45971704365200-bb"></a><span class="identifier">treap_set</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm53970-bb"></a><span class="identifier">treap_set</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Constructs an empty container.</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 constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor of the value_compare/priority_compare objects throw. Basic guarantee. </p> +<p><span class="bold"><strong>Throws</strong></span>: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor of the value_compare/priority_compare objects throw. Basic guarantee. </p> </li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">explicit</span> <a name="idm45971704362032-bb"></a><span class="identifier">treap_set</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> cmp<span class="special">,</span> +<li class="listitem"><pre class="literallayout"><span class="keyword">explicit</span> <a name="idm53978-bb"></a><span class="identifier">treap_set</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> cmp<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">priority_compare</span> <span class="special">&</span> pcmp <span class="special">=</span> <span class="identifier">priority_compare</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> -<p><span class="bold"><strong>Effects</strong></span>: Constructs an empty container.</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 constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor of the value_compare/priority_compare objects throw. Basic guarantee. </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> - <a name="idm45971704355936-bb"></a><span class="identifier">treap_set</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="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> cmp <span class="special">=</span> <span class="identifier">key_compare</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></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="idm53987-bb"></a><span class="identifier">treap_set</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="keyword">const</span> <span class="identifier">key_compare</span> <span class="special">&</span> cmp <span class="special">=</span> <span class="identifier">key_compare</span><span class="special">(</span><span class="special">)</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">priority_compare</span> <span class="special">&</span> pcmp <span class="special">=</span> <span class="identifier">priority_compare</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> -<p><span class="bold"><strong>Requires</strong></span>: Dereferencing iterator must yield an lvalue of type value_type. cmp must be a comparison function that induces a strict weak ordering.</p> -<p><span class="bold"><strong>Effects</strong></span>: Constructs an empty container and inserts elements from [b, e).</p> -<p><span class="bold"><strong>Complexity</strong></span>: Linear in N if [b, e) is already sorted using comp and otherwise N * log N, where N is the distance between first and last.</p> -<p><span class="bold"><strong>Throws</strong></span>: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor/operator() of the key_compare/priority_compare objects throw. Basic guarantee. </p> -</li> + <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></li> <li class="listitem"> -<pre class="literallayout"><a name="idm45971704346464-bb"></a><span class="identifier">treap_set</span><span class="special">(</span><a class="link" href="treap_set.html" title="Class template treap_set">treap_set</a> <span class="special">&&</span> x<span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm54003-bb"></a><span class="identifier">treap_set</span><span class="special">(</span><a class="link" href="treap_set.html" title="Class template treap_set">treap_set</a> <span class="special">&&</span> x<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: to-do </p> </li> <li class="listitem"> -<pre class="literallayout"><a class="link" href="treap_set.html" title="Class template treap_set">treap_set</a> <span class="special">&</span> <a name="idm45971704344224-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><a class="link" href="treap_set.html" title="Class template treap_set">treap_set</a> <span class="special">&&</span> x<span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a class="link" href="treap_set.html" title="Class template treap_set">treap_set</a> <span class="special">&</span> <a name="idm54010-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><a class="link" href="treap_set.html" title="Class template treap_set">treap_set</a> <span class="special">&&</span> x<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: to-do </p> </li> <li class="listitem"> -<pre class="literallayout"><a name="idm45971704341408-bb"></a><span class="special">~</span><span class="identifier">treap_set</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm54019-bb"></a><span class="special">~</span><span class="identifier">treap_set</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 set are not deleted (i.e. no destructors are called), but the nodes according to the <code class="computeroutput"><a class="link" href="value_traits.html" title="Struct template value_traits">value_traits</a></code> template parameter are reinitialized and thus can be reused.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to elements contained in *this.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> </ol></div> </div> <div class="refsect2"> -<a name="id-1.3.20.42.42.6.4.6"></a><h3> -<a name="idm45971704870464-bb"></a><code class="computeroutput">treap_set</code> public member functions</h3> +<a name="id-1.3.18.42.42.6.4.6"></a><h3> +<a name="idm52939-bb"></a><code class="computeroutput">treap_set</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="idm45971704869904-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="idm52940-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971704866064-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="idm52949-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971704862224-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="idm52958-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971704858384-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="idm52967-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971704854544-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="idm52976-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971704850704-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="idm52985-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">reverse_iterator</span> <a name="idm45971704846864-bb"></a><span class="identifier">rbegin</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">reverse_iterator</span> <a name="idm52994-bb"></a><span class="identifier">rbegin</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 a reverse_iterator pointing to the beginning of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45971704843008-bb"></a><span class="identifier">rbegin</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_reverse_iterator</span> <a name="idm53003-bb"></a><span class="identifier">rbegin</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_reverse_iterator pointing to the beginning of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45971704839152-bb"></a><span class="identifier">crbegin</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_reverse_iterator</span> <a name="idm53012-bb"></a><span class="identifier">crbegin</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_reverse_iterator pointing to the beginning of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">reverse_iterator</span> <a name="idm45971704835296-bb"></a><span class="identifier">rend</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">reverse_iterator</span> <a name="idm53021-bb"></a><span class="identifier">rend</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 a reverse_iterator pointing to the end of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45971704831440-bb"></a><span class="identifier">rend</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_reverse_iterator</span> <a name="idm53030-bb"></a><span class="identifier">rend</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_reverse_iterator pointing to the end of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45971704827584-bb"></a><span class="identifier">crend</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_reverse_iterator</span> <a name="idm53039-bb"></a><span class="identifier">crend</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_reverse_iterator pointing to the end of the reversed container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971704823728-bb"></a><span class="identifier">root</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="idm53048-bb"></a><span class="identifier">root</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 a iterator pointing to the root node of the container or end() if not present.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971704819856-bb"></a><span class="identifier">root</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="idm53057-bb"></a><span class="identifier">root</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 root node of the container or cend() if not present.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971704815984-bb"></a><span class="identifier">croot</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="idm53066-bb"></a><span class="identifier">croot</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 root node of the container or cend() if not present.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">key_compare</span> <a name="idm45971704812112-bb"></a><span class="identifier">key_comp</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_compare</span> <a name="idm53075-bb"></a><span class="identifier">key_comp</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_compare object used by the container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: If key_compare copy-constructor throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If key_compare copy-constructor throws. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">value_compare</span> <a name="idm45971704808256-bb"></a><span class="identifier">value_comp</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">value_compare</span> <a name="idm53084-bb"></a><span class="identifier">value_comp</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 value_compare object used by the container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: If value_compare copy-constructor throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If value_compare copy-constructor throws. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">bool</span> <a name="idm45971704804384-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="idm53093-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>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971704800560-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="idm53102-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 container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to elements contained in *this if constant-time size option is disabled. Constant time otherwise.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971704796624-bb"></a><span class="identifier">swap</span><span class="special">(</span><a class="link" href="treap_set.html" title="Class template treap_set">treap_set</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="idm53111-bb"></a><span class="identifier">swap</span><span class="special">(</span><a class="link" href="treap_set.html" title="Class template treap_set">treap_set</a> <span class="special">&</span> other<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Swaps the contents of two treaps.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comparison functor's swap call throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If the comparison functor's swap call throws. </p> </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="idm45971704792080-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="treap_set.html" title="Class template treap_set">treap_set</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="idm53123-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="treap_set.html" title="Class template treap_set">treap_set</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 equivalent to the original nodes.</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. Copies the predicate from the source container.</p> <p>If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to erased plus inserted elements.</p> -<p><span class="bold"><strong>Throws</strong></span>: If cloner throws or predicate copy assignment throws. Basic guarantee. </p> +<p><span class="bold"><strong>Throws</strong></span>: If cloner throws or predicate copy assignment throws. Basic guarantee. </p> </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="idm45971704783024-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><a class="link" href="treap_set.html" title="Class template treap_set">treap_set</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="idm53145-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><a class="link" href="treap_set.html" title="Class template treap_set">treap_set</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 equivalent to the original nodes.</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. Copies the predicate from the source container.</p> <p>If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to erased plus inserted elements.</p> -<p><span class="bold"><strong>Throws</strong></span>: If cloner throws or predicate copy assignment throws. Basic guarantee. </p> +<p><span class="bold"><strong>Throws</strong></span>: If cloner throws or predicate copy assignment throws. Basic guarantee. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971704774128-bb"></a><span class="identifier">top</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="idm53167-bb"></a><span class="identifier">top</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 highest priority object of the treap.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971704770272-bb"></a><span class="identifier">top</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="idm53176-bb"></a><span class="identifier">top</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 highest priority object of the treap..</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971704766416-bb"></a><span class="identifier">ctop</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="idm53185-bb"></a><span class="identifier">ctop</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 highest priority object of the treap..</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">reverse_iterator</span> <a name="idm45971704762560-bb"></a><span class="identifier">rtop</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">reverse_iterator</span> <a name="idm53194-bb"></a><span class="identifier">rtop</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 a reverse_iterator pointing to the highest priority object of the reversed treap.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45971704758688-bb"></a><span class="identifier">rtop</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_reverse_iterator</span> <a name="idm53203-bb"></a><span class="identifier">rtop</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_reverse_iterator pointing to the highest priority objec of the reversed treap.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45971704754816-bb"></a><span class="identifier">crtop</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_reverse_iterator</span> <a name="idm53212-bb"></a><span class="identifier">crtop</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_reverse_iterator pointing to the highest priority object of the reversed treap.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">priority_compare</span> <a name="idm45971704750944-bb"></a><span class="identifier">priority_comp</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">priority_compare</span> <a name="idm53221-bb"></a><span class="identifier">priority_comp</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 a const_reverse_iterator pointing to the highest priority object of the reversed treap.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </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="idm45971704747072-bb"></a><span class="identifier">insert</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="idm53230-bb"></a><span class="identifier">insert</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 value into the container if the value is not already present.</p> <p><span class="bold"><strong>Complexity</strong></span>: Average complexity for insert element is at most logarithmic.</p> <p><span class="bold"><strong>Throws</strong></span>: If the internal key_compare or priority_compare functions throw. Strong guarantee.</p> -<p><span class="bold"><strong>Note</strong></span>: Does not affect the validity of iterators and references. No copy-constructors are called. </p> +<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">iterator</span> <a name="idm45971704740896-bb"></a><span class="identifier">insert</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<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="idm53245-bb"></a><span class="identifier">insert</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<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, and "hint" must be a valid iterator</p> <p><span class="bold"><strong>Effects</strong></span>: Tries to insert x into the container, using "hint" as a hint to where it will be inserted.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic in general, but it is amortized constant time (two comparisons in the worst case) if t is inserted immediately before hint.</p> <p><span class="bold"><strong>Throws</strong></span>: If the internal key_compare or priority_compare functions throw. Strong guarantee.</p> -<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="idm45971704733904-bb"></a><span class="identifier">insert_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="keyword">const</span> <span class="identifier">priority_type</span> <span class="special">&</span> prio<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 container, 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 complexity is at most logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comparison or predicate functions throw. Strong guarantee.</p> -<p><span class="bold"><strong>Notes</strong></span>: This function is used to improve performance when constructing a value_type is expensive: if there is an equivalent value the constructed object must be discarded. Many times, the part of the node that is used to impose the order is much cheaper to construct than the value_type and this function offers the possibility to use that part to check if the insertion will be successful.</p> -<p>If the check is successful, the user can construct the value_type and use "insert_commit" to insert the object in constant-time. This gives a total logarithmic complexity to the insertion: check(O(log(N)) + commit(O(1)).</p> -<p>"commit_data" remains valid for a subsequent "insert_commit" only if no more objects are inserted or erased from the container. </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="idm45971704724912-bb"></a><span class="identifier">insert_check</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<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="identifier">priority_type</span> <span class="special">&</span> prio<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 container, using a user provided key instead of the value itself, using "hint" as a hint to where it will be inserted.</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>: Logarithmic in general, but it's amortized constant time if t is inserted immediately before hint.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the comparison or predicate functions throw. Strong guarantee.</p> -<p><span class="bold"><strong>Notes</strong></span>: This function is used to improve performance when constructing a value_type is expensive: if there is an equivalent value the constructed object must be discarded. Many times, the part of the constructing that is used to impose the order is much cheaper to construct than the value_type and this function offers the possibility to use that key to check if the insertion will be successful.</p> -<p>If the check is successful, the user can construct the value_type and use "insert_commit" to insert the object in constant-time. This can give a total constant-time complexity to the insertion: check(O(1)) + commit(O(1)).</p> -<p>"commit_data" remains valid for a subsequent "insert_commit" only if no more objects are inserted or erased from the container. </p> -</li> +<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="idm53262-bb"></a><span class="identifier">insert_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="keyword">const</span> <span class="identifier">priority_type</span> <span class="special">&</span> prio<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></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="idm53270-bb"></a><span class="identifier">insert_check</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<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="identifier">priority_type</span> <span class="special">&</span> prio<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></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> KeyTypeKeyCompare<span class="special">,</span> <span class="keyword">typename</span> PrioType<span class="special">,</span> <span class="keyword">typename</span> PrioValuePrioCompare<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="idm45971704715136-bb"></a><span class="identifier">insert_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">KeyTypeKeyCompare</span> comp<span class="special">,</span> + <a name="idm53280-bb"></a><span class="identifier">insert_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">KeyTypeKeyCompare</span> comp<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">PrioType</span> <span class="special">&</span> prio<span class="special">,</span> <span class="identifier">PrioValuePrioCompare</span> pcomp<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></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> KeyTypeKeyCompare<span class="special">,</span> <span class="keyword">typename</span> PrioType<span class="special">,</span> <span class="keyword">typename</span> PrioValuePrioCompare<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="idm45971704708304-bb"></a><span class="identifier">insert_check</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> key<span class="special">,</span> + <a name="idm53297-bb"></a><span class="identifier">insert_check</span><span class="special">(</span><span class="identifier">const_iterator</span> hint<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">KeyTypeKeyCompare</span> comp<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">PrioType</span> <span class="special">&</span> prio<span class="special">,</span> <span class="identifier">PrioValuePrioCompare</span> pcomp<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></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="idm45971704700784-bb"></a><span class="identifier">insert</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="idm53316-bb"></a><span class="identifier">insert</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>: Tries to insert each element of a range into the container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Insert range is in general O(N * log(N)), where N is the size of the range. However, it is linear in N if the range is already sorted by key_comp().</p> <p><span class="bold"><strong>Throws</strong></span>: If the internal key_compare or priority_compare functions throw. Strong guarantee.</p> -<p><span class="bold"><strong>Note</strong></span>: Does not affect the validity of iterators and references. No copy-constructors are called. </p> +<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">iterator</span> <a name="idm45971704692976-bb"></a><span class="identifier">insert_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="idm53335-bb"></a><span class="identifier">insert_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 container 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="avl_set.html" title="Class template avl_set">avl_set</a></code> using the information obtained from the "commit_data" that a previous "insert_check" filled.</p> <p><span class="bold"><strong>Returns</strong></span>: An iterator to the newly inserted object.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing</p> -<p><span class="bold"><strong>Notes</strong></span>: This function has only sense if a "insert_check" has been previously executed to fill "commit_data". No value should be inserted or erased between the "insert_check" and "insert_commit" calls. </p> +<p><span class="bold"><strong>Notes</strong></span>: This function has only sense if a "insert_check" has been previously executed to fill "commit_data". No value should be inserted or erased between the "insert_check" and "insert_commit" calls. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971704683952-bb"></a><span class="identifier">insert_before</span><span class="special">(</span><span class="identifier">const_iterator</span> pos<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="idm53355-bb"></a><span class="identifier">insert_before</span><span class="special">(</span><span class="identifier">const_iterator</span> pos<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, "pos" must be a valid iterator (or end) and must be the succesor of value once inserted according to the predicate</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts x into the container before "pos".</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: If the internal priority_compare function throws. Strong guarantee.</p> -<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if "pos" is not the successor of "value" container ordering invariant will be broken. This is a low-level function to be used only for performance reasons by advanced users. </p> +<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if "pos" is not the successor of "value" container ordering invariant will be broken. This is a low-level function to be used only for performance reasons by advanced users. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971704676672-bb"></a><span class="identifier">push_back</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">void</span> <a name="idm53372-bb"></a><span class="identifier">push_back</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 it must be no less than the greatest inserted key</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts x into the container in the last position.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: If the internal priority_compare function throws. Strong guarantee.</p> -<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if value is less than the greatest inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users. </p> +<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if value is less than the greatest inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971704670064-bb"></a><span class="identifier">push_front</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">void</span> <a name="idm53387-bb"></a><span class="identifier">push_front</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 it must be no greater than the minimum inserted key</p> <p><span class="bold"><strong>Effects</strong></span>: Inserts x into the container in the first position.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: If the internal priority_compare function throws. Strong guarantee.</p> -<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if value is greater than the minimum inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users. </p> +<p><span class="bold"><strong>Note</strong></span>: This function does not check preconditions so if value is greater than the minimum inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971704663456-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="identifier">iterator</span> <a name="idm53402-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 complexity for erase element is constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: if the internal priority_compare function throws. Strong guarantee.</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> +<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">iterator</span> <a name="idm45971704657920-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="identifier">iterator</span> <a name="idm53415-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 complexity for erase range is at most O(log(size() + N)), where N is the number of elements in the range.</p> <p><span class="bold"><strong>Throws</strong></span>: if the internal priority_compare function throws. Strong guarantee.</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> +<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="idm45971704651632-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="idm53430-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>: O(log(size() + N).</p> <p><span class="bold"><strong>Throws</strong></span>: if the internal priority_compare function throws. Strong guarantee.</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> +<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> KeyType<span class="special">,</span> <span class="keyword">typename</span> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971704645536-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <span class="identifier">size_type</span> <a name="idm53445-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Erases all the elements with the given key. according to the comparison functor "comp".</p> <p><span class="bold"><strong>Returns</strong></span>: The number of erased elements.</p> <p><span class="bold"><strong>Complexity</strong></span>: O(log(size() + N).</p> <p><span class="bold"><strong>Throws</strong></span>: if the internal priority_compare function throws. Equivalent guarantee to <span class="emphasis"><em>while(beg != end) erase(beg++);</em></span></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> +<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="identifier">iterator</span> <a name="idm45971704636976-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="identifier">iterator</span> <a name="idm53466-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 complexity for erase element is constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: if the internal priority_compare function throws. Strong guarantee.</p> -<p><span class="bold"><strong>Note</strong></span>: Invalidates the iterators to the erased elements. </p> +<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">template</span><span class="special"><</span><span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="identifier">iterator</span> <a name="idm45971704629024-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">iterator</span> <a name="idm53485-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> <p><span class="bold"><strong>Complexity</strong></span>: Average complexity for erase range is at most O(log(size() + N)), where N is the number of elements in the range.</p> <p><span class="bold"><strong>Throws</strong></span>: if the internal priority_compare function throws. Strong guarantee.</p> -<p><span class="bold"><strong>Note</strong></span>: Invalidates the iterators to the erased elements. </p> +<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">template</span><span class="special"><</span><span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971704620320-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="idm53506-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> <p><span class="bold"><strong>Complexity</strong></span>: O(log(size() + N).</p> <p><span class="bold"><strong>Throws</strong></span>: if the priority_compare function throws then weak guarantee and heap invariants are broken. The safest thing would be to clear or destroy the container.</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> +<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> KeyType<span class="special">,</span> <span class="keyword">typename</span> KeyTypeKeyCompare<span class="special">,</span> <span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971704611648-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">KeyTypeKeyCompare</span> comp<span class="special">,</span> + <span class="identifier">size_type</span> <a name="idm53527-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">KeyTypeKeyCompare</span> comp<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 "comp". Disposer::operator()(pointer) is called for the removed elements.</p> <p><span class="bold"><strong>Returns</strong></span>: The number of erased elements.</p> <p><span class="bold"><strong>Complexity</strong></span>: O(log(size() + N).</p> <p><span class="bold"><strong>Throws</strong></span>: if the priority_compare function throws then weak guarantee and heap invariants are broken. The safest thing would be to clear or destroy the container.</p> -<p><span class="bold"><strong>Note</strong></span>: Invalidates the iterators to the erased elements. </p> +<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="idm45971704601184-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="idm53552-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> +<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="idm45971704596320-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="idm53563-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>Effects</strong></span>: Erases all of the elements calling disposer(p) for each node to be erased. <span class="bold"><strong>Complexity</strong></span>: Average complexity for is at most O(log(size() + N)), where N is the number of elements in the container.</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. Calls N times to disposer functor. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">size_type</span> <a name="idm45971704590016-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>: Logarithmic to the number of elements contained plus lineal to number of objects with the given value.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Note</strong></span>: Invalidates the iterators (but not the references) to the erased elements. Calls N times to disposer functor. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">size_type</span> <a name="idm53577-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></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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971704584944-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> + <span class="identifier">size_type</span> <a name="idm53581-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns the number of contained elements with the given key</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic to the number of elements contained plus lineal to number of objects with the given key.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971704575888-bb"></a><span class="identifier">lower_bound</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 an iterator to the first element whose key is not less than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> 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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a name="idm45971704571136-bb"></a><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Effects</strong></span>: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> </li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971704564288-bb"></a><span class="identifier">lower_bound</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 an iterator to the first element whose key is not less than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> 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> KeyTypeKeyCompare<span class="special">></span> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm53602-bb"></a><span class="identifier">lower_bound</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></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> KeyTypeKeyCompare<span class="special">></span> + <span class="identifier">iterator</span> <a name="idm53606-bb"></a><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm53615-bb"></a><span class="identifier">lower_bound</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></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> KeyTypeKeyCompare<span class="special">></span> <span class="identifier">const_iterator</span> - <a name="idm45971704559264-bb"></a><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Effects</strong></span>: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971704552144-bb"></a><span class="identifier">upper_bound</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 an iterator to the first element whose key is greater than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> -</li> + <a name="idm53619-bb"></a><span class="identifier">lower_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm53628-bb"></a><span class="identifier">upper_bound</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></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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a name="idm45971704547392-bb"></a><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <span class="identifier">iterator</span> <a name="idm53632-bb"></a><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns an iterator to the first element whose key is greater than k according to comp or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971704538688-bb"></a><span class="identifier">upper_bound</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 an iterator to the first element whose key is greater than k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm53653-bb"></a><span class="identifier">upper_bound</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></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> KeyTypeKeyCompare<span class="special">></span> <span class="identifier">const_iterator</span> - <a name="idm45971704533664-bb"></a><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> + <a name="idm53657-bb"></a><span class="identifier">upper_bound</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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Returns an iterator to the first element whose key is greater than k according to comp or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971704524688-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 whose key is k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm53678-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></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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">iterator</span> <a name="idm45971704519952-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <span class="identifier">iterator</span> <a name="idm53682-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Finds an iterator to the first element whose key is k or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45971704511216-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 an iterator to the first element whose key is k or end() if that element does not exist.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm53703-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></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> KeyTypeKeyCompare<span class="special">></span> - <span class="identifier">const_iterator</span> <a name="idm45971704506208-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> + <span class="identifier">const_iterator</span> <a name="idm53707-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Finds an iterator to the first element whose key is k or end() if that element does not exist.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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="idm45971704497200-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>: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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="idm53728-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></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> KeyTypeKeyCompare<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="idm45971704492368-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> + <a name="idm53732-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">KeyTypeKeyCompare</span> comp<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">></span> -<a name="idm45971704483536-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>: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">></span> +<a name="idm53753-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></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> KeyTypeKeyCompare<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="idm45971704478416-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> + <a name="idm53757-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">KeyTypeKeyCompare</span> comp<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: key is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into <code class="computeroutput">*this</code>.</p> <p><span class="bold"><strong>Effects</strong></span>: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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="idm45971704469296-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> upper_key<span class="special">,</span> - <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: <code class="computeroutput">upper_key</code> shall not precede <code class="computeroutput">lower_key</code> according to key_compare. [key_comp()(upper_key, lower_key) shall be false]</p> -<p>If <code class="computeroutput">lower_key</code> is equivalent to <code class="computeroutput">upper_key</code> [!key_comp()(upper_key, lower_key) && !key_comp()(lower_key, upper_key)] then ('left_closed' || 'right_closed') must be false.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns an a pair with the following criteria:</p> -<p>first = lower_bound(lower_key) if left_closed, upper_bound(lower_key) otherwise</p> -<p>second = upper_bound(upper_key) if right_closed, lower_bound(upper_key) otherwise</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws.</p> -<p><span class="bold"><strong>Note</strong></span>: This function can be more efficient than calling upper_bound and lower_bound for lower_value and upper_value.</p> -<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </p> +<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws. </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="idm53778-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> upper_key<span class="special">,</span> + <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span><span class="special">;</span></pre></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> KeyTypeKeyCompare<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="idm45971704456864-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> + <a name="idm53788-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span> comp<span class="special">,</span> <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: <code class="computeroutput">lower_key</code> is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, lower_key) if left_closed is true, with respect to !comp(lower_key, nk) otherwise.</p> <p><code class="computeroutput">upper_key</code> is a value such that <code class="computeroutput">*this</code> is partitioned with respect to !comp(upper_key, nk) if right_closed is true, with respect to comp(nk, upper_key) otherwise.</p> @@ -778,26 +684,15 @@ <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> <p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws.</p> <p><span class="bold"><strong>Note</strong></span>: This function can be more efficient than calling upper_bound and lower_bound for lower_key and upper_key.</p> -<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </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">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">></span> -<a name="idm45971704440064-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> upper_key<span class="special">,</span> - <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Requires</strong></span>: <code class="computeroutput">upper_key</code> shall not precede <code class="computeroutput">lower_key</code> according to key_compare. [key_comp()(upper_key, lower_key) shall be false]</p> -<p>If <code class="computeroutput">lower_key</code> is equivalent to <code class="computeroutput">upper_key</code> [!key_comp()(upper_key, lower_key) && !key_comp()(lower_key, upper_key)] then ('left_closed' || 'right_closed') must be false.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns an a pair with the following criteria:</p> -<p>first = lower_bound(lower_key) if left_closed, upper_bound(lower_key) otherwise</p> -<p>second = upper_bound(upper_key) if right_closed, lower_bound(upper_key) otherwise</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">key_compare</code> throws.</p> -<p><span class="bold"><strong>Note</strong></span>: This function can be more efficient than calling upper_bound and lower_bound for lower_value and upper_value.</p> -<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </p> +<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </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">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">></span> +<a name="idm53830-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&</span> upper_key<span class="special">,</span> + <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></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> KeyTypeKeyCompare<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="idm45971704427344-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> + <a name="idm53840-bb"></a><span class="identifier">bounded_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> lower_key<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">KeyType</span> <span class="special">&</span> upper_key<span class="special">,</span> <span class="identifier">KeyTypeKeyCompare</span> comp<span class="special">,</span> <span class="keyword">bool</span> left_closed<span class="special">,</span> <span class="keyword">bool</span> right_closed<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: <code class="computeroutput">lower_key</code> is a value such that <code class="computeroutput">*this</code> is partitioned with respect to comp(nk, lower_key) if left_closed is true, with respect to !comp(lower_key, nk) otherwise.</p> <p><code class="computeroutput">upper_key</code> is a value such that <code class="computeroutput">*this</code> is partitioned with respect to !comp(upper_key, nk) if right_closed is true, with respect to comp(nk, upper_key) otherwise.</p> @@ -809,133 +704,73 @@ <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic.</p> <p><span class="bold"><strong>Throws</strong></span>: If <code class="computeroutput">comp</code> throws.</p> <p><span class="bold"><strong>Note</strong></span>: This function can be more efficient than calling upper_bound and lower_bound for lower_key and upper_key.</p> -<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </p> +<p><span class="bold"><strong>Note</strong></span>: Experimental function, the interface might change in future releases. </p> </li> +<li class="listitem"><pre class="literallayout"><span class="identifier">iterator</span> <a name="idm53882-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm53886-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></li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971704410256-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 set of appropriate type. Otherwise the behavior is undefined.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns: a valid iterator i belonging to the set 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_iterator</span> <a name="idm45971704404768-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 set of appropriate type. Otherwise the behavior is undefined.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns: a valid const_iterator i belonging to the set 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">pointer</span> <a name="idm45971704399280-bb"></a><span class="identifier">unlink_leftmost_without_rebalance</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">pointer</span> <a name="idm53890-bb"></a><span class="identifier">unlink_leftmost_without_rebalance</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>: Unlinks the leftmost node from the container.</p> <p><span class="bold"><strong>Complexity</strong></span>: Average complexity is constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Notes</strong></span>: This function breaks the container and the container can only be used for more unlink_leftmost_without_rebalance calls. This function is normally used to achieve a step by step controlled destruction of the container. </p> +<p><span class="bold"><strong>Notes</strong></span>: This function breaks the container and the container can only be used for more unlink_leftmost_without_rebalance calls. This function is normally used to achieve a step by step controlled destruction of the container. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971704394368-bb"></a><span class="identifier">replace_node</span><span class="special">(</span><span class="identifier">iterator</span> replace_this<span class="special">,</span> <span class="identifier">reference</span> with_this<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">void</span> <a name="idm53901-bb"></a><span class="identifier">replace_node</span><span class="special">(</span><span class="identifier">iterator</span> replace_this<span class="special">,</span> <span class="identifier">reference</span> with_this<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: replace_this must be a valid iterator of *this and with_this must not be inserted in any container.</p> <p><span class="bold"><strong>Effects</strong></span>: Replaces replace_this in its position in the container with with_this. The container does not need to be rebalanced.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Note</strong></span>: This function will break container ordering invariants if with_this is not equivalent to *replace_this according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing or comparison is needed. </p> +<p><span class="bold"><strong>Note</strong></span>: This function will break container ordering invariants if with_this is not equivalent to *replace_this according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing or comparison is needed. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971704387104-bb"></a><span class="identifier">remove_node</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">void</span> <a name="idm53918-bb"></a><span class="identifier">remove_node</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>Effects</strong></span>: removes "value" from the container.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Complexity</strong></span>: Logarithmic time.</p> <p><span class="bold"><strong>Note</strong></span>: This static function is only usable with non-constant time size containers that have stateless comparison functors.</p> -<p>If the user calls this function with a constant time size container or stateful comparison functor a compilation error will be issued. </p> +<p>If the user calls this function with a constant time size container or stateful comparison functor a compilation error will be issued. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="special">...</span> Options2<span class="special">></span> <span class="keyword">void</span> <a name="idm45971704381264-bb"></a><span class="identifier">merge</span><span class="special">(</span><a class="link" href="treap_set.html" title="Class template treap_set">treap_set</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span> source<span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="special">...</span> Options2<span class="special">></span> <span class="keyword">void</span> <a name="idm53932-bb"></a><span class="identifier">merge</span><span class="special">(</span><a class="link" href="treap_set.html" title="Class template treap_set">treap_set</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span> source<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "source" container's Options can only can differ in the comparison function from *this.</p> <p><span class="bold"><strong>Effects</strong></span>: Attempts to extract each element in source and insert it into a using the comparison object of *this. If there is an element in a with key equivalent to the key of an element from source, then that element is not extracted from source.</p> <p><span class="bold"><strong>Postcondition</strong></span>: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing unless the comparison object throws.</p> -<p><span class="bold"><strong>Complexity</strong></span>: N log(a.size() + N) (N has the value source.size()) </p> +<p><span class="bold"><strong>Complexity</strong></span>: N log(a.size() + N) (N has the value source.size()) </p> </li> <li class="listitem"> <pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="special">...</span> Options2<span class="special">></span> - <span class="keyword">void</span> <a name="idm45971704373312-bb"></a><span class="identifier">merge</span><span class="special">(</span><a class="link" href="treap_multiset.html" title="Class template treap_multiset">treap_multiset</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span> source<span class="special">)</span><span class="special">;</span></pre> + <span class="keyword">void</span> <a name="idm53951-bb"></a><span class="identifier">merge</span><span class="special">(</span><a class="link" href="treap_multiset.html" title="Class template treap_multiset">treap_multiset</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Options2</span><span class="special">...</span> <span class="special">></span> <span class="special">&</span> source<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: "source" container's Options can only can differ in the comparison function from *this.</p> <p><span class="bold"><strong>Effects</strong></span>: Attempts to extract each element in source and insert it into a using the comparison object of *this. If there is an element in a with key equivalent to the key of an element from source, then that element is not extracted from source.</p> <p><span class="bold"><strong>Postcondition</strong></span>: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing unless the comparison object throws.</p> -<p><span class="bold"><strong>Complexity</strong></span>: N log(a.size() + N) (N has the value source.size()) </p> +<p><span class="bold"><strong>Complexity</strong></span>: N log(a.size() + N) (N has the value source.size()) </p> </li> </ol></div> </div> <div class="refsect2"> -<a name="id-1.3.20.42.42.6.4.7"></a><h3> -<a name="idm45971704337504-bb"></a><code class="computeroutput">treap_set</code> public static functions</h3> +<a name="id-1.3.18.42.42.6.4.7"></a><h3> +<a name="idm54028-bb"></a><code class="computeroutput">treap_set</code> public static functions</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <a class="link" href="treap_set.html" title="Class template treap_set">treap_set</a> <span class="special">&</span> <a name="idm45971704336944-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Precondition</strong></span>: end_iterator must be a valid end iterator of the container.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the container associated to the end iterator</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Constant. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="treap_set.html" title="Class template treap_set">treap_set</a> <span class="special">&</span> -<a name="idm45971704330928-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">const_iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Precondition</strong></span>: end_iterator must be a valid end iterator of the container.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the container associated to the end iterator</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Constant. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <a class="link" href="treap_set.html" title="Class template treap_set">treap_set</a> <span class="special">&</span> <a name="idm45971704324752-bb"></a><span class="identifier">container_from_iterator</span><span class="special">(</span><span class="identifier">iterator</span> it<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Precondition</strong></span>: it must be a valid iterator of the container.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the container associated to the iterator</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="treap_set.html" title="Class template treap_set">treap_set</a> <span class="special">&</span> <a name="idm45971704318784-bb"></a><span class="identifier">container_from_iterator</span><span class="special">(</span><span class="identifier">const_iterator</span> it<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> -<p><span class="bold"><strong>Precondition</strong></span>: it must be a valid iterator of the container.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the container associated to the iterator</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Logarithmic. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="identifier">iterator</span> <a name="idm45971704312656-bb"></a><span class="identifier">s_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 set of appropriate type. Otherwise the behavior is undefined.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns: a valid iterator i belonging to the set 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> -<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">const_iterator</span> <a name="idm45971704305568-bb"></a><span class="identifier">s_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 set of appropriate type. Otherwise the behavior is undefined.</p> -<p><span class="bold"><strong>Effects</strong></span>: Returns: a valid iterator i belonging to the set 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> -<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="keyword">void</span> <a name="idm45971704298480-bb"></a><span class="identifier">init_node</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 shall not be in a container.</p> -<p><span class="bold"><strong>Effects</strong></span>: init_node puts the hook of a value in a well-known default state.</p> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> -<p><span class="bold"><strong>Note</strong></span>: This function puts the hook in the well-known default state used by auto_unlink and safe hooks. </p> -</li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <a class="link" href="treap_set.html" title="Class template treap_set">treap_set</a> <span class="special">&</span> <a name="idm54029-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="treap_set.html" title="Class template treap_set">treap_set</a> <span class="special">&</span> +<a name="idm54034-bb"></a><span class="identifier">container_from_end_iterator</span><span class="special">(</span><span class="identifier">const_iterator</span> end_iterator<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <a class="link" href="treap_set.html" title="Class template treap_set">treap_set</a> <span class="special">&</span> <a name="idm54039-bb"></a><span class="identifier">container_from_iterator</span><span class="special">(</span><span class="identifier">iterator</span> it<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">const</span> <a class="link" href="treap_set.html" title="Class template treap_set">treap_set</a> <span class="special">&</span> <a name="idm54044-bb"></a><span class="identifier">container_from_iterator</span><span class="special">(</span><span class="identifier">const_iterator</span> it<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">iterator</span> <a name="idm54049-bb"></a><span class="identifier">s_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></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">const_iterator</span> <a name="idm54053-bb"></a><span class="identifier">s_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></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm54057-bb"></a><span class="identifier">init_node</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></li> </ol></div> </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="treap_multiset.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.treap_set_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="trivial_value_traits.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/trivial_value_traits.html b/doc/html/boost/intrusive/trivial_value_traits.html index 46012afa27..1c077f5c47 100644 --- a/doc/html/boost/intrusive/trivial_value_traits.html +++ b/doc/html/boost/intrusive/trivial_value_traits.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.trivial_value_traits_hpp" title="Header <boost/intrusive/trivial_value_traits.hpp>"> <link rel="prev" href="treap_set.html" title="Class template treap_set"> <link rel="next" href="make_unordered_multiset.html" title="Struct template make_unordered_multiset"> +<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> @@ -29,8 +30,8 @@ <h2><span class="refentrytitle">Struct template trivial_value_traits</span></h2> <p>boost::intrusive::trivial_value_traits</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.trivial_value_traits_hpp" title="Header <boost/intrusive/trivial_value_traits.hpp>">boost/intrusive/trivial_value_traits.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.trivial_value_traits_hpp" title="Header <boost/intrusive/trivial_value_traits.hpp>">boost/intrusive/trivial_value_traits.hpp</a>> </span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> NodeTraits<span class="special">,</span> <span class="identifier">link_mode_type</span> LinkMode <span class="special">=</span> <span class="identifier">safe_link</span><span class="special">></span> <span class="keyword">struct</span> <a class="link" href="trivial_value_traits.html" title="Struct template trivial_value_traits">trivial_value_traits</a> <span class="special">{</span> @@ -42,38 +43,35 @@ <span class="keyword">typedef</span> <span class="identifier">node_ptr</span> <a name="boost.intrusive.trivial_value_traits.pointer"></a><span class="identifier">pointer</span><span class="special">;</span> <span class="keyword">typedef</span> <span class="identifier">const_node_ptr</span> <a name="boost.intrusive.trivial_value_traits.const_pointer"></a><span class="identifier">const_pointer</span><span class="special">;</span> - <span class="comment">// <a class="link" href="trivial_value_traits.html#idm45971704280176-bb">public static functions</a></span> - <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="trivial_value_traits.html#idm45971704279616-bb"><span class="identifier">to_node_ptr</span></a><span class="special">(</span><span class="identifier">value_type</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="identifier">const_node_ptr</span> <a class="link" href="trivial_value_traits.html#idm45971704277536-bb"><span class="identifier">to_node_ptr</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">value_type</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">const</span> <span class="identifier">pointer</span> <span class="special">&</span> <a class="link" href="trivial_value_traits.html#idm45971704275456-bb"><span class="identifier">to_value_ptr</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">const</span> <span class="identifier">const_pointer</span> <span class="special">&</span> <a class="link" href="trivial_value_traits.html#idm45971704273376-bb"><span class="identifier">to_value_ptr</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="comment">// <a class="link" href="trivial_value_traits.html#idm54086-bb">public static functions</a></span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="trivial_value_traits.html#idm54087-bb"><span class="identifier">to_node_ptr</span></a><span class="special">(</span><span class="identifier">value_type</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">const_node_ptr</span> <a class="link" href="trivial_value_traits.html#idm54091-bb"><span class="identifier">to_node_ptr</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">value_type</span> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">pointer</span> <a class="link" href="trivial_value_traits.html#idm54095-bb"><span class="identifier">to_value_ptr</span></a><span class="special">(</span><span class="identifier">node_ptr</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">static</span> <span class="identifier">const_pointer</span> <a class="link" href="trivial_value_traits.html#idm54099-bb"><span class="identifier">to_value_ptr</span></a><span class="special">(</span><span class="identifier">const_node_ptr</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="identifier">link_mode_type</span> <span class="identifier">link_mode</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.43.3.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.43.3.4"></a><h2>Description</h2> <p>This value traits template is used to create value traits from user defined node traits where value_traits::value_type and node_traits::node should be equal </p> <div class="refsect2"> -<a name="id-1.3.20.42.43.3.4.3"></a><h3> -<a name="idm45971704280176-bb"></a><code class="computeroutput">trivial_value_traits</code> public static functions</h3> +<a name="id-1.3.18.42.43.3.4.3"></a><h3> +<a name="idm54086-bb"></a><code class="computeroutput">trivial_value_traits</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">node_ptr</span> <a name="idm45971704279616-bb"></a><span class="identifier">to_node_ptr</span><span class="special">(</span><span class="identifier">value_type</span> <span class="special">&</span> value<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> -<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">const_node_ptr</span> <a name="idm45971704277536-bb"></a><span class="identifier">to_node_ptr</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">value_type</span> <span class="special">&</span> value<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> -<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">const</span> <span class="identifier">pointer</span> <span class="special">&</span> <a name="idm45971704275456-bb"></a><span class="identifier">to_value_ptr</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span> n<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> -<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="keyword">const</span> <span class="identifier">const_pointer</span> <span class="special">&</span> <a name="idm45971704273376-bb"></a><span class="identifier">to_value_ptr</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">const_node_ptr</span> <span class="special">&</span> n<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">node_ptr</span> <a name="idm54087-bb"></a><span class="identifier">to_node_ptr</span><span class="special">(</span><span class="identifier">value_type</span> <span class="special">&</span> value<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">const_node_ptr</span> <a name="idm54091-bb"></a><span class="identifier">to_node_ptr</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">value_type</span> <span class="special">&</span> value<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">pointer</span> <a name="idm54095-bb"></a><span class="identifier">to_value_ptr</span><span class="special">(</span><span class="identifier">node_ptr</span> n<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">const_pointer</span> <a name="idm54099-bb"></a><span class="identifier">to_value_ptr</span><span class="special">(</span><span class="identifier">const_node_ptr</span> n<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre></li> </ol></div> </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="treap_set.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.trivial_value_traits_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_unordered_multiset.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/unordered_bucket.html b/doc/html/boost/intrusive/unordered_bucket.html new file mode 100644 index 0000000000..dfb94836d7 --- /dev/null +++ b/doc/html/boost/intrusive/unordered_bucket.html @@ -0,0 +1,55 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>Struct template unordered_bucket</title> +<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css"> +<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="store_hash_is_true/two_or_three.html" title="Struct template two_or_three"> +<link rel="next" href="unordered_bucket_impl.html" title="Struct template unordered_bucket_impl"> +<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> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td> +<td align="center"><a href="../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="store_hash_is_true/two_or_three.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="unordered_bucket_impl.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.intrusive.unordered_bucket"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Struct template unordered_bucket</span></h2> +<p>boost::intrusive::unordered_bucket</p> +</div> +<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> ValueTraitsOrHookOption<span class="special">></span> +<span class="keyword">struct</span> <a class="link" href="unordered_bucket.html" title="Struct template unordered_bucket">unordered_bucket</a> <span class="special">:</span> <span class="keyword">public</span> boost::intrusive::unordered_bucket_impl< ValueTraitsOrHookOption::template pack< empty >::proto_value_traits > +<span class="special">{</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="id-1.3.18.42.14.39.4"></a><h2>Description</h2> +<p>This metafunction will obtain the type of a bucket from the <a class="link" href="value_traits.html" title="Struct template value_traits">value_traits</a> or hook option to be used with a hash container. </p> +</div> +</div> +<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> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="store_hash_is_true/two_or_three.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="unordered_bucket_impl.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/doc/html/boost/intrusive/unordered_bucket_impl.html b/doc/html/boost/intrusive/unordered_bucket_impl.html new file mode 100644 index 0000000000..5d32122f35 --- /dev/null +++ b/doc/html/boost/intrusive/unordered_bucket_impl.html @@ -0,0 +1,55 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>Struct template unordered_bucket_impl</title> +<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css"> +<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="unordered_bucket.html" title="Struct template unordered_bucket"> +<link rel="next" href="unordered_bucket_ptr.html" title="Struct template unordered_bucket_ptr"> +<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> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td> +<td align="center"><a href="../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="unordered_bucket.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="unordered_bucket_ptr.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.intrusive.unordered_bucket_impl"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Struct template unordered_bucket_impl</span></h2> +<p>boost::intrusive::unordered_bucket_impl</p> +</div> +<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> SupposedValueTraits<span class="special">></span> +<span class="keyword">struct</span> <a class="link" href="unordered_bucket_impl.html" title="Struct template unordered_bucket_impl">unordered_bucket_impl</a> <span class="special">{</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span> <a name="boost.intrusive.unordered_bucket_impl.node_traits"></a><span class="identifier">node_traits</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">reduced_slist_node_traits</span><span class="special"><</span> <span class="identifier">node_traits</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> <a name="boost.intrusive.unordered_bucket_impl.reduced_node_traits"></a><span class="identifier">reduced_node_traits</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">bucket_impl</span><span class="special"><</span> <span class="identifier">reduced_node_traits</span> <span class="special">></span> <a name="boost.intrusive.unordered_bucket_impl.type"></a><span class="identifier">type</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">typenamereduced_node_traits</span><span class="special">::</span><span class="identifier">node_ptr</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">type</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> <a name="boost.intrusive.unordered_bucket_impl.pointer"></a><span class="identifier">pointer</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +</div> +<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> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="unordered_bucket.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="unordered_bucket_ptr.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/doc/html/boost/intrusive/unordered_bucket_ptr.html b/doc/html/boost/intrusive/unordered_bucket_ptr.html new file mode 100644 index 0000000000..e1b5316684 --- /dev/null +++ b/doc/html/boost/intrusive/unordered_bucket_ptr.html @@ -0,0 +1,55 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>Struct template unordered_bucket_ptr</title> +<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css"> +<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="unordered_bucket_impl.html" title="Struct template unordered_bucket_impl"> +<link rel="next" href="unordered_bucket_ptr_impl.html" title="Struct template unordered_bucket_ptr_impl"> +<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> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td> +<td align="center"><a href="../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="unordered_bucket_impl.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="unordered_bucket_ptr_impl.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.intrusive.unordered_bucket_ptr"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Struct template unordered_bucket_ptr</span></h2> +<p>boost::intrusive::unordered_bucket_ptr</p> +</div> +<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> ValueTraitsOrHookOption<span class="special">></span> +<span class="keyword">struct</span> <a class="link" href="unordered_bucket_ptr.html" title="Struct template unordered_bucket_ptr">unordered_bucket_ptr</a> <span class="special">:</span> <span class="keyword">public</span> boost::intrusive::unordered_bucket_ptr_impl< ValueTraitsOrHookOption::template pack< empty >::proto_value_traits > +<span class="special">{</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="id-1.3.18.42.14.41.4"></a><h2>Description</h2> +<p>This metafunction will obtain the type of a bucket pointer from the <a class="link" href="value_traits.html" title="Struct template value_traits">value_traits</a> or hook option to be used with a hash container. </p> +</div> +</div> +<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> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="unordered_bucket_impl.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="unordered_bucket_ptr_impl.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/doc/html/boost/intrusive/unordered_bucket_ptr_impl.html b/doc/html/boost/intrusive/unordered_bucket_ptr_impl.html new file mode 100644 index 0000000000..49f52189e1 --- /dev/null +++ b/doc/html/boost/intrusive/unordered_bucket_ptr_impl.html @@ -0,0 +1,52 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>Struct template unordered_bucket_ptr_impl</title> +<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css"> +<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="unordered_bucket_ptr.html" title="Struct template unordered_bucket_ptr"> +<link rel="next" href="unordered_default_idm32740.html" title="Struct template unordered_default_bucket_traits"> +<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> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td> +<td align="center"><a href="../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="unordered_bucket_ptr.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="unordered_default_idm32740.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.intrusive.unordered_bucket_ptr_impl"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Struct template unordered_bucket_ptr_impl</span></h2> +<p>boost::intrusive::unordered_bucket_ptr_impl</p> +</div> +<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> SupposedValueTraits<span class="special">></span> +<span class="keyword">struct</span> <a class="link" href="unordered_bucket_ptr_impl.html" title="Struct template unordered_bucket_ptr_impl">unordered_bucket_ptr_impl</a> <span class="special">{</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <span class="identifier">unordered_bucket_impl</span><span class="special"><</span> <span class="identifier">SupposedValueTraits</span> <span class="special">></span><span class="special">::</span><span class="identifier">pointer</span> <a name="boost.intrusive.unordered_bucket_ptr_impl.type"></a><span class="identifier">type</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +</div> +<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> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="unordered_bucket_ptr.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="unordered_default_idm32740.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/doc/html/boost/intrusive/unordered_default_idm32740.html b/doc/html/boost/intrusive/unordered_default_idm32740.html new file mode 100644 index 0000000000..0c9acd670b --- /dev/null +++ b/doc/html/boost/intrusive/unordered_default_idm32740.html @@ -0,0 +1,57 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>Struct template unordered_default_bucket_traits</title> +<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css"> +<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="unordered_bucket_ptr_impl.html" title="Struct template unordered_bucket_ptr_impl"> +<link rel="next" href="linear_slist_algorithms.html" title="Class template linear_slist_algorithms"> +<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> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td> +<td align="center"><a href="../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="unordered_bucket_ptr_impl.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="linear_slist_algorithms.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.intrusive.unordered_default_idm32740"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Struct template unordered_default_bucket_traits</span></h2> +<p>boost::intrusive::unordered_default_bucket_traits</p> +</div> +<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> ValueTraitsOrHookOption<span class="special">></span> +<span class="keyword">struct</span> <a class="link" href="unordered_default_idm32740.html" title="Struct template unordered_default_bucket_traits">unordered_default_bucket_traits</a> <span class="special">{</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <span class="identifier">ValueTraitsOrHookOption</span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">pack</span><span class="special"><</span> <span class="identifier">empty</span> <span class="special">></span><span class="special">::</span><span class="identifier">proto_value_traits</span> <a name="boost.intrusive.unordered_default_idm32740.supposed_value_traits"></a><span class="identifier">supposed_value_traits</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">bucket_traits_impl</span><span class="special"><</span> <span class="keyword">typename</span> <span class="identifier">unordered_bucket_ptr_impl</span><span class="special"><</span> <span class="identifier">supposed_value_traits</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="special">></span> <a name="boost.intrusive.unordered_default_idm32740.type"></a><span class="identifier">type</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="id-1.3.18.42.14.43.4"></a><h2>Description</h2> +<p>This metafunction will obtain the type of the default bucket traits (when the user does not specify the bucket_traits<> option) from the <a class="link" href="value_traits.html" title="Struct template value_traits">value_traits</a> or hook option to be used with a hash container. </p> +</div> +</div> +<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> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="unordered_bucket_ptr_impl.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="linear_slist_algorithms.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/doc/html/boost/intrusive/unordered_multiset.html b/doc/html/boost/intrusive/unordered_multiset.html index 5c39c04e0a..7978cd3ccd 100644 --- a/doc/html/boost/intrusive/unordered_multiset.html +++ b/doc/html/boost/intrusive/unordered_multiset.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.unordered_set_hpp" title="Header <boost/intrusive/unordered_set.hpp>"> <link rel="prev" href="make_unordered_set.html" title="Struct template make_unordered_set"> <link rel="next" href="unordered_set.html" title="Class template unordered_set"> +<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> @@ -29,12 +30,11 @@ <h2><span class="refentrytitle">Class template unordered_multiset</span></h2> <p>boost::intrusive::unordered_multiset</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.unordered_set_hpp" title="Header <boost/intrusive/unordered_set.hpp>">boost/intrusive/unordered_set.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.unordered_set_hpp" title="Header <boost/intrusive/unordered_set.hpp>">boost/intrusive/unordered_set.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="unordered_multiset.html" title="Class template unordered_multiset">unordered_multiset</a> <span class="special">:</span> <span class="keyword">public</span> boost::intrusive::hashtable< ValueTraits, VoidOrKeyOfValue, VoidOrKeyHash, VoidOrKeyEqual, BucketTraits, SizeType, BoolFlags > -<span class="special">{</span> +<span class="keyword">class</span> <a class="link" href="unordered_multiset.html" title="Class template unordered_multiset">unordered_multiset</a> <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">implementation_defined</span><span class="special">::</span><span class="identifier">value_type</span> <a name="boost.intrusive.unordered_multiset.value_type"></a><span class="identifier">value_type</span><span class="special">;</span> @@ -60,105 +60,104 @@ <span class="keyword">typedef</span> <span class="identifier">implementation_defined</span><span class="special">::</span><span class="identifier">node</span> <a name="boost.intrusive.unordered_multiset.node"></a><span class="identifier">node</span><span class="special">;</span> <span class="keyword">typedef</span> <span class="identifier">implementation_defined</span><span class="special">::</span><span class="identifier">node_ptr</span> <a name="boost.intrusive.unordered_multiset.node_ptr"></a><span class="identifier">node_ptr</span><span class="special">;</span> <span class="keyword">typedef</span> <span class="identifier">implementation_defined</span><span class="special">::</span><span class="identifier">const_node_ptr</span> <a name="boost.intrusive.unordered_multiset.const_node_ptr"></a><span class="identifier">const_node_ptr</span><span class="special">;</span> - <span class="keyword">typedef</span> <span class="identifier">implementation_defined</span><span class="special">::</span><span class="identifier">node_algorithms</span> <a name="boost.intrusive.unordered_multiset.node_algorithms"></a><span class="identifier">node_algorithms</span><span class="special">;</span> <span class="comment">// <a class="link" href="unordered_multiset.html#boost.intrusive.unordered_multisetconstruct-copy-destruct">construct/copy/destruct</a></span> - <span class="keyword">explicit</span> <a class="link" href="unordered_multiset.html#idm45971703852592-bb"><span class="identifier">unordered_multiset</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">bucket_traits</span> <span class="special">&</span><span class="special">,</span> + <span class="keyword">explicit</span> <a class="link" href="unordered_multiset.html#idm54804-bb"><span class="identifier">unordered_multiset</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">bucket_traits</span> <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="unordered_multiset.html#idm45971703842976-bb"><span class="identifier">unordered_multiset</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="keyword">const</span> <span class="identifier">bucket_traits</span> <span class="special">&</span><span class="special">,</span> + <a class="link" href="unordered_multiset.html#idm54816-bb"><span class="identifier">unordered_multiset</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="keyword">const</span> <span class="identifier">bucket_traits</span> <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="unordered_multiset.html#idm45971703832000-bb"><span class="identifier">unordered_multiset</span></a><span class="special">(</span><a class="link" href="unordered_multiset.html" title="Class template unordered_multiset">unordered_multiset</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> - <a class="link" href="unordered_multiset.html" title="Class template unordered_multiset">unordered_multiset</a> <span class="special">&</span> <a class="link" href="unordered_multiset.html#idm45971703829760-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><a class="link" href="unordered_multiset.html" title="Class template unordered_multiset">unordered_multiset</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> - <a class="link" href="unordered_multiset.html#idm45971703826944-bb"><span class="special">~</span><span class="identifier">unordered_multiset</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="unordered_multiset.html#idm54834-bb"><span class="identifier">unordered_multiset</span></a><span class="special">(</span><a class="link" href="unordered_multiset.html" title="Class template unordered_multiset">unordered_multiset</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="unordered_multiset.html" title="Class template unordered_multiset">unordered_multiset</a> <span class="special">&</span> <a class="link" href="unordered_multiset.html#idm54841-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><a class="link" href="unordered_multiset.html" title="Class template unordered_multiset">unordered_multiset</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="unordered_multiset.html#idm54850-bb"><span class="special">~</span><span class="identifier">unordered_multiset</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> - <span class="comment">// <a class="link" href="unordered_multiset.html#idm45971704223808-bb">public member functions</a></span> - <span class="identifier">iterator</span> <a class="link" href="unordered_multiset.html#idm45971704223248-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="unordered_multiset.html#idm45971704217904-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="unordered_multiset.html#idm45971704212544-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="unordered_multiset.html#idm45971704207184-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="unordered_multiset.html#idm45971704202624-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="unordered_multiset.html#idm45971704198064-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="unordered_multiset.html#idm45971704193504-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="unordered_multiset.html#idm45971704188928-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="unordered_multiset.html#idm45971704184336-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="unordered_multiset.html#idm45971704179648-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="unordered_multiset.html#idm45971704174304-bb"><span class="identifier">swap</span></a><span class="special">(</span><a class="link" href="unordered_multiset.html" title="Class template unordered_multiset">unordered_multiset</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="comment">// <a class="link" href="unordered_multiset.html#idm54205-bb">public member functions</a></span> + <span class="identifier">iterator</span> <a class="link" href="unordered_multiset.html#idm54206-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="unordered_multiset.html#idm54217-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="unordered_multiset.html#idm54228-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="unordered_multiset.html#idm54239-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="unordered_multiset.html#idm54249-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="unordered_multiset.html#idm54259-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="unordered_multiset.html#idm54269-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="unordered_multiset.html#idm54279-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="unordered_multiset.html#idm54289-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="unordered_multiset.html#idm54299-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="unordered_multiset.html#idm54310-bb"><span class="identifier">swap</span></a><span class="special">(</span><a class="link" href="unordered_multiset.html" title="Class template unordered_multiset">unordered_multiset</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="unordered_multiset.html#idm45971704167040-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="unordered_multiset.html" title="Class template unordered_multiset">unordered_multiset</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="unordered_multiset.html#idm54327-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="unordered_multiset.html" title="Class template unordered_multiset">unordered_multiset</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="unordered_multiset.html#idm45971704156816-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><a class="link" href="unordered_multiset.html" title="Class template unordered_multiset">unordered_multiset</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="unordered_multiset.html#idm45971704146768-bb"><span class="identifier">insert</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="unordered_multiset.html#idm45971704139056-bb"><span class="identifier">insert</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="unordered_multiset.html#idm45971704131312-bb"><span class="identifier">erase</span></a><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">void</span> <a class="link" href="unordered_multiset.html#idm45971704126128-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="unordered_multiset.html#idm45971704119936-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">void</span> <a class="link" href="unordered_multiset.html#idm54351-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><a class="link" href="unordered_multiset.html" title="Class template unordered_multiset">unordered_multiset</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="unordered_multiset.html#idm54375-bb"><span class="identifier">insert</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="unordered_multiset.html#idm54379-bb"><span class="identifier">insert</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="unordered_multiset.html#idm54398-bb"><span class="identifier">erase</span></a><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="unordered_multiset.html#idm54402-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="unordered_multiset.html#idm54408-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="unordered_multiset.html#idm45971704113776-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="unordered_multiset.html#idm54412-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="unordered_multiset.html#idm45971704102816-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="unordered_multiset.html#idm54438-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="unordered_multiset.html#idm45971704094928-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="unordered_multiset.html#idm54446-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="unordered_multiset.html#idm45971704086320-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="unordered_multiset.html#idm54456-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="unordered_multiset.html#idm45971704077680-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="unordered_multiset.html#idm54464-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="unordered_multiset.html#idm45971704066032-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="unordered_multiset.html#idm45971704061168-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="unordered_multiset.html#idm45971704053904-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="unordered_multiset.html#idm54492-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="unordered_multiset.html#idm54503-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="unordered_multiset.html#idm54520-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="unordered_multiset.html#idm45971704049296-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="unordered_multiset.html#idm45971704039920-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="unordered_multiset.html#idm54524-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="unordered_multiset.html#idm54546-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="unordered_multiset.html#idm45971704035552-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="unordered_multiset.html#idm45971704025360-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="unordered_multiset.html#idm54550-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="unordered_multiset.html#idm54574-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="unordered_multiset.html#idm45971704020752-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="unordered_multiset.html#idm45971704010288-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="unordered_multiset.html#idm54578-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="unordered_multiset.html#idm54602-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="unordered_multiset.html#idm45971704005840-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="unordered_multiset.html#idm54606-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="unordered_multiset.html#idm45971703995600-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="unordered_multiset.html#idm54630-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="unordered_multiset.html#idm45971703990864-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="unordered_multiset.html#idm45971703980336-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="unordered_multiset.html#idm45971703973376-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="unordered_multiset.html#idm45971703966416-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="unordered_multiset.html#idm45971703959488-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="unordered_multiset.html#idm45971703952560-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="unordered_multiset.html#idm45971703948704-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="unordered_multiset.html#idm45971703943312-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="unordered_multiset.html#idm54634-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="unordered_multiset.html#idm54658-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="unordered_multiset.html#idm54662-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="unordered_multiset.html#idm54666-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="unordered_multiset.html#idm54670-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="unordered_multiset.html#idm54674-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="unordered_multiset.html#idm54683-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="unordered_multiset.html#idm54696-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="unordered_multiset.html#idm45971703937808-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="unordered_multiset.html#idm45971703929216-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="unordered_multiset.html#idm45971703925344-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="unordered_multiset.html#idm45971703918976-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="unordered_multiset.html#idm45971703912608-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="unordered_multiset.html#idm45971703906240-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="unordered_multiset.html#idm45971703899888-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="unordered_multiset.html#idm45971703893520-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="unordered_multiset.html#idm45971703887152-bb"><span class="identifier">rehash</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">bucket_traits</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">void</span> <a class="link" href="unordered_multiset.html#idm45971703877504-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="unordered_multiset.html#idm45971703870096-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="unordered_multiset.html#idm45971703863840-bb"><span class="identifier">incremental_rehash</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">bucket_traits</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> - <span class="identifier">size_type</span> <a class="link" href="unordered_multiset.html#idm45971703857424-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="unordered_multiset.html#idm54700-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="unordered_multiset.html#idm54720-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="unordered_multiset.html#idm54729-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="unordered_multiset.html#idm54733-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="unordered_multiset.html#idm54737-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="unordered_multiset.html#idm54741-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="unordered_multiset.html#idm54745-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="unordered_multiset.html#idm54749-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="unordered_multiset.html#idm54753-bb"><span class="identifier">rehash</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">bucket_traits</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="unordered_multiset.html#idm54757-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="unordered_multiset.html#idm54773-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="unordered_multiset.html#idm54789-bb"><span class="identifier">incremental_rehash</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">bucket_traits</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">size_type</span> <a class="link" href="unordered_multiset.html#idm54793-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="unordered_multiset.html#idm45971703822368-bb">public static functions</a></span> - <span class="keyword">static</span> <span class="identifier">local_iterator</span> <a class="link" href="unordered_multiset.html#idm45971703821808-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="unordered_multiset.html#idm45971703813280-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="unordered_multiset.html#idm45971703804752-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="unordered_multiset.html#idm45971703799696-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="unordered_multiset.html#idm54860-bb">public static functions</a></span> + <span class="keyword">static</span> <span class="identifier">local_iterator</span> <a class="link" href="unordered_multiset.html#idm54861-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="unordered_multiset.html#idm54865-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="unordered_multiset.html#idm54869-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="unordered_multiset.html#idm54880-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="special">}</span><span class="special">;</span></pre></div> <div class="refsect1"> -<a name="id-1.3.20.42.44.5.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.44.5.4"></a><h2>Description</h2> <p>The class template <a class="link" href="unordered_multiset.html" title="Class template unordered_multiset">unordered_multiset</a> is an intrusive container, that mimics most of the interface of std::tr1::unordered_multiset as described in the C++ TR1.</p> <p><a class="link" href="unordered_multiset.html" title="Class template unordered_multiset">unordered_multiset</a> 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: <a class="link" href="unordered_multiset.html" title="Class template unordered_multiset">unordered_multiset</a> 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 <a class="link" href="unordered_multiset.html" title="Class template unordered_multiset">unordered_multiset</a> 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> @@ -168,185 +167,144 @@ <p><a class="link" href="unordered_multiset.html" title="Class template unordered_multiset">unordered_multiset</a>, unlike std::unordered_set, 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 rehasing. </p> <div class="refsect2"> -<a name="id-1.3.20.42.44.5.4.10"></a><h3> +<a name="id-1.3.18.42.44.5.4.10"></a><h3> <a name="boost.intrusive.unordered_multisetconstruct-copy-destruct"></a><code class="computeroutput">unordered_multiset</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="idm45971703852592-bb"></a><span class="identifier">unordered_multiset</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">bucket_traits</span> <span class="special">&</span> b_traits<span class="special">,</span> +<li class="listitem"><pre class="literallayout"><span class="keyword">explicit</span> <a name="idm54804-bb"></a><span class="identifier">unordered_multiset</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">bucket_traits</span> <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> -<p><span class="bold"><strong>Requires</strong></span>: buckets must not be being used by any other resource.</p> -<p><span class="bold"><strong>Effects</strong></span>: Constructs an empty <code class="computeroutput"><a class="link" href="unordered_set.html" title="Class template unordered_set">unordered_set</a></code>, storing a reference to the bucket array and copies of the key_hasher and equal_func functors.</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 constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor or invocation of hash_func or equal_func throws.</p> -<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"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Iterator<span class="special">></span> - <a name="idm45971703842976-bb"></a><span class="identifier">unordered_multiset</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="keyword">const</span> <span class="identifier">bucket_traits</span> <span class="special">&</span> b_traits<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></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="idm54816-bb"></a><span class="identifier">unordered_multiset</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="keyword">const</span> <span class="identifier">bucket_traits</span> <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> -<p><span class="bold"><strong>Requires</strong></span>: buckets must not be being used by any other resource and dereferencing iterator must yield an lvalue of type value_type.</p> -<p><span class="bold"><strong>Effects</strong></span>: Constructs an empty container and inserts elements from [b, e).</p> -<p><span class="bold"><strong>Complexity</strong></span>: If N is distance(b, e): Average case is O(N) (with a good hash function and with buckets_len >= N),worst case O(N^2).</p> -<p><span class="bold"><strong>Throws</strong></span>: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor or invocation of hasher or key_equal throws.</p> -<p><span class="bold"><strong>Notes</strong></span>: buckets array must be disposed only after *this is disposed. </p> -</li> + <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></li> <li class="listitem"> -<pre class="literallayout"><a name="idm45971703832000-bb"></a><span class="identifier">unordered_multiset</span><span class="special">(</span><a class="link" href="unordered_multiset.html" title="Class template unordered_multiset">unordered_multiset</a> <span class="special">&&</span> x<span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm54834-bb"></a><span class="identifier">unordered_multiset</span><span class="special">(</span><a class="link" href="unordered_multiset.html" title="Class template unordered_multiset">unordered_multiset</a> <span class="special">&&</span> x<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: to-do </p> </li> <li class="listitem"> -<pre class="literallayout"><a class="link" href="unordered_multiset.html" title="Class template unordered_multiset">unordered_multiset</a> <span class="special">&</span> <a name="idm45971703829760-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><a class="link" href="unordered_multiset.html" title="Class template unordered_multiset">unordered_multiset</a> <span class="special">&&</span> x<span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a class="link" href="unordered_multiset.html" title="Class template unordered_multiset">unordered_multiset</a> <span class="special">&</span> <a name="idm54841-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><a class="link" href="unordered_multiset.html" title="Class template unordered_multiset">unordered_multiset</a> <span class="special">&&</span> x<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: to-do </p> </li> <li class="listitem"> -<pre class="literallayout"><a name="idm45971703826944-bb"></a><span class="special">~</span><span class="identifier">unordered_multiset</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm54850-bb"></a><span class="special">~</span><span class="identifier">unordered_multiset</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> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> </ol></div> </div> <div class="refsect2"> -<a name="id-1.3.20.42.44.5.4.11"></a><h3> -<a name="idm45971704223808-bb"></a><code class="computeroutput">unordered_multiset</code> public member functions</h3> +<a name="id-1.3.18.42.44.5.4.11"></a><h3> +<a name="idm54205-bb"></a><code class="computeroutput">unordered_multiset</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="idm45971704223248-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="idm54206-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> +<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="idm45971704217904-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="idm54217-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> +<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="idm45971704212544-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="idm54228-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> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971704207184-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="idm54239-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> +<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="idm45971704202624-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="idm54249-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> +<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="idm45971704198064-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="idm54259-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> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">hasher</span> <a name="idm45971704193504-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="idm54269-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> +<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="idm45971704188928-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="idm54279-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> +<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="idm45971704184336-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="idm54289-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> +<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="idm45971704179648-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="idm54299-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> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971704174304-bb"></a><span class="identifier">swap</span><span class="special">(</span><a class="link" href="unordered_multiset.html" title="Class template unordered_multiset">unordered_multiset</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="idm54310-bb"></a><span class="identifier">swap</span><span class="special">(</span><a class="link" href="unordered_multiset.html" title="Class template unordered_multiset">unordered_multiset</a> <span class="special">&</span> other<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: buckets must not be being used by any other resource.</p> <p><span class="bold"><strong>Effects</strong></span>: Constructs an empty <code class="computeroutput"><a class="link" href="unordered_set.html" title="Class template unordered_set">unordered_set</a></code>, storing a reference to the bucket array and copies of the key_hasher and equal_func functors.</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 constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor or invocation of hash_func or equal_func throws.</p> -<p><span class="bold"><strong>Notes</strong></span>: buckets array must be disposed only after *this is disposed. </p> +<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"><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="idm45971704167040-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="unordered_multiset.html" title="Class template unordered_multiset">unordered_multiset</a> <span class="special">&</span> src<span class="special">,</span> <span class="identifier">Cloner</span> cloner<span class="special">,</span> + <span class="keyword">void</span> <a name="idm54327-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="unordered_multiset.html" title="Class template unordered_multiset">unordered_multiset</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> <p>If any operation throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to erased plus inserted elements.</p> -<p><span class="bold"><strong>Throws</strong></span>: If cloner or hasher throw or hash or equality predicate copying throws. Basic guarantee. </p> +<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="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="idm45971704156816-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><a class="link" href="unordered_multiset.html" title="Class template unordered_multiset">unordered_multiset</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="idm54351-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><a class="link" href="unordered_multiset.html" title="Class template unordered_multiset">unordered_multiset</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> <p>If any operation throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to erased plus inserted elements.</p> -<p><span class="bold"><strong>Throws</strong></span>: If cloner or hasher throw or hash or equality predicate copying throws. Basic guarantee. </p> +<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="idm54375-bb"></a><span class="identifier">insert</span><span class="special">(</span><span class="identifier">reference</span> value<span class="special">)</span><span class="special">;</span></pre></li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971704146768-bb"></a><span class="identifier">insert</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> -<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. Strong guarantee.</p> -<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="idm45971704139056-bb"></a><span class="identifier">insert</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="idm54379-bb"></a><span class="identifier">insert</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> <p><span class="bold"><strong>Throws</strong></span>: If the internal hasher or the equality functor throws. Basic guarantee.</p> -<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">void</span> <a name="idm45971704131312-bb"></a><span class="identifier">erase</span><span class="special">(</span><span class="identifier">const_iterator</span> i<span class="special">)</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="idm45971704126128-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="idm45971704119936-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> -<p><span class="bold"><strong>Throws</strong></span>: If the internal hasher or the equality functor throws. Basic guarantee.</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> +<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">void</span> <a name="idm54398-bb"></a><span class="identifier">erase</span><span class="special">(</span><span class="identifier">const_iterator</span> i<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">void</span> <a name="idm54402-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">size_type</span> <a name="idm54408-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></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="idm45971704113776-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="idm54412-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> @@ -354,350 +312,197 @@ <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> <p><span class="bold"><strong>Throws</strong></span>: If hash_func or equal_func throw. Basic guarantee.</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="idm45971704102816-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> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<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">template</span><span class="special"><</span><span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="keyword">void</span> <a name="idm45971704094928-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> -<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 to the erased elements. </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="identifier">size_type</span> <a name="idm45971704086320-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> -<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. Basic guarantee.</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> +<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="idm54438-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></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="idm54446-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></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="idm54456-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></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="keyword">typename</span> Disposer<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971704077680-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="idm54464-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> <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> <p><span class="bold"><strong>Throws</strong></span>: If hash_func or equal_func throw. Basic guarantee.</p> -<p><span class="bold"><strong>Note</strong></span>: Invalidates the iterators to the erased elements. </p> +<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="idm45971704066032-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="idm54492-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> +<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="idm45971704061168-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="idm54503-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> <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="idm45971704053904-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> +<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="idm54520-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></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="idm45971704049296-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="idm54524-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> <p><span class="bold"><strong>Effects</strong></span>: Returns the number of contained elements with the given key</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 hash_func or equal throw. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971704039920-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> +<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="idm54546-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></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="idm45971704035552-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="idm54550-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> <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 hash_func or equal_func throw.</p> -<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="idm45971704025360-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>: 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> +<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="idm54574-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></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">const_iterator</span> - <a name="idm45971704020752-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="idm54578-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> <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 hash_func or equal_func throw.</p> -<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="idm45971704010288-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> +<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="idm54602-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></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">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="idm45971704005840-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="idm54606-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> <p><span class="bold"><strong>Complexity</strong></span>: Average case O(this->count(key, hash_func, equal_func)). Worst case O(this->size()).</p> <p><span class="bold"><strong>Throws</strong></span>: If hash_func or the equal_func throw.</p> -<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">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">></span> -<a name="idm45971703995600-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> +<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">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">></span> +<a name="idm54630-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></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">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="idm45971703990864-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="idm54634-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> <p><span class="bold"><strong>Complexity</strong></span>: Average case O(this->count(key, hash_func, equal_func)). Worst case O(this->size()).</p> <p><span class="bold"><strong>Throws</strong></span>: If the hasher or equal_func throw.</p> -<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="idm45971703980336-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="idm45971703973376-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="idm45971703966416-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="idm45971703959488-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 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> +<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="idm54658-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm54662-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">local_iterator</span> <a name="idm54666-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_local_iterator</span> <a name="idm54670-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></li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">size_type</span> <a name="idm45971703952560-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="idm54674-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> +<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="idm45971703948704-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="idm54683-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="idm45971703943312-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> -<p><span class="bold"><strong>Note</strong></span>: the return value is in the range [0, this->bucket_count()). </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="idm54696-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></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="idm45971703937808-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="idm54700-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> <p><span class="bold"><strong>Throws</strong></span>: If hash_func throws.</p> -<p><span class="bold"><strong>Note</strong></span>: the return value is in the range [0, this->bucket_count()). </p> +<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="idm45971703929216-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="idm54720-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> +<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="idm54729-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_local_iterator</span> <a name="idm54733-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_local_iterator</span> <a name="idm54737-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">local_iterator</span> <a name="idm54741-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_local_iterator</span> <a name="idm54745-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_local_iterator</span> <a name="idm54749-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></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">void</span> <a name="idm54753-bb"></a><span class="identifier">rehash</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">bucket_traits</span> <span class="special">&</span> new_bucket_traits<span class="special">)</span><span class="special">;</span></pre></li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">local_iterator</span> <a name="idm45971703925344-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> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<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="idm45971703918976-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> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<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="idm45971703912608-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> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<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="idm45971703906240-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> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<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="idm45971703899888-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> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<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="idm45971703893520-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> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<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="idm45971703887152-bb"></a><span class="identifier">rehash</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">bucket_traits</span> <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> -<p>Bucket traits hold by *this is assigned from new_bucket_traits. If the container is configured as incremental<>, the split bucket is set to the new bucket_count().</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. If false, the implementation tries to minimize calls to the hash function (e.g. once for equivalent values if optimize_multikey<true> is true).</p> -<p>If rehash is successful updates the internal <code class="computeroutput"><a class="link" href="bucket_traits.html" title="Struct template bucket_traits">bucket_traits</a></code> with new_bucket_traits.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Average case linear in this->size(), worst case quadratic.</p> -<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="idm45971703877504-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="idm54757-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> <p><span class="bold"><strong>Effects</strong></span>: Reprocesses all values hold by *this, recalculating their hash values and redistributing them though the buckets.</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 uses the hash function and updates the stored hash value.</p> <p><span class="bold"><strong>Complexity</strong></span>: Average case linear in this->size(), worst case quadratic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the hasher functor throws. Basic guarantee. </p> +<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="idm45971703870096-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="idm54773-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> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">bool</span> <a name="idm45971703863840-bb"></a><span class="identifier">incremental_rehash</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">bucket_traits</span> <span class="special">&</span> new_bucket_traits<span class="special">)</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> -<p><span class="bold"><strong>Throws</strong></span>: Nothing</p> -<p><span class="bold"><strong>Note</strong></span>: this method is only available if incremental<true> option is activated. </p> +<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="keyword">bool</span> <a name="idm54789-bb"></a><span class="identifier">incremental_rehash</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">bucket_traits</span> <span class="special">&</span> new_bucket_traits<span class="special">)</span><span class="special">;</span></pre></li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">size_type</span> <a name="idm45971703857424-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="idm54793-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> -<p><span class="bold"><strong>Throws</strong></span>: Nothing </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing </p> </li> </ol></div> </div> <div class="refsect2"> -<a name="id-1.3.20.42.44.5.4.12"></a><h3> -<a name="idm45971703822368-bb"></a><code class="computeroutput">unordered_multiset</code> public static functions</h3> +<a name="id-1.3.18.42.44.5.4.12"></a><h3> +<a name="idm54860-bb"></a><code class="computeroutput">unordered_multiset</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="idm54861-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></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">const_local_iterator</span> +<a name="idm54865-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></li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="identifier">local_iterator</span> <a name="idm45971703821808-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> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<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">const_local_iterator</span> -<a name="idm45971703813280-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 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> -<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="idm45971703804752-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="idm54869-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> +<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="idm45971703799696-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="idm54880-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> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> </ol></div> </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="make_unordered_set.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.unordered_set_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="unordered_set.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/unordered_set.html b/doc/html/boost/intrusive/unordered_set.html index a9c3667945..d4d0058f28 100644 --- a/doc/html/boost/intrusive/unordered_set.html +++ b/doc/html/boost/intrusive/unordered_set.html @@ -8,7 +8,8 @@ <link rel="home" href="../../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset"> <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.unordered_set_hpp" title="Header <boost/intrusive/unordered_set.hpp>"> <link rel="prev" href="unordered_multiset.html" title="Class template unordered_multiset"> -<link rel="next" href="make_uno_idm45971703288480.html" title="Struct template make_unordered_set_base_hook"> +<link rel="next" href="make_unordered_se_idm55705.html" title="Struct template make_unordered_set_base_hook"> +<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="unordered_multiset.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.unordered_set_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_uno_idm45971703288480.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +<a accesskey="p" href="unordered_multiset.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.unordered_set_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_unordered_se_idm55705.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> </div> <div class="refentry"> <a name="boost.intrusive.unordered_set"></a><div class="titlepage"></div> @@ -29,12 +30,11 @@ <h2><span class="refentrytitle">Class template unordered_set</span></h2> <p>boost::intrusive::unordered_set</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.unordered_set_hpp" title="Header <boost/intrusive/unordered_set.hpp>">boost/intrusive/unordered_set.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.unordered_set_hpp" title="Header <boost/intrusive/unordered_set.hpp>">boost/intrusive/unordered_set.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="unordered_set.html" title="Class template unordered_set">unordered_set</a> <span class="special">:</span> <span class="keyword">public</span> boost::intrusive::hashtable< ValueTraits, VoidOrKeyOfValue, VoidOrKeyHash, VoidOrKeyEqual, BucketTraits, SizeType, BoolFlags|hash_bool_flags::unique_keys_pos > -<span class="special">{</span> +<span class="keyword">class</span> <a class="link" href="unordered_set.html" title="Class template unordered_set">unordered_set</a> <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">implementation_defined</span><span class="special">::</span><span class="identifier">value_type</span> <a name="boost.intrusive.unordered_set.value_type"></a><span class="identifier">value_type</span><span class="special">;</span> @@ -61,109 +61,108 @@ <span class="keyword">typedef</span> <span class="identifier">implementation_defined</span><span class="special">::</span><span class="identifier">node</span> <a name="boost.intrusive.unordered_set.node"></a><span class="identifier">node</span><span class="special">;</span> <span class="keyword">typedef</span> <span class="identifier">implementation_defined</span><span class="special">::</span><span class="identifier">node_ptr</span> <a name="boost.intrusive.unordered_set.node_ptr"></a><span class="identifier">node_ptr</span><span class="special">;</span> <span class="keyword">typedef</span> <span class="identifier">implementation_defined</span><span class="special">::</span><span class="identifier">const_node_ptr</span> <a name="boost.intrusive.unordered_set.const_node_ptr"></a><span class="identifier">const_node_ptr</span><span class="special">;</span> - <span class="keyword">typedef</span> <span class="identifier">implementation_defined</span><span class="special">::</span><span class="identifier">node_algorithms</span> <a name="boost.intrusive.unordered_set.node_algorithms"></a><span class="identifier">node_algorithms</span><span class="special">;</span> <span class="comment">// <a class="link" href="unordered_set.html#boost.intrusive.unordered_setconstruct-copy-destruct">construct/copy/destruct</a></span> - <span class="keyword">explicit</span> <a class="link" href="unordered_set.html#idm45971703351024-bb"><span class="identifier">unordered_set</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">bucket_traits</span> <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="unordered_set.html#idm55611-bb"><span class="identifier">unordered_set</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">bucket_traits</span> <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="unordered_set.html#idm45971703341408-bb"><span class="identifier">unordered_set</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="keyword">const</span> <span class="identifier">bucket_traits</span> <span class="special">&</span><span class="special">,</span> + <a class="link" href="unordered_set.html#idm55623-bb"><span class="identifier">unordered_set</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="keyword">const</span> <span class="identifier">bucket_traits</span> <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="unordered_set.html#idm45971703330432-bb"><span class="identifier">unordered_set</span></a><span class="special">(</span><a class="link" href="unordered_set.html" title="Class template unordered_set">unordered_set</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> - <a class="link" href="unordered_set.html" title="Class template unordered_set">unordered_set</a> <span class="special">&</span> <a class="link" href="unordered_set.html#idm45971703326128-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><a class="link" href="unordered_set.html" title="Class template unordered_set">unordered_set</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> - <a class="link" href="unordered_set.html#idm45971703323312-bb"><span class="special">~</span><span class="identifier">unordered_set</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="unordered_set.html#idm55641-bb"><span class="identifier">unordered_set</span></a><span class="special">(</span><a class="link" href="unordered_set.html" title="Class template unordered_set">unordered_set</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="unordered_set.html" title="Class template unordered_set">unordered_set</a> <span class="special">&</span> <a class="link" href="unordered_set.html#idm55652-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><a class="link" href="unordered_set.html" title="Class template unordered_set">unordered_set</a> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="unordered_set.html#idm55661-bb"><span class="special">~</span><span class="identifier">unordered_set</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> - <span class="comment">// <a class="link" href="unordered_set.html#idm45971703757280-bb">public member functions</a></span> - <span class="identifier">iterator</span> <a class="link" href="unordered_set.html#idm45971703756720-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="unordered_set.html#idm45971703751376-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="unordered_set.html#idm45971703746016-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="unordered_set.html#idm45971703740656-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="unordered_set.html#idm45971703736096-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="unordered_set.html#idm45971703731536-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="unordered_set.html#idm45971703726976-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="unordered_set.html#idm45971703722400-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="unordered_set.html#idm45971703717808-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="unordered_set.html#idm45971703713120-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="unordered_set.html#idm45971703707776-bb"><span class="identifier">swap</span></a><span class="special">(</span><a class="link" href="unordered_set.html" title="Class template unordered_set">unordered_set</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="comment">// <a class="link" href="unordered_set.html#idm54970-bb">public member functions</a></span> + <span class="identifier">iterator</span> <a class="link" href="unordered_set.html#idm54971-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="unordered_set.html#idm54982-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="unordered_set.html#idm54993-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="unordered_set.html#idm55004-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="unordered_set.html#idm55014-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="unordered_set.html#idm55024-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="unordered_set.html#idm55034-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="unordered_set.html#idm55044-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="unordered_set.html#idm55054-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="unordered_set.html#idm55064-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="unordered_set.html#idm55075-bb"><span class="identifier">swap</span></a><span class="special">(</span><a class="link" href="unordered_set.html" title="Class template unordered_set">unordered_set</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="unordered_set.html#idm45971703700512-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="unordered_set.html" title="Class template unordered_set">unordered_set</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="unordered_set.html#idm55092-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="unordered_set.html" title="Class template unordered_set">unordered_set</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="unordered_set.html#idm45971703690288-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><a class="link" href="unordered_set.html" title="Class template unordered_set">unordered_set</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">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="unordered_set.html#idm45971703680240-bb"><span class="identifier">insert</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="unordered_set.html#idm45971703672320-bb"><span class="identifier">insert</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="unordered_set.html#idm55116-bb"><span class="identifier">clone_from</span></a><span class="special">(</span><a class="link" href="unordered_set.html" title="Class template unordered_set">unordered_set</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">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="unordered_set.html#idm55140-bb"><span class="identifier">insert</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="unordered_set.html#idm55144-bb"><span class="identifier">insert</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="unordered_set.html#idm45971703664576-bb"><span class="identifier">insert_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> + <a class="link" href="unordered_set.html#idm55163-bb"><span class="identifier">insert_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="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="unordered_set.html#idm45971703654592-bb"><span class="identifier">insert_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">iterator</span> <a class="link" href="unordered_set.html#idm45971703639808-bb"><span class="identifier">insert_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="unordered_set.html#idm45971703629744-bb"><span class="identifier">erase</span></a><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">void</span> <a class="link" href="unordered_set.html#idm45971703624560-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="unordered_set.html#idm45971703618368-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="unordered_set.html#idm55169-bb"><span class="identifier">insert_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">iterator</span> <a class="link" href="unordered_set.html#idm55183-bb"><span class="identifier">insert_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="unordered_set.html#idm55205-bb"><span class="identifier">erase</span></a><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="unordered_set.html#idm55209-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="unordered_set.html#idm55215-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="unordered_set.html#idm45971703612208-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="unordered_set.html#idm55219-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="unordered_set.html#idm45971703601248-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="unordered_set.html#idm55245-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="unordered_set.html#idm45971703593360-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="unordered_set.html#idm55253-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="unordered_set.html#idm45971703584752-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="unordered_set.html#idm55263-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="unordered_set.html#idm45971703576112-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="unordered_set.html#idm55271-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="unordered_set.html#idm45971703564464-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="unordered_set.html#idm45971703559600-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="unordered_set.html#idm45971703552336-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="unordered_set.html#idm55299-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="unordered_set.html#idm55310-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="unordered_set.html#idm55327-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="unordered_set.html#idm45971703547728-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="unordered_set.html#idm45971703538352-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="unordered_set.html#idm55331-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="unordered_set.html#idm55353-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="unordered_set.html#idm45971703533984-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="unordered_set.html#idm45971703523792-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="unordered_set.html#idm55357-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="unordered_set.html#idm55381-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="unordered_set.html#idm45971703519184-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="unordered_set.html#idm45971703508720-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="unordered_set.html#idm55385-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="unordered_set.html#idm55409-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="unordered_set.html#idm45971703504272-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="unordered_set.html#idm55413-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="unordered_set.html#idm45971703494032-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="unordered_set.html#idm55437-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="unordered_set.html#idm45971703489296-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="unordered_set.html#idm45971703478768-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="unordered_set.html#idm45971703471808-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="unordered_set.html#idm45971703464848-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="unordered_set.html#idm45971703457920-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="unordered_set.html#idm45971703450992-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="unordered_set.html#idm45971703447136-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="unordered_set.html#idm45971703441744-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="unordered_set.html#idm55441-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="unordered_set.html#idm55465-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="unordered_set.html#idm55469-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="unordered_set.html#idm55473-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="unordered_set.html#idm55477-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="unordered_set.html#idm55481-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="unordered_set.html#idm55490-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="unordered_set.html#idm55503-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="unordered_set.html#idm45971703436240-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="unordered_set.html#idm45971703427648-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="unordered_set.html#idm45971703423776-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="unordered_set.html#idm45971703417408-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="unordered_set.html#idm45971703411040-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="unordered_set.html#idm45971703404672-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="unordered_set.html#idm45971703398320-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="unordered_set.html#idm45971703391952-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="unordered_set.html#idm45971703385584-bb"><span class="identifier">rehash</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">bucket_traits</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">void</span> <a class="link" href="unordered_set.html#idm45971703375936-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="unordered_set.html#idm45971703368528-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="unordered_set.html#idm45971703362272-bb"><span class="identifier">incremental_rehash</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">bucket_traits</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> - <span class="identifier">size_type</span> <a class="link" href="unordered_set.html#idm45971703355856-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="unordered_set.html#idm55507-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="unordered_set.html#idm55527-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="unordered_set.html#idm55536-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="unordered_set.html#idm55540-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="unordered_set.html#idm55544-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="unordered_set.html#idm55548-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="unordered_set.html#idm55552-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="unordered_set.html#idm55556-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="unordered_set.html#idm55560-bb"><span class="identifier">rehash</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">bucket_traits</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="unordered_set.html#idm55564-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="unordered_set.html#idm55580-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="unordered_set.html#idm55596-bb"><span class="identifier">incremental_rehash</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">bucket_traits</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">size_type</span> <a class="link" href="unordered_set.html#idm55600-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="unordered_set.html#idm45971703318736-bb">public static functions</a></span> - <span class="keyword">static</span> <span class="identifier">local_iterator</span> <a class="link" href="unordered_set.html#idm45971703318176-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="unordered_set.html#idm45971703309648-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="unordered_set.html#idm45971703301120-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="unordered_set.html#idm45971703296064-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="unordered_set.html#idm55671-bb">public static functions</a></span> + <span class="keyword">static</span> <span class="identifier">local_iterator</span> <a class="link" href="unordered_set.html#idm55672-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="unordered_set.html#idm55676-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="unordered_set.html#idm55680-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="unordered_set.html#idm55691-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="special">}</span><span class="special">;</span></pre></div> <div class="refsect1"> -<a name="id-1.3.20.42.44.6.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.44.6.4"></a><h2>Description</h2> <p>The class template <a class="link" href="unordered_set.html" title="Class template unordered_set">unordered_set</a> is an intrusive container, that mimics most of the interface of std::tr1::unordered_set as described in the C++ TR1.</p> <p><a class="link" href="unordered_set.html" title="Class template unordered_set">unordered_set</a> 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: <a class="link" href="unordered_set.html" title="Class template unordered_set">unordered_set</a> 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 <a class="link" href="unordered_set.html" title="Class template unordered_set">unordered_set</a> 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> @@ -173,191 +172,147 @@ <p><a class="link" href="unordered_set.html" title="Class template unordered_set">unordered_set</a>, unlike std::unordered_set, 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 rehasing. </p> <div class="refsect2"> -<a name="id-1.3.20.42.44.6.4.10"></a><h3> +<a name="id-1.3.18.42.44.6.4.10"></a><h3> <a name="boost.intrusive.unordered_setconstruct-copy-destruct"></a><code class="computeroutput">unordered_set</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="idm45971703351024-bb"></a><span class="identifier">unordered_set</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">bucket_traits</span> <span class="special">&</span> b_traits<span class="special">,</span> +<li class="listitem"><pre class="literallayout"><span class="keyword">explicit</span> <a name="idm55611-bb"></a><span class="identifier">unordered_set</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">bucket_traits</span> <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> -<p><span class="bold"><strong>Requires</strong></span>: buckets must not be being used by any other resource.</p> -<p><span class="bold"><strong>Effects</strong></span>: Constructs an empty <code class="computeroutput"><a class="link" href="unordered_set.html" title="Class template unordered_set">unordered_set</a></code>, storing a reference to the bucket array and copies of the key_hasher and equal_func functors.</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 constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor or invocation of hash_func or equal_func throws.</p> -<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"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Iterator<span class="special">></span> - <a name="idm45971703341408-bb"></a><span class="identifier">unordered_set</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="keyword">const</span> <span class="identifier">bucket_traits</span> <span class="special">&</span> b_traits<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></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="idm55623-bb"></a><span class="identifier">unordered_set</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="keyword">const</span> <span class="identifier">bucket_traits</span> <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> -<p><span class="bold"><strong>Requires</strong></span>: buckets must not be being used by any other resource and dereferencing iterator must yield an lvalue of type value_type.</p> -<p><span class="bold"><strong>Effects</strong></span>: Constructs an empty container and inserts elements from [b, e).</p> -<p><span class="bold"><strong>Complexity</strong></span>: If N is distance(b, e): Average case is O(N) (with a good hash function and with buckets_len >= N),worst case O(N^2).</p> -<p><span class="bold"><strong>Throws</strong></span>: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor or invocation of hasher or key_equal throws.</p> -<p><span class="bold"><strong>Notes</strong></span>: buckets array must be disposed only after *this is disposed. </p> -</li> + <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></li> <li class="listitem"> -<pre class="literallayout"><a name="idm45971703330432-bb"></a><span class="identifier">unordered_set</span><span class="special">(</span><a class="link" href="unordered_set.html" title="Class template unordered_set">unordered_set</a> <span class="special">&&</span> x<span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm55641-bb"></a><span class="identifier">unordered_set</span><span class="special">(</span><a class="link" href="unordered_set.html" title="Class template unordered_set">unordered_set</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> +<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="unordered_set.html" title="Class template unordered_set">unordered_set</a> <span class="special">&</span> <a name="idm45971703326128-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><a class="link" href="unordered_set.html" title="Class template unordered_set">unordered_set</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> +<pre class="literallayout"><a class="link" href="unordered_set.html" title="Class template unordered_set">unordered_set</a> <span class="special">&</span> <a name="idm55652-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><a class="link" href="unordered_set.html" title="Class template unordered_set">unordered_set</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="idm45971703323312-bb"></a><span class="special">~</span><span class="identifier">unordered_set</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm55661-bb"></a><span class="special">~</span><span class="identifier">unordered_set</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> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> </ol></div> </div> <div class="refsect2"> -<a name="id-1.3.20.42.44.6.4.11"></a><h3> -<a name="idm45971703757280-bb"></a><code class="computeroutput">unordered_set</code> public member functions</h3> +<a name="id-1.3.18.42.44.6.4.11"></a><h3> +<a name="idm54970-bb"></a><code class="computeroutput">unordered_set</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="idm45971703756720-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="idm54971-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> +<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="idm45971703751376-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="idm54982-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> +<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="idm45971703746016-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="idm54993-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> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971703740656-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="idm55004-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> +<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="idm45971703736096-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="idm55014-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> +<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="idm45971703731536-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="idm55024-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> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">hasher</span> <a name="idm45971703726976-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="idm55034-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> +<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="idm45971703722400-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="idm55044-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> +<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="idm45971703717808-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="idm55054-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> +<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="idm45971703713120-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="idm55064-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> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971703707776-bb"></a><span class="identifier">swap</span><span class="special">(</span><a class="link" href="unordered_set.html" title="Class template unordered_set">unordered_set</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="idm55075-bb"></a><span class="identifier">swap</span><span class="special">(</span><a class="link" href="unordered_set.html" title="Class template unordered_set">unordered_set</a> <span class="special">&</span> other<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Requires</strong></span>: buckets must not be being used by any other resource.</p> <p><span class="bold"><strong>Effects</strong></span>: Constructs an empty <code class="computeroutput"><a class="link" href="unordered_set.html" title="Class template unordered_set">unordered_set</a></code>, storing a reference to the bucket array and copies of the key_hasher and equal_func functors.</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 constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor or invocation of hash_func or equal_func throws.</p> -<p><span class="bold"><strong>Notes</strong></span>: buckets array must be disposed only after *this is disposed. </p> +<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"><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="idm45971703700512-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="unordered_set.html" title="Class template unordered_set">unordered_set</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="idm55092-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="unordered_set.html" title="Class template unordered_set">unordered_set</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> <p>If any operation throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to erased plus inserted elements.</p> -<p><span class="bold"><strong>Throws</strong></span>: If cloner or hasher throw or hash or equality predicate copying throws. Basic guarantee. </p> +<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="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="idm45971703690288-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><a class="link" href="unordered_set.html" title="Class template unordered_set">unordered_set</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="idm55116-bb"></a><span class="identifier">clone_from</span><span class="special">(</span><a class="link" href="unordered_set.html" title="Class template unordered_set">unordered_set</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> <p>If any operation throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).</p> <p><span class="bold"><strong>Complexity</strong></span>: Linear to erased plus inserted elements.</p> -<p><span class="bold"><strong>Throws</strong></span>: If cloner or hasher throw or hash or equality predicate copying throws. Basic guarantee. </p> +<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">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="idm55140-bb"></a><span class="identifier">insert</span><span class="special">(</span><span class="identifier">reference</span> value<span class="special">)</span><span class="special">;</span></pre></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="idm45971703680240-bb"></a><span class="identifier">insert</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> -<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. Strong guarantee.</p> -<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="idm45971703672320-bb"></a><span class="identifier">insert</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="idm55144-bb"></a><span class="identifier">insert</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> <p><span class="bold"><strong>Throws</strong></span>: If the internal hasher or the equality functor throws. Basic guarantee.</p> -<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="idm45971703664576-bb"></a><span class="identifier">insert_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> -<p><span class="bold"><strong>Throws</strong></span>: If hasher or key_compare throw. Strong guarantee.</p> -<p><span class="bold"><strong>Notes</strong></span>: This function is used to improve performance when constructing a value_type is expensive: if there is an equivalent value the constructed object must be discarded. Many times, the part of the node that is used to impose the hash or the equality is much cheaper to construct than the value_type and this function offers the possibility to use that the part to check if the insertion will be successful.</p> -<p>If the check is successful, the user can construct the value_type and use "insert_commit" to insert the object in constant-time.</p> -<p>"commit_data" remains valid for a subsequent "insert_commit" only if no more objects are inserted or erased from the <code class="computeroutput"><a class="link" href="unordered_set.html" title="Class template unordered_set">unordered_set</a></code>.</p> -<p>After a successful rehashing insert_commit_data remains valid. </p> +<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> 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> +<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="idm55163-bb"></a><span class="identifier">insert_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></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">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="idm45971703654592-bb"></a><span class="identifier">insert_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> hasher<span class="special">,</span> - <span class="identifier">KeyEqual</span> key_value_equal<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> -<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> -<p><span class="bold"><strong>Throws</strong></span>: If hash_func or equal_func throw. Strong guarantee.</p> -<p><span class="bold"><strong>Notes</strong></span>: This function is used to improve performance when constructing a value_type is expensive: if there is an equivalent value the constructed object must be discarded. Many times, the part of the node that is used to impose the hash or the equality is much cheaper to construct than the value_type and this function offers the possibility to use that the part to check if the insertion will be successful.</p> -<p>If the check is successful, the user can construct the value_type and use "insert_commit" to insert the object in constant-time.</p> -<p>"commit_data" remains valid for a subsequent "insert_commit" only if no more objects are inserted or erased from the <code class="computeroutput"><a class="link" href="unordered_set.html" title="Class template unordered_set">unordered_set</a></code>.</p> -<p>After a successful rehashing insert_commit_data remains valid. </p> -</li> + <a name="idm55169-bb"></a><span class="identifier">insert_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> key_value_equal<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></li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971703639808-bb"></a><span class="identifier">insert_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="idm55183-bb"></a><span class="identifier">insert_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> @@ -365,33 +320,14 @@ <p><span class="bold"><strong>Complexity</strong></span>: Constant time.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Notes</strong></span>: This function has only sense if a "insert_check" has been previously executed to fill "commit_data". No value should be inserted or erased between the "insert_check" and "insert_commit" calls.</p> -<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="idm45971703629744-bb"></a><span class="identifier">erase</span><span class="special">(</span><span class="identifier">const_iterator</span> i<span class="special">)</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="idm45971703624560-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="idm45971703618368-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> -<p><span class="bold"><strong>Throws</strong></span>: If the internal hasher or the equality functor throws. Basic guarantee.</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> +<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="idm55205-bb"></a><span class="identifier">erase</span><span class="special">(</span><span class="identifier">const_iterator</span> i<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">void</span> <a name="idm55209-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">size_type</span> <a name="idm55215-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></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="idm45971703612208-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="idm55219-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> @@ -399,353 +335,200 @@ <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> <p><span class="bold"><strong>Throws</strong></span>: If hash_func or equal_func throw. Basic guarantee.</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="idm45971703601248-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> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<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">template</span><span class="special"><</span><span class="keyword">typename</span> Disposer<span class="special">></span> - <span class="keyword">void</span> <a name="idm45971703593360-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> -<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 to the erased elements. </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="identifier">size_type</span> <a name="idm45971703584752-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> -<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. Basic guarantee.</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> +<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="idm55245-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></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="idm55253-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></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="idm55263-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></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="keyword">typename</span> Disposer<span class="special">></span> - <span class="identifier">size_type</span> <a name="idm45971703576112-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="idm55271-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> <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> <p><span class="bold"><strong>Throws</strong></span>: If hash_func or equal_func throw. Basic guarantee.</p> -<p><span class="bold"><strong>Note</strong></span>: Invalidates the iterators to the erased elements. </p> +<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="idm45971703564464-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="idm55299-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> +<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="idm45971703559600-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="idm55310-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> <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="idm45971703552336-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> +<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="idm55327-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></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="idm45971703547728-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="idm55331-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> <p><span class="bold"><strong>Effects</strong></span>: Returns the number of contained elements with the given key</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 hash_func or equal throw. </p> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971703538352-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> +<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="idm55353-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></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="idm45971703533984-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="idm55357-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> <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 hash_func or equal_func throw.</p> -<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="idm45971703523792-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>: 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> +<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="idm55381-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></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">const_iterator</span> - <a name="idm45971703519184-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="idm55385-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> <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 hash_func or equal_func throw.</p> -<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="idm45971703508720-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> +<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="idm55409-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></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">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="idm45971703504272-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="idm55413-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> <p><span class="bold"><strong>Complexity</strong></span>: Average case O(this->count(key, hash_func, equal_func)). Worst case O(this->size()).</p> <p><span class="bold"><strong>Throws</strong></span>: If hash_func or the equal_func throw.</p> -<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">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">></span> -<a name="idm45971703494032-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> +<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">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">></span> +<a name="idm55437-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></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">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="idm45971703489296-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="idm55441-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> <p><span class="bold"><strong>Complexity</strong></span>: Average case O(this->count(key, hash_func, equal_func)). Worst case O(this->size()).</p> <p><span class="bold"><strong>Throws</strong></span>: If the hasher or equal_func throw.</p> -<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> +<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="idm55465-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm55469-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">local_iterator</span> <a name="idm55473-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_local_iterator</span> <a name="idm55477-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></li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45971703478768-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="idm45971703471808-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="idm45971703464848-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="idm45971703457920-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 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="idm45971703450992-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="idm55481-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> +<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="idm45971703447136-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="idm55490-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="idm45971703441744-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> -<p><span class="bold"><strong>Note</strong></span>: the return value is in the range [0, this->bucket_count()). </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="idm55503-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></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="idm45971703436240-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="idm55507-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> <p><span class="bold"><strong>Throws</strong></span>: If hash_func throws.</p> -<p><span class="bold"><strong>Note</strong></span>: the return value is in the range [0, this->bucket_count()). </p> +<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="idm45971703427648-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="idm55527-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="idm45971703423776-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> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<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="idm45971703417408-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> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<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="idm45971703411040-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> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<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> +<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="idm55536-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_local_iterator</span> <a name="idm55540-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_local_iterator</span> <a name="idm55544-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">local_iterator</span> <a name="idm55548-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_local_iterator</span> <a name="idm55552-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></li> +<li class="listitem"><pre class="literallayout"><span class="identifier">const_local_iterator</span> <a name="idm55556-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></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">void</span> <a name="idm55560-bb"></a><span class="identifier">rehash</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">bucket_traits</span> <span class="special">&</span> new_bucket_traits<span class="special">)</span><span class="special">;</span></pre></li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">local_iterator</span> <a name="idm45971703404672-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> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<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="idm45971703398320-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> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<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="idm45971703391952-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> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<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="idm45971703385584-bb"></a><span class="identifier">rehash</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">bucket_traits</span> <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> -<p>Bucket traits hold by *this is assigned from new_bucket_traits. If the container is configured as incremental<>, the split bucket is set to the new bucket_count().</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. If false, the implementation tries to minimize calls to the hash function (e.g. once for equivalent values if optimize_multikey<true> is true).</p> -<p>If rehash is successful updates the internal <code class="computeroutput"><a class="link" href="bucket_traits.html" title="Struct template bucket_traits">bucket_traits</a></code> with new_bucket_traits.</p> -<p><span class="bold"><strong>Complexity</strong></span>: Average case linear in this->size(), worst case quadratic.</p> -<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="idm45971703375936-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="idm55564-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> <p><span class="bold"><strong>Effects</strong></span>: Reprocesses all values hold by *this, recalculating their hash values and redistributing them though the buckets.</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 uses the hash function and updates the stored hash value.</p> <p><span class="bold"><strong>Complexity</strong></span>: Average case linear in this->size(), worst case quadratic.</p> -<p><span class="bold"><strong>Throws</strong></span>: If the hasher functor throws. Basic guarantee. </p> +<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="idm45971703368528-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="idm55580-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> -</li> -<li class="listitem"> -<pre class="literallayout"><span class="keyword">bool</span> <a name="idm45971703362272-bb"></a><span class="identifier">incremental_rehash</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">bucket_traits</span> <span class="special">&</span> new_bucket_traits<span class="special">)</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> -<p><span class="bold"><strong>Throws</strong></span>: Nothing</p> -<p><span class="bold"><strong>Note</strong></span>: this method is only available if incremental<true> option is activated. </p> +<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="keyword">bool</span> <a name="idm55596-bb"></a><span class="identifier">incremental_rehash</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">bucket_traits</span> <span class="special">&</span> new_bucket_traits<span class="special">)</span><span class="special">;</span></pre></li> <li class="listitem"> -<pre class="literallayout"><span class="identifier">size_type</span> <a name="idm45971703355856-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="idm55600-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> -<p><span class="bold"><strong>Throws</strong></span>: Nothing </p> +<p><span class="bold"><strong>Throws</strong></span>: Nothing </p> </li> </ol></div> </div> <div class="refsect2"> -<a name="id-1.3.20.42.44.6.4.12"></a><h3> -<a name="idm45971703318736-bb"></a><code class="computeroutput">unordered_set</code> public static functions</h3> +<a name="id-1.3.18.42.44.6.4.12"></a><h3> +<a name="idm55671-bb"></a><code class="computeroutput">unordered_set</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="idm55672-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></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">static</span> <span class="identifier">const_local_iterator</span> +<a name="idm55676-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></li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">static</span> <span class="identifier">local_iterator</span> <a name="idm45971703318176-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> -<p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> -<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">const_local_iterator</span> -<a name="idm45971703309648-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 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> -<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="idm45971703301120-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="idm55680-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> +<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="idm45971703296064-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="idm55691-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> +<p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> </ol></div> </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="unordered_multiset.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.unordered_set_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_uno_idm45971703288480.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +<a accesskey="p" href="unordered_multiset.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.unordered_set_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_unordered_se_idm55705.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> </div> </body> </html> diff --git a/doc/html/boost/intrusive/unordered_set_base_hook.html b/doc/html/boost/intrusive/unordered_set_base_hook.html index f3a853a608..64d1398132 100644 --- a/doc/html/boost/intrusive/unordered_set_base_hook.html +++ b/doc/html/boost/intrusive/unordered_set_base_hook.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.unordered_set_hook_hpp" title="Header <boost/intrusive/unordered_set_hook.hpp>"> -<link rel="prev" href="make_uno_idm45971703284688.html" title="Struct template make_unordered_set_member_hook"> +<link rel="prev" href="make_unordered_se_idm55715.html" title="Struct template make_unordered_set_member_hook"> <link rel="next" href="unordered_set_member_hook.html" title="Class template unordered_set_member_hook"> +<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="make_uno_idm45971703284688.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.unordered_set_hook_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="unordered_set_member_hook.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +<a accesskey="p" href="make_unordered_se_idm55715.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.unordered_set_hook_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="unordered_set_member_hook.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> </div> <div class="refentry"> <a name="boost.intrusive.unordered_set_base_hook"></a><div class="titlepage"></div> @@ -29,28 +30,26 @@ <h2><span class="refentrytitle">Class template unordered_set_base_hook</span></h2> <p>boost::intrusive::unordered_set_base_hook</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.unordered_set_hook_hpp" title="Header <boost/intrusive/unordered_set_hook.hpp>">boost/intrusive/unordered_set_hook.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.unordered_set_hook_hpp" title="Header <boost/intrusive/unordered_set_hook.hpp>">boost/intrusive/unordered_set_hook.hpp</a>> </span><span class="keyword">template</span><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="unordered_set_base_hook.html" title="Class template unordered_set_base_hook">unordered_set_base_hook</a> <span class="special">:</span> - <span class="keyword">public</span> <span class="identifier">make_unordered_set_base_hook</span><span class="special">::</span><span class="identifier">type</span><span class="special"><</span> <span class="identifier">O1</span><span class="special">,</span> <span class="identifier">O2</span><span class="special">,</span> <span class="identifier">O3</span><span class="special">,</span> <span class="identifier">O4</span> <span class="special">></span> -<span class="special">{</span> +<span class="keyword">class</span> <a class="link" href="unordered_set_base_hook.html" title="Class template unordered_set_base_hook">unordered_set_base_hook</a> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">make_unordered_set_base_hook</span><span class="special">::</span><span class="identifier">type</span> <span class="special">{</span> <span class="keyword">public</span><span class="special">:</span> <span class="comment">// <a class="link" href="unordered_set_base_hook.html#boost.intrusive.unordered_set_base_hookconstruct-copy-destruct">construct/copy/destruct</a></span> - <a class="link" href="unordered_set_base_hook.html#idm45971703250768-bb"><span class="identifier">unordered_set_base_hook</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <a class="link" href="unordered_set_base_hook.html#idm45971703246720-bb"><span class="identifier">unordered_set_base_hook</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="unordered_set_base_hook.html" title="Class template unordered_set_base_hook">unordered_set_base_hook</a> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <a class="link" href="unordered_set_base_hook.html#idm55793-bb"><span class="identifier">unordered_set_base_hook</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <a class="link" href="unordered_set_base_hook.html#idm55802-bb"><span class="identifier">unordered_set_base_hook</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="unordered_set_base_hook.html" title="Class template unordered_set_base_hook">unordered_set_base_hook</a> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> <a class="link" href="unordered_set_base_hook.html" title="Class template unordered_set_base_hook">unordered_set_base_hook</a> <span class="special">&</span> - <a class="link" href="unordered_set_base_hook.html#idm45971703240080-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="unordered_set_base_hook.html" title="Class template unordered_set_base_hook">unordered_set_base_hook</a> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <a class="link" href="unordered_set_base_hook.html#idm45971703234512-bb"><span class="special">~</span><span class="identifier">unordered_set_base_hook</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="unordered_set_base_hook.html#idm55817-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="unordered_set_base_hook.html" title="Class template unordered_set_base_hook">unordered_set_base_hook</a> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <a class="link" href="unordered_set_base_hook.html#idm55831-bb"><span class="special">~</span><span class="identifier">unordered_set_base_hook</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> - <span class="comment">// <a class="link" href="unordered_set_base_hook.html#idm45971703266944-bb">public member functions</a></span> - <span class="keyword">void</span> <a class="link" href="unordered_set_base_hook.html#idm45971703266384-bb"><span class="identifier">swap_nodes</span></a><span class="special">(</span><a class="link" href="unordered_set_base_hook.html" title="Class template unordered_set_base_hook">unordered_set_base_hook</a> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> - <span class="keyword">bool</span> <a class="link" href="unordered_set_base_hook.html#idm45971703261104-bb"><span class="identifier">is_linked</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="unordered_set_base_hook.html#idm45971703255120-bb"><span class="identifier">unlink</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="unordered_set_base_hook.html#idm55758-bb">public member functions</a></span> + <span class="keyword">void</span> <a class="link" href="unordered_set_base_hook.html#idm55759-bb"><span class="identifier">swap_nodes</span></a><span class="special">(</span><a class="link" href="unordered_set_base_hook.html" title="Class template unordered_set_base_hook">unordered_set_base_hook</a> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> + <span class="keyword">bool</span> <a class="link" href="unordered_set_base_hook.html#idm55771-bb"><span class="identifier">is_linked</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="unordered_set_base_hook.html#idm55784-bb"><span class="identifier">unlink</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</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.45.5.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.45.5.4"></a><h2>Description</h2> <p>Derive a class from <a class="link" href="unordered_set_base_hook.html" title="Class template unordered_set_base_hook">unordered_set_base_hook</a> in order to store objects in in an unordered_set/unordered_multi_set. <a class="link" href="unordered_set_base_hook.html" title="Class template unordered_set_base_hook">unordered_set_base_hook</a> holds the data necessary to maintain the unordered_set/unordered_multi_set and provides an appropriate <a class="link" href="value_traits.html" title="Struct template value_traits">value_traits</a> class for unordered_set/unordered_multi_set.</p> <p>The hook admits the following options: <code class="computeroutput">tag<></code>, <code class="computeroutput">void_pointer<></code>, <code class="computeroutput">link_mode<></code>, <code class="computeroutput">store_hash<></code> and <code class="computeroutput">optimize_multikey<></code>.</p> <p><code class="computeroutput">tag<></code> defines a tag to identify the node. The same tag value can be used in different classes, but if a class is derived from more than one <code class="computeroutput"><a class="link" href="list_base_hook.html" title="Class template list_base_hook">list_base_hook</a></code>, then each <code class="computeroutput"><a class="link" href="list_base_hook.html" title="Class template list_base_hook">list_base_hook</a></code> needs its unique tag.</p> @@ -59,53 +58,53 @@ <p><code class="computeroutput">store_hash<></code> will tell the hook to store the hash of the value to speed up rehashings.</p> <p><code class="computeroutput">optimize_multikey<></code> will tell the hook to store a link to form a group with other value with the same value to speed up searches and insertions in unordered_multisets with a great number of with equivalent keys. </p> <div class="refsect2"> -<a name="id-1.3.20.42.45.5.4.9"></a><h3> +<a name="id-1.3.18.42.45.5.4.9"></a><h3> <a name="boost.intrusive.unordered_set_base_hookconstruct-copy-destruct"></a><code class="computeroutput">unordered_set_base_hook</code> public construct/copy/destruct</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> <li class="listitem"> -<pre class="literallayout"><a name="idm45971703250768-bb"></a><span class="identifier">unordered_set_base_hook</span><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm55793-bb"></a><span class="identifier">unordered_set_base_hook</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>: If <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is <code class="computeroutput">auto_unlink</code> or <code class="computeroutput">safe_link</code> initializes the node to an unlinked state.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><a name="idm45971703246720-bb"></a><span class="identifier">unordered_set_base_hook</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="unordered_set_base_hook.html" title="Class template unordered_set_base_hook">unordered_set_base_hook</a> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm55802-bb"></a><span class="identifier">unordered_set_base_hook</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="unordered_set_base_hook.html" title="Class template unordered_set_base_hook">unordered_set_base_hook</a> <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>: If <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is <code class="computeroutput">auto_unlink</code> or <code class="computeroutput">safe_link</code> initializes the node to an unlinked state. The argument is ignored.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Rationale</strong></span>: Providing a copy-constructor makes classes using the hook STL-compliant without forcing the user to do some additional work. <code class="computeroutput">swap</code> can be used to emulate move-semantics. </p> </li> <li class="listitem"> -<pre class="literallayout"><a class="link" href="unordered_set_base_hook.html" title="Class template unordered_set_base_hook">unordered_set_base_hook</a> <span class="special">&</span> <a name="idm45971703240080-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="unordered_set_base_hook.html" title="Class template unordered_set_base_hook">unordered_set_base_hook</a> <span class="special">&</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><a class="link" href="unordered_set_base_hook.html" title="Class template unordered_set_base_hook">unordered_set_base_hook</a> <span class="special">&</span> <a name="idm55817-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="unordered_set_base_hook.html" title="Class template unordered_set_base_hook">unordered_set_base_hook</a> <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>: Empty function. The argument is ignored.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Rationale</strong></span>: Providing an assignment operator makes classes using the hook STL-compliant without forcing the user to do some additional work. <code class="computeroutput">swap</code> can be used to emulate move-semantics. </p> </li> <li class="listitem"> -<pre class="literallayout"><a name="idm45971703234512-bb"></a><span class="special">~</span><span class="identifier">unordered_set_base_hook</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm55831-bb"></a><span class="special">~</span><span class="identifier">unordered_set_base_hook</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: If <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is <code class="computeroutput">normal_link</code>, the destructor does nothing (ie. no code is generated). If <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is <code class="computeroutput">safe_link</code> and the object is stored in an <code class="computeroutput"><a class="link" href="unordered_set.html" title="Class template unordered_set">unordered_set</a></code> an assertion is raised. If <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is <code class="computeroutput">auto_unlink</code> and <code class="computeroutput">is_linked()</code> is true, the node is unlinked.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> </ol></div> </div> <div class="refsect2"> -<a name="id-1.3.20.42.45.5.4.10"></a><h3> -<a name="idm45971703266944-bb"></a><code class="computeroutput">unordered_set_base_hook</code> public member functions</h3> +<a name="id-1.3.18.42.45.5.4.10"></a><h3> +<a name="idm55758-bb"></a><code class="computeroutput">unordered_set_base_hook</code> public member functions</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971703266384-bb"></a><span class="identifier">swap_nodes</span><span class="special">(</span><a class="link" href="unordered_set_base_hook.html" title="Class template unordered_set_base_hook">unordered_set_base_hook</a> <span class="special">&</span> other<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">void</span> <a name="idm55759-bb"></a><span class="identifier">swap_nodes</span><span class="special">(</span><a class="link" href="unordered_set_base_hook.html" title="Class template unordered_set_base_hook">unordered_set_base_hook</a> <span class="special">&</span> other<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Swapping two nodes swaps the position of the elements related to those nodes in one or two containers. That is, if the node this is part of the element e1, the node x is part of the element e2 and both elements are included in the containers s1 and s2, then after the swap-operation e1 is in s2 at the position of e2 and e2 is in s1 at the position of e1. If one element is not in a container, then after the swap-operation the other element is not in a container. Iterators to e1 and e2 related to those nodes are invalidated.</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="keyword">bool</span> <a name="idm45971703261104-bb"></a><span class="identifier">is_linked</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="idm55771-bb"></a><span class="identifier">is_linked</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>Precondition</strong></span>: <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> must be <code class="computeroutput">safe_link</code> or <code class="computeroutput">auto_unlink</code>.</p> <p><span class="bold"><strong>Returns</strong></span>: true, if the node belongs to a container, false otherwise. This function can be used to test whether <code class="computeroutput">unordered_set::iterator_to</code> will return a valid iterator.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971703255120-bb"></a><span class="identifier">unlink</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="idm55784-bb"></a><span class="identifier">unlink</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>: Removes the node if it's inserted in a container. This function is only allowed if <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is <code class="computeroutput">auto_unlink</code>.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> @@ -113,17 +112,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="make_uno_idm45971703284688.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.unordered_set_hook_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="unordered_set_member_hook.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +<a accesskey="p" href="make_unordered_se_idm55715.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.unordered_set_hook_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="unordered_set_member_hook.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> </div> </body> </html> diff --git a/doc/html/boost/intrusive/unordered_set_member_hook.html b/doc/html/boost/intrusive/unordered_set_member_hook.html index d9c8d090d3..e9a1902ecb 100644 --- a/doc/html/boost/intrusive/unordered_set_member_hook.html +++ b/doc/html/boost/intrusive/unordered_set_member_hook.html @@ -8,7 +8,8 @@ <link rel="home" href="../../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset"> <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.unordered_set_hook_hpp" title="Header <boost/intrusive/unordered_set_hook.hpp>"> <link rel="prev" href="unordered_set_base_hook.html" title="Class template unordered_set_base_hook"> -<link rel="next" href="../../lambda.html" title="Chapter 20. Boost.Lambda"> +<link rel="next" href="../../lambda.html" title="Chapter 18. Boost.Lambda"> +<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> @@ -29,80 +30,78 @@ <h2><span class="refentrytitle">Class template unordered_set_member_hook</span></h2> <p>boost::intrusive::unordered_set_member_hook</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.unordered_set_hook_hpp" title="Header <boost/intrusive/unordered_set_hook.hpp>">boost/intrusive/unordered_set_hook.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.unordered_set_hook_hpp" title="Header <boost/intrusive/unordered_set_hook.hpp>">boost/intrusive/unordered_set_hook.hpp</a>> </span><span class="keyword">template</span><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="unordered_set_member_hook.html" title="Class template unordered_set_member_hook">unordered_set_member_hook</a> <span class="special">:</span> - <span class="keyword">public</span> <span class="identifier">make_unordered_set_member_hook</span><span class="special">::</span><span class="identifier">type</span><span class="special"><</span> <span class="identifier">O1</span><span class="special">,</span> <span class="identifier">O2</span><span class="special">,</span> <span class="identifier">O3</span><span class="special">,</span> <span class="identifier">O4</span> <span class="special">></span> -<span class="special">{</span> +<span class="keyword">class</span> <a class="link" href="unordered_set_member_hook.html" title="Class template unordered_set_member_hook">unordered_set_member_hook</a> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">make_unordered_set_member_hook</span><span class="special">::</span><span class="identifier">type</span> <span class="special">{</span> <span class="keyword">public</span><span class="special">:</span> <span class="comment">// <a class="link" href="unordered_set_member_hook.html#boost.intrusive.unordered_set_member_hookconstruct-copy-destruct">construct/copy/destruct</a></span> - <a class="link" href="unordered_set_member_hook.html#idm45971703201968-bb"><span class="identifier">unordered_set_member_hook</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> - <a class="link" href="unordered_set_member_hook.html#idm45971703198192-bb"><span class="identifier">unordered_set_member_hook</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="unordered_set_member_hook.html" title="Class template unordered_set_member_hook">unordered_set_member_hook</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span> - <a class="link" href="unordered_set_member_hook.html" title="Class template unordered_set_member_hook">unordered_set_member_hook</a> <span class="special">&</span> <a class="link" href="unordered_set_member_hook.html#idm45971703191808-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="unordered_set_member_hook.html" title="Class template unordered_set_member_hook">unordered_set_member_hook</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span> - <a class="link" href="unordered_set_member_hook.html#idm45971703186480-bb"><span class="special">~</span><span class="identifier">unordered_set_member_hook</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="unordered_set_member_hook.html#idm55903-bb"><span class="identifier">unordered_set_member_hook</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="unordered_set_member_hook.html#idm55912-bb"><span class="identifier">unordered_set_member_hook</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="unordered_set_member_hook.html" title="Class template unordered_set_member_hook">unordered_set_member_hook</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="unordered_set_member_hook.html" title="Class template unordered_set_member_hook">unordered_set_member_hook</a> <span class="special">&</span> <a class="link" href="unordered_set_member_hook.html#idm55927-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="unordered_set_member_hook.html" title="Class template unordered_set_member_hook">unordered_set_member_hook</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="unordered_set_member_hook.html#idm55941-bb"><span class="special">~</span><span class="identifier">unordered_set_member_hook</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> - <span class="comment">// <a class="link" href="unordered_set_member_hook.html#idm45971703217616-bb">public member functions</a></span> - <span class="keyword">void</span> <a class="link" href="unordered_set_member_hook.html#idm45971703217056-bb"><span class="identifier">swap_nodes</span></a><span class="special">(</span><a class="link" href="unordered_set_member_hook.html" title="Class template unordered_set_member_hook">unordered_set_member_hook</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">bool</span> <a class="link" href="unordered_set_member_hook.html#idm45971703212032-bb"><span class="identifier">is_linked</span></a><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="unordered_set_member_hook.html#idm45971703206048-bb"><span class="identifier">unlink</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="comment">// <a class="link" href="unordered_set_member_hook.html#idm55868-bb">public member functions</a></span> + <span class="keyword">void</span> <a class="link" href="unordered_set_member_hook.html#idm55869-bb"><span class="identifier">swap_nodes</span></a><span class="special">(</span><a class="link" href="unordered_set_member_hook.html" title="Class template unordered_set_member_hook">unordered_set_member_hook</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">bool</span> <a class="link" href="unordered_set_member_hook.html#idm55881-bb"><span class="identifier">is_linked</span></a><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="unordered_set_member_hook.html#idm55894-bb"><span class="identifier">unlink</span></a><span class="special">(</span><span class="special">)</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.45.6.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.45.6.4"></a><h2>Description</h2> <p>Put a public data member <a class="link" href="unordered_set_member_hook.html" title="Class template unordered_set_member_hook">unordered_set_member_hook</a> in order to store objects of this class in an unordered_set/unordered_multi_set. <a class="link" href="unordered_set_member_hook.html" title="Class template unordered_set_member_hook">unordered_set_member_hook</a> holds the data necessary for maintaining the unordered_set/unordered_multi_set and provides an appropriate <a class="link" href="value_traits.html" title="Struct template value_traits">value_traits</a> class for unordered_set/unordered_multi_set.</p> <p>The hook admits the following options: <code class="computeroutput">void_pointer<></code>, <code class="computeroutput">link_mode<></code> and <code class="computeroutput">store_hash<></code>.</p> <p><code class="computeroutput">void_pointer<></code> is the pointer type that will be used internally in the hook and the container configured to use this hook.</p> <p><code class="computeroutput">link_mode<></code> will specify the linking mode of the hook (<code class="computeroutput">normal_link</code>, <code class="computeroutput">auto_unlink</code> or <code class="computeroutput">safe_link</code>).</p> <p><code class="computeroutput">store_hash<></code> will tell the hook to store the hash of the value to speed up rehashings. </p> <div class="refsect2"> -<a name="id-1.3.20.42.45.6.4.7"></a><h3> +<a name="id-1.3.18.42.45.6.4.7"></a><h3> <a name="boost.intrusive.unordered_set_member_hookconstruct-copy-destruct"></a><code class="computeroutput">unordered_set_member_hook</code> public construct/copy/destruct</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> <li class="listitem"> -<pre class="literallayout"><a name="idm45971703201968-bb"></a><span class="identifier">unordered_set_member_hook</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm55903-bb"></a><span class="identifier">unordered_set_member_hook</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: If <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is <code class="computeroutput">auto_unlink</code> or <code class="computeroutput">safe_link</code> initializes the node to an unlinked state.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> <li class="listitem"> -<pre class="literallayout"><a name="idm45971703198192-bb"></a><span class="identifier">unordered_set_member_hook</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="unordered_set_member_hook.html" title="Class template unordered_set_member_hook">unordered_set_member_hook</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm55912-bb"></a><span class="identifier">unordered_set_member_hook</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="unordered_set_member_hook.html" title="Class template unordered_set_member_hook">unordered_set_member_hook</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: If <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is <code class="computeroutput">auto_unlink</code> or <code class="computeroutput">safe_link</code> initializes the node to an unlinked state. The argument is ignored.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Rationale</strong></span>: Providing a copy-constructor makes classes using the hook STL-compliant without forcing the user to do some additional work. <code class="computeroutput">swap</code> can be used to emulate move-semantics. </p> </li> <li class="listitem"> -<pre class="literallayout"><a class="link" href="unordered_set_member_hook.html" title="Class template unordered_set_member_hook">unordered_set_member_hook</a> <span class="special">&</span> <a name="idm45971703191808-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="unordered_set_member_hook.html" title="Class template unordered_set_member_hook">unordered_set_member_hook</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a class="link" href="unordered_set_member_hook.html" title="Class template unordered_set_member_hook">unordered_set_member_hook</a> <span class="special">&</span> <a name="idm55927-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="unordered_set_member_hook.html" title="Class template unordered_set_member_hook">unordered_set_member_hook</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Empty function. The argument is ignored.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p> <p><span class="bold"><strong>Rationale</strong></span>: Providing an assignment operator makes classes using the hook STL-compliant without forcing the user to do some additional work. <code class="computeroutput">swap</code> can be used to emulate move-semantics. </p> </li> <li class="listitem"> -<pre class="literallayout"><a name="idm45971703186480-bb"></a><span class="special">~</span><span class="identifier">unordered_set_member_hook</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="idm55941-bb"></a><span class="special">~</span><span class="identifier">unordered_set_member_hook</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: If <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is <code class="computeroutput">normal_link</code>, the destructor does nothing (ie. no code is generated). If <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is <code class="computeroutput">safe_link</code> and the object is stored in an <code class="computeroutput"><a class="link" href="unordered_set.html" title="Class template unordered_set">unordered_set</a></code> an assertion is raised. If <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is <code class="computeroutput">auto_unlink</code> and <code class="computeroutput">is_linked()</code> is true, the node is unlinked.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> </ol></div> </div> <div class="refsect2"> -<a name="id-1.3.20.42.45.6.4.8"></a><h3> -<a name="idm45971703217616-bb"></a><code class="computeroutput">unordered_set_member_hook</code> public member functions</h3> +<a name="id-1.3.18.42.45.6.4.8"></a><h3> +<a name="idm55868-bb"></a><code class="computeroutput">unordered_set_member_hook</code> public member functions</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971703217056-bb"></a><span class="identifier">swap_nodes</span><span class="special">(</span><a class="link" href="unordered_set_member_hook.html" title="Class template unordered_set_member_hook">unordered_set_member_hook</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="idm55869-bb"></a><span class="identifier">swap_nodes</span><span class="special">(</span><a class="link" href="unordered_set_member_hook.html" title="Class template unordered_set_member_hook">unordered_set_member_hook</a> <span class="special">&</span> other<span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Swapping two nodes swaps the position of the elements related to those nodes in one or two containers. That is, if the node this is part of the element e1, the node x is part of the element e2 and both elements are included in the containers s1 and s2, then after the swap-operation e1 is in s2 at the position of e2 and e2 is in s1 at the position of e1. If one element is not in a container, then after the swap-operation the other element is not in a container. Iterators to e1 and e2 related to those nodes are invalidated.</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="keyword">bool</span> <a name="idm45971703212032-bb"></a><span class="identifier">is_linked</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">bool</span> <a name="idm55881-bb"></a><span class="identifier">is_linked</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p><span class="bold"><strong>Precondition</strong></span>: <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> must be <code class="computeroutput">safe_link</code> or <code class="computeroutput">auto_unlink</code>.</p> <p><span class="bold"><strong>Returns</strong></span>: true, if the node belongs to a container, false otherwise. This function can be used to test whether <code class="computeroutput">unordered_set::iterator_to</code> will return a valid iterator.</p> <p><span class="bold"><strong>Complexity</strong></span>: Constant </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idm45971703206048-bb"></a><span class="identifier">unlink</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">void</span> <a name="idm55894-bb"></a><span class="identifier">unlink</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> <p><span class="bold"><strong>Effects</strong></span>: Removes the node if it's inserted in a container. This function is only allowed if <code class="computeroutput"><a class="link" href="link_mode.html" title="Struct template link_mode">link_mode</a></code> is <code class="computeroutput">auto_unlink</code>.</p> <p><span class="bold"><strong>Throws</strong></span>: Nothing. </p> </li> @@ -110,14 +109,11 @@ </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="unordered_set_base_hook.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.unordered_set_hook_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="../../lambda.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/value_traits.html b/doc/html/boost/intrusive/value_traits.html index 303bbddfb0..75bc256f84 100644 --- a/doc/html/boost/intrusive/value_traits.html +++ b/doc/html/boost/intrusive/value_traits.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.options_hpp" title="Header <boost/intrusive/options.hpp>"> <link rel="prev" href="tag.html" title="Struct template tag"> <link rel="next" href="void_pointer.html" title="Struct template void_pointer"> +<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> @@ -29,25 +30,22 @@ <h2><span class="refentrytitle">Struct template value_traits</span></h2> <p>boost::intrusive::value_traits</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.options_hpp" title="Header <boost/intrusive/options.hpp>">boost/intrusive/options.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.options_hpp" title="Header <boost/intrusive/options.hpp>">boost/intrusive/options.hpp</a>> </span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> ValueTraits<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="value_traits.html" title="Struct template value_traits">value_traits</a> <span class="special">{</span> <span class="special">}</span><span class="special">;</span></pre></div> <div class="refsect1"> -<a name="id-1.3.20.42.21.28.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.21.30.4"></a><h2>Description</h2> <p>This option setter specifies the relationship between the type to be managed by the container (the value type) and the node to be used in the node algorithms. It also specifies the linking policy. </p> </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="tag.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.options_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="void_pointer.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> diff --git a/doc/html/boost/intrusive/void_pointer.html b/doc/html/boost/intrusive/void_pointer.html index 760fc7e4ff..2cf36f75be 100644 --- a/doc/html/boost/intrusive/void_pointer.html +++ b/doc/html/boost/intrusive/void_pointer.html @@ -9,6 +9,7 @@ <link rel="up" href="../../intrusive/reference.html#header.boost.intrusive.options_hpp" title="Header <boost/intrusive/options.hpp>"> <link rel="prev" href="value_traits.html" title="Struct template value_traits"> <link rel="next" href="pack_options.html" title="Struct template pack_options"> +<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> @@ -29,25 +30,22 @@ <h2><span class="refentrytitle">Struct template void_pointer</span></h2> <p>boost::intrusive::void_pointer</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.options_hpp" title="Header <boost/intrusive/options.hpp>">boost/intrusive/options.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.options_hpp" title="Header <boost/intrusive/options.hpp>">boost/intrusive/options.hpp</a>> </span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> VoidPointer<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="void_pointer.html" title="Struct template void_pointer">void_pointer</a> <span class="special">{</span> <span class="special">}</span><span class="special">;</span></pre></div> <div class="refsect1"> -<a name="id-1.3.20.42.21.29.4"></a><h2>Description</h2> +<a name="id-1.3.18.42.21.31.4"></a><h2>Description</h2> <p>This option setter specifies the type of a void pointer. This will instruct the hook to use this type of pointer instead of the default one </p> </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="value_traits.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../intrusive/reference.html#header.boost.intrusive.options_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="pack_options.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> |