blob: f66d7a9f7a67bf171346f38da2169dd822ab0e7f [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta name="generator" content=
"HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
<title>basic_tree Interface</title>
<meta http-equiv="Content-Type" content=
"text/html; charset=us-ascii" />
</head>
<body>
<div id="page">
<h1><tt>basic_tree</tt> Interface</h1>
<p>An abstract basic tree-like-based associative container.</p>
<p>Defined in: <a href=
"../../../../include/ext/pb_ds/assoc_container.hpp"><tt>assoc_container.hpp</tt></a></p>
<h2><a name="link1" id="link1">Template Parameters</a></h2>
<table class="c1" width="100%" border="1" summary=
"Template Parameters">
<tr>
<td width="20%" align="left"><b>Parameter</b></td>
<td width="50%" align="left"><b>Description</b></td>
<td width="30%" align="left"><b>Default Value</b></td>
</tr>
<tr>
<td>
<pre>
<a name="Key2501" id="Key2501"><b>typename</b> Key</a>
</pre>
</td>
<td>
<p>Key type.</p>
</td>
<td>-</td>
</tr>
<tr>
<td>
<pre>
<a name="Mapped318655" id="Mapped318655"><b>typename</b> Mapped</a>
</pre>
</td>
<td>
<p>Mapped type.</p>
</td>
<td>-</td>
</tr>
<tr>
<td>
<pre>
<a name="Tag278938" id="Tag278938"><b>class</b> Tag</a>
</pre>
</td>
<td>
<p>Mapped-structure tag.</p>
</td>
<td>-</td>
</tr>
<tr>
<td>
<pre>
<a name="Node_Update841554648" id=
"Node_Update841554648"><b>class</b> Node_Update</a>
</pre>
</td>
<td>
<p>Node updater.</p>
<p>Restores node-invariants when invalidated.</p>
</td>
<td>-</td>
</tr>
<tr>
<td>
<pre>
<a name="Policy_Tl42017403" id=
"Policy_Tl42017403"><b>class</b> Policy_Tl</a>
</pre>
</td>
<td>
<p>Policy typelist.</p>
<p>Contains subclasses' policies.</p>
</td>
<td>-</td>
</tr>
<tr>
<td>
<pre>
<a name="Allocator35940069" id=
"Allocator35940069"><b>class</b> Allocator</a>
</pre>
</td>
<td>
<p>Allocator type.</p>
</td>
<td>-</td>
</tr>
</table>
<h2><a name="link2" id="link2">Base Classes</a></h2>
<table class="c1" width="100%" border="1" summary="Bases">
<tr>
<td width="80%" align="left"><b>Class</b></td>
<td width="20%" align="left"><b>Derivation Type</b></td>
</tr>
<tr>
<td>
<pre>
<a href="#Node_Update841554648"><tt>Node_Update</tt></a>
</pre>
</td>
<td>
<p>public</p>
</td>
</tr>
<tr>
<td>
<pre>
<a href="container_base.html"><span class=
"c2"><tt>container_base</tt></span></a>
</pre>
</td>
<td>
<p>public</p>
</td>
</tr>
</table>
<h2><a name="link3" id="link3">Public Types and
Constants</a></h2>
<h3><a name="link4" id="link4">Key-Type Definitions</a></h3>
<table class="c1" width="100%" border="1" summary="Types">
<tr>
<td width="30%" align="left"><b>Type</b></td>
<td width="55%" align="left"><b>Definition</b></td>
<td width="15%" align="left"><b>Description</b></td>
</tr>
<tr>
<td>
<pre>
<a name="const_key_reference3185471705" id=
"const_key_reference3185471705">const_key_reference</a>
</pre>
</td>
<td>
<pre>
<b>typename</b> <a href="container_base.html"><span class=
"c2"><tt>container_base</tt></span></a>::const_key_reference
</pre>
</td>
<td>
<p>Const key reference type.</p>
</td>
</tr>
</table>
<h3><a name="link5" id="link5">Policy Definitions</a></h3>
<table class="c1" width="100%" border="1" summary="Types">
<tr>
<td width="30%" align="left"><b>Type</b></td>
<td width="55%" align="left"><b>Definition</b></td>
<td width="15%" align="left"><b>Description</b></td>
</tr>
<tr>
<td>
<pre>
<a name="node_update2404554648" id=
"node_update2404554648">node_update</a>
</pre>
</td>
<td>
<pre>
<a href="#Node_Update841554648"><tt>Node_Update</tt></a>
</pre>
</td>
<td>
<p>Node updater type.</p>
</td>
</tr>
</table>
<h3><a name="link6" id="link6">Iterator Definitions</a></h3>
<table class="c1" width="100%" border="1" summary="Types">
<tr>
<td width="30%" align="left"><b>Type</b></td>
<td width="55%" align="left"><b>Definition</b></td>
<td width="15%" align="left"><b>Description</b></td>
</tr>
<tr>
<td>
<pre>
<a name="const_iterator98626788" id=
"const_iterator98626788">const_iterator</a>
</pre>
</td>
<td>
<pre>
<b>typename</b> <a href="container_base.html"><span class=
"c2"><tt>container_base</tt></span></a>::const_iterator
</pre>
</td>
<td>
<p>Const range-type iterator.</p>
</td>
</tr>
<tr>
<td>
<pre>
<a name="iterator10418194" id="iterator10418194">iterator</a>
</pre>
</td>
<td>
<pre>
<b>typename</b> <a href="container_base.html"><span class=
"c2"><tt>container_base</tt></span></a>::iterator
</pre>
</td>
<td>
<p>Range-type iterator.</p>
</td>
</tr>
<tr>
<td>
<pre>
<a name="const_reverse_iterator4151293083" id=
"const_reverse_iterator4151293083">const_reverse_iterator</a>
</pre>
</td>
<td>
<pre>
Const reverse range-type iterator.
</pre>
</td>
<td>
<p>Const reverse range-type <a href=
"#iterator10418194"><tt>iterator</tt></a>.</p>
</td>
</tr>
<tr>
<td>
<pre>
<a name="reverse_iterator1896910345" id=
"reverse_iterator1896910345">reverse_iterator</a>
</pre>
</td>
<td>
<pre>
Reverse range-type iterator.<br />
If <a href="#Mapped318655"><tt>Mapped</tt></a> is <a href=
"null_mapped_type.html"><span class=
"c2"><tt>null_mapped_type</tt></span></a>, then this is synonymous to <a href="#const_reverse_iterator4151293083"><tt>const_reverse_iterator</tt></a>
</pre>
</td>
<td>
<p>Reverse range-type <a href=
"#iterator10418194"><tt>iterator</tt></a>.</p>
</td>
</tr>
</table>
<h2><a name="link7" id="link7">Public Methods</a></h2>
<h3><a name="link8" id="link8">Constructors, Destructor, and
Related</a></h3>
<table class="c1" width="100%" border="1" summary="Methods">
<tr>
<td width="45%" align="left"><b>Method</b></td>
<td width="55%" align="left"><b>Description</b></td>
</tr>
<tr>
<td>
<pre>
<b>virtual</b>
~basic_tree
()
</pre>
</td>
<td>
<p>Destructor.</p>
</td>
</tr>
</table>
<h3><a name="link9" id="link9">Policy Access Methods</a></h3>
<table class="c1" width="100%" border="1" summary="Methods">
<tr>
<td width="45%" align="left"><b>Method</b></td>
<td width="55%" align="left"><b>Description</b></td>
</tr>
<tr>
<td>
<pre>
<a href="#node_update2404554648"><tt>node_update</tt></a> &amp;
get_node_update
()
</pre>
</td>
<td>
<p>Access to the <a href=
"#node_update2404554648"><tt>node_update</tt></a>
object.</p>
</td>
</tr>
<tr>
<td>
<pre>
<b>const</b> <a href=
"#node_update2404554648"><tt>node_update</tt></a> &amp;
get_node_update
() <b>const</b>
</pre>
</td>
<td>
<p>Const access to the <a href=
"#node_update2404554648"><tt>node_update</tt></a>
object.</p>
</td>
</tr>
</table>
<h3><a name="link10" id="link10">Find Methods</a></h3>
<table class="c1" width="100%" border="1" summary="Methods">
<tr>
<td width="45%" align="left"><b>Method</b></td>
<td width="55%" align="left"><b>Description</b></td>
</tr>
<tr>
<td>
<pre>
<a href="#iterator10418194"><tt>iterator</tt></a>
lower_bound
(<a href=
"#const_key_reference3185471705"><tt>const_key_reference</tt></a> r_key)
</pre>
</td>
<td>
<p>Returns an <a href=
"#iterator10418194"><tt>iterator</tt></a> corresponding
to the entry whose key is the smallest one at least as
large as <span class="c1"><tt>r_key</tt></span>.</p>
</td>
</tr>
<tr>
<td>
<pre>
<a href="#const_iterator98626788"><tt>const_iterator</tt></a>
lower_bound
(<a href=
"#const_key_reference3185471705"><tt>const_key_reference</tt></a> r_key) <b>const</b>
</pre>
</td>
<td>
<p>Returns a <tt><b>const</b></tt> <a href=
"#iterator10418194"><tt>iterator</tt></a> corresponding
to the entry whose key is the smallest one at least as
large as <span class="c1"><tt>r_key</tt></span>.</p>
</td>
</tr>
<tr>
<td>
<pre>
<a href="#iterator10418194"><tt>iterator</tt></a>
upper_bound
(<a href=
"#const_key_reference3185471705"><tt>const_key_reference</tt></a> r_key)
</pre>
</td>
<td>
<p>Returns an <a href=
"#iterator10418194"><tt>iterator</tt></a> corresponding
to the entry whose key is the smallest one larger than
<span class="c1"><tt>r_key</tt></span>.</p>
</td>
</tr>
<tr>
<td>
<pre>
<a href="#const_iterator98626788"><tt>const_iterator</tt></a>
upper_bound
(<a href=
"#const_key_reference3185471705"><tt>const_key_reference</tt></a> r_key) <b>const</b>
</pre>
</td>
<td>
<p>Returns a <a href=
"#const_iterator98626788"><tt>const_iterator</tt></a>
corresponding to the entry whose key is the smallest one
larger than <span class="c1"><tt>r_key</tt></span>.</p>
</td>
</tr>
</table>
<h3><a name="link11" id="link11">Erase Methods</a></h3>
<table class="c1" width="100%" border="1" summary="Methods">
<tr>
<td width="45%" align="left"><b>Method</b></td>
<td width="55%" align="left"><b>Description</b></td>
</tr>
<tr>
<td>
<pre>
<a href="#iterator10418194"><tt>iterator</tt></a>
erase
(<a href="#iterator10418194"><tt>iterator</tt></a> it)
</pre>
</td>
<td>
<p>Erases the value_type corresponding to the <a href=
"#iterator10418194"><tt>iterator</tt></a> <span class=
"c1"><tt>it</tt></span>. Returns the <a href=
"#iterator10418194"><tt>iterator</tt></a> corresponding
to the next value_type.</p>
</td>
</tr>
<tr>
<td>
<pre>
<a href="#reverse_iterator1896910345"><tt>reverse_iterator</tt></a>
erase
(<a href=
"#reverse_iterator1896910345"><tt>reverse_iterator</tt></a> it)
</pre>
</td>
<td>
<p>Erases the value_type corresponding to the <a href=
"#reverse_iterator1896910345"><tt>reverse_iterator</tt></a>
<span class="c1"><tt>it</tt></span>. Returns the <a href=
"#reverse_iterator1896910345"><tt>reverse_iterator</tt></a>
corresponding to the previous value_type.</p>
</td>
</tr>
</table>
<h3><a name="link12" id="link12">Iteration Methods</a></h3>
<table class="c1" width="100%" border="1" summary="Methods">
<tr>
<td width="45%" align="left"><b>Method</b></td>
<td width="55%" align="left"><b>Description</b></td>
</tr>
<tr>
<td>
<pre>
<a href="#reverse_iterator1896910345"><tt>reverse_iterator</tt></a>
rbegin
()
</pre>
</td>
<td>
<p>Returns a <a href=
"#reverse_iterator1896910345"><tt>reverse_iterator</tt></a>
corresponding to the last value_type in the
container.</p>
</td>
</tr>
<tr>
<td>
<pre>
<a href=
"#const_reverse_iterator4151293083"><tt>const_reverse_iterator</tt></a>
rbegin
() <b>const</b>
</pre>
</td>
<td>
<p>Returns a <a href=
"#const_reverse_iterator4151293083"><tt>const_reverse_iterator</tt></a>
corresponding to the last value_type in the
container.</p>
</td>
</tr>
<tr>
<td>
<pre>
<a href="#reverse_iterator1896910345"><tt>reverse_iterator</tt></a>
rend
()
</pre>
</td>
<td>
<p>Returns a <a href=
"#reverse_iterator1896910345"><tt>reverse_iterator</tt></a>
corresponding to the just-before-first value_type in the
container.</p>
</td>
</tr>
<tr>
<td>
<pre>
<a href=
"#const_reverse_iterator4151293083"><tt>const_reverse_iterator</tt></a>
rend
() <b>const</b>
</pre>
</td>
<td>
<p>Returns a <a href=
"#const_reverse_iterator4151293083"><tt>const_reverse_iterator</tt></a>
corresponding to the just-before-first value_type in the
container.</p>
</td>
</tr>
</table>
<h3><a name="link13" id="link13">Split and join
Methods</a></h3>
<table class="c1" width="100%" border="1" summary="Methods">
<tr>
<td width="45%" align="left"><b>Method</b></td>
<td width="55%" align="left"><b>Description</b></td>
</tr>
<tr>
<td>
<pre>
<b>void</b>
join
(<span class=
"c2"><tt>basic_tree</tt></span> &amp;other)
</pre>
</td>
<td>
<p>Joins two trees. When this function returns,
<span class="c1"><tt>other</tt></span> will be
empty.</p>
<p>When calling this method, <span class=
"c1"><tt>other</tt></span>'s keys must be all larger or
all smaller than this object's keys, and <span class=
"c1"><tt>other</tt></span>'s policies must be
equivalent to this object's policies.</p>
</td>
</tr>
<tr>
<td>
<pre>
<b>void</b>
split
(<a href=
"#const_key_reference3185471705"><tt>const_key_reference</tt></a> r_key,
<span class=
"c2"><tt>basic_tree</tt></span> &amp;other)
</pre>
</td>
<td>
<p>Splits into two trees. When this function returns,
<span class="c1"><tt>other</tt></span> will contain
only keys larger than <span class=
"c1"><tt>r_key</tt></span>.</p>
<p>When calling this method, <span class=
"c1"><tt>other</tt></span>'s policies must be
equivalent to this object's policies.</p>
</td>
</tr>
</table>
</div>
</body>
</html>