diff options
Diffstat (limited to 'doc/html/boost/intrusive/circular_list_algorithms.html')
-rw-r--r-- | doc/html/boost/intrusive/circular_list_algorithms.html | 90 |
1 files changed, 45 insertions, 45 deletions
diff --git a/doc/html/boost/intrusive/circular_list_algorithms.html b/doc/html/boost/intrusive/circular_list_algorithms.html index 14d421f588..4b73ceb71c 100644 --- a/doc/html/boost/intrusive/circular_list_algorithms.html +++ b/doc/html/boost/intrusive/circular_list_algorithms.html @@ -51,33 +51,33 @@ <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#idp47323840-bb">public static functions</a></span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="circular_list_algorithms.html#idp47324400-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="special">;</span> - <span class="keyword">static</span> <span class="keyword">bool</span> <a class="link" href="circular_list_algorithms.html#idp47328944-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="circular_list_algorithms.html#idp47333504-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="special">;</span> - <span class="keyword">static</span> <span class="keyword">bool</span> <a class="link" href="circular_list_algorithms.html#idp47338560-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="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#idp47344304-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="special">;</span> - <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="circular_list_algorithms.html#idp47349760-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="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="circular_list_algorithms.html#idp47355168-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">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="circular_list_algorithms.html#idp47361264-bb"><span class="identifier">link_before</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="circular_list_algorithms.html#idp47367344-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="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="circular_list_algorithms.html#idp47373424-bb"><span class="identifier">swap_nodes</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="circular_list_algorithms.html#idp47379696-bb"><span class="identifier">transfer</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="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="circular_list_algorithms.html#idp47386496-bb"><span class="identifier">transfer</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="circular_list_algorithms.html#idp47392720-bb"><span class="identifier">reverse</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="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="circular_list_algorithms.html#idp47397248-bb"><span class="identifier">move_backwards</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">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="circular_list_algorithms.html#idp47402496-bb"><span class="identifier">move_forward</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">std</span><span class="special">::</span><span class="identifier">size_t</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="circular_list_algorithms.html#idp47407744-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="special">;</span> + <span class="comment">// <a class="link" href="circular_list_algorithms.html#idm46322885909264-bb">public static functions</a></span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="circular_list_algorithms.html#idm46322885908704-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="special">;</span> + <span class="keyword">static</span> <span class="keyword">bool</span> <a class="link" href="circular_list_algorithms.html#idm46322885904160-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="circular_list_algorithms.html#idm46322885899600-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="special">;</span> + <span class="keyword">static</span> <span class="keyword">bool</span> <a class="link" href="circular_list_algorithms.html#idm46322885894544-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="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#idm46322885888800-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="special">;</span> + <span class="keyword">static</span> <span class="identifier">node_ptr</span> <a class="link" href="circular_list_algorithms.html#idm46322885883344-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="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="circular_list_algorithms.html#idm46322885877936-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">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="circular_list_algorithms.html#idm46322885871840-bb"><span class="identifier">link_before</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="circular_list_algorithms.html#idm46322885865760-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="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="circular_list_algorithms.html#idm46322885859680-bb"><span class="identifier">swap_nodes</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="circular_list_algorithms.html#idm46322885853408-bb"><span class="identifier">transfer</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="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="circular_list_algorithms.html#idm46322885846608-bb"><span class="identifier">transfer</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="circular_list_algorithms.html#idm46322885840384-bb"><span class="identifier">reverse</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="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="circular_list_algorithms.html#idm46322885835856-bb"><span class="identifier">move_backwards</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">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="circular_list_algorithms.html#idm46322885830608-bb"><span class="identifier">move_forward</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">std</span><span class="special">::</span><span class="identifier">size_t</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="circular_list_algorithms.html#idm46322885825360-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="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#idp47413808-bb"><span class="identifier">stable_partition</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="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#idm46322885819296-bb"><span class="identifier">stable_partition</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="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#idp47418688-bb">private static functions</a></span> - <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="circular_list_algorithms.html#idp47419264-bb"><span class="identifier">swap_prev</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="circular_list_algorithms.html#idp47421760-bb"><span class="identifier">swap_next</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="comment">// <a class="link" href="circular_list_algorithms.html#idm46322885814416-bb">private static functions</a></span> + <span class="keyword">static</span> <span class="keyword">void</span> <a class="link" href="circular_list_algorithms.html#idm46322885813840-bb"><span class="identifier">swap_prev</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="circular_list_algorithms.html#idm46322885811344-bb"><span class="identifier">swap_next</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="special">}</span><span class="special">;</span></pre></div> <div class="refsect1"> -<a name="idp280500256"></a><h2>Description</h2> +<a name="idm45555281340304"></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> @@ -90,71 +90,71 @@ <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="idp280510272"></a><h3> -<a name="idp47323840-bb"></a><code class="computeroutput">circular_list_algorithms</code> public static functions</h3> +<a name="idm45555281330288"></a><h3> +<a name="idm46322885909264-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="idp47324400-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="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm46322885908704-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="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="idp47328944-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="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">bool</span> <a name="idm46322885904160-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="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="idp47333504-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="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm46322885899600-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="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="idp47338560-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="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">bool</span> <a name="idm46322885894544-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="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="idp47344304-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="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="idm46322885888800-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="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="idp47349760-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> this_node<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="idm46322885883344-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> this_node<span class="special">)</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="idp47355168-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> 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="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm46322885877936-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> 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="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="idp47361264-bb"></a><span class="identifier">link_before</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span> nxt_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="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm46322885871840-bb"></a><span class="identifier">link_before</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span> nxt_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="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="idp47367344-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="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm46322885865760-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="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="idp47373424-bb"></a><span class="identifier">swap_nodes</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> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm46322885859680-bb"></a><span class="identifier">swap_nodes</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">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span> other_node<span class="special">)</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> @@ -162,56 +162,56 @@ <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="idp47379696-bb"></a><span class="identifier">transfer</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> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm46322885853408-bb"></a><span class="identifier">transfer</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="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="idp47386496-bb"></a><span class="identifier">transfer</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> i<span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm46322885846608-bb"></a><span class="identifier">transfer</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> i<span class="special">)</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="idp47392720-bb"></a><span class="identifier">reverse</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="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm46322885840384-bb"></a><span class="identifier">reverse</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="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="idp47397248-bb"></a><span class="identifier">move_backwards</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="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> n<span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm46322885835856-bb"></a><span class="identifier">move_backwards</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="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> n<span class="special">)</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="idp47402496-bb"></a><span class="identifier">move_forward</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="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> n<span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">void</span> <a name="idm46322885830608-bb"></a><span class="identifier">move_forward</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="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> n<span class="special">)</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="idp47407744-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="special">;</span></pre> +<a name="idm46322885825360-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="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="idp47413808-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="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</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="idm46322885819296-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="keyword">const</span> <span class="identifier">node_ptr</span> <span class="special">&</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="idp280720592"></a><h3> -<a name="idp47418688-bb"></a><code class="computeroutput">circular_list_algorithms</code> private static functions</h3> +<a name="idm45555281119968"></a><h3> +<a name="idm46322885814416-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="idp47419264-bb"></a><span class="identifier">swap_prev</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">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span> other_node<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="idp47421760-bb"></a><span class="identifier">swap_next</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">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span> other_node<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="idm46322885813840-bb"></a><span class="identifier">swap_prev</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">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span> other_node<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="idm46322885811344-bb"></a><span class="identifier">swap_next</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">const</span> <span class="identifier">node_ptr</span> <span class="special">&</span> other_node<span class="special">)</span><span class="special">;</span></pre></li> </ol></div> </div> </div> |