2 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
7 <title>basic_tree_assoc_cntnr Interface
14 <tt>basic_tree_assoc_cntnr
22 <p>A basic tree-based associative container.
27 <a href = "../../../../include/ext/pb_assoc/assoc_cntnr.hpp"><tt>assoc_cntnr.hpp</tt>
33 <a href = "#link1">Template parameters.
39 <a href = "#link2">Base classes.
45 Public Types and Constants:
50 <a href = "#link3">General container definitions.
56 <a href = "#link4">Key-type definitions.
62 <a href = "#link5">Policy definitions.
68 <a href = "#link6">Iterator definitions.
83 <a href = "#link7">Constructors, destructor, and related.
89 <a href = "#link8">Policy access methods.
95 <a href = "#link9">Erase methods.
101 <a href = "#link10">Iteration methods.
107 <a href = "#link11">Node-Iteration methods.
113 <a href = "#link12">Split and join methods.
126 <a name = "link1">Template parameters.
131 <table WIDTH = "100%" BORDER = "1">
132 <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>
137 <pre><a name = "Key3735928856">Key</a></pre>
158 <pre><a name = "Data3735928937">Data</a></pre>
179 <pre><a name = "Cmp_Fn3735929122">Cmp_Fn</a></pre>
185 <p>Comparison functor.</p>
200 <pre><a name = "DS_Tag,3735929133">DS_Tag,</a></pre>
206 <p>Data-structure tag.</p>
221 <pre><a name = "Node_Updator3735929779">Node_Updator</a></pre>
227 <p>Node updator type.</p>
230 <p><a href = "concepts.html#concepts_node_invariants">Node Invariants</a> explains this concept.</p>
245 <pre><a name = "Allocator3735929488">Allocator</a></pre>
251 <p>Allocator type.</p>
267 <a name = "link2">Base classes.
272 <table WIDTH = "100%" BORDER = "1">
273 <TR><TD Width = "80%" ALIGN = "left"><b>Class</b></TD><TD Width = "20%" ALIGN = "left"><b>Derivation Type</b></TD></TR>
278 <pre><a href = "#Node_Updator3735929779">Node_Updator</a></pre>
294 <a name = "link3">General container definitions.
299 <table WIDTH = "100%" BORDER = "1">
300 <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>
305 <pre><a name = "size_type3735929547">size_type</a></pre>
311 <pre><b>typename</b> <a href = "#Allocator3735929488">Allocator</a>::size_type</pre>
327 <a name = "link4">Key-type definitions.
332 <table WIDTH = "100%" BORDER = "1">
333 <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>
338 <pre><a name = "const_key_reference3735929552">const_key_reference</a></pre>
344 <pre><b>typename</b> <a href = "#Allocator3735929488">Allocator</a>::<b>template</b> rebind<
345 <a href = "#Key3735928856">Key</a>>::other::const_reference</pre>
351 <p>Const key reference type.</p>
361 <a name = "link5">Policy definitions.
366 <table WIDTH = "100%" BORDER = "1">
367 <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>
372 <pre><a name = "cmp_fn3735929186">cmp_fn</a></pre>
378 <pre><a href = "#Cmp_Fn3735929122">Cmp_Fn</a></pre>
384 <p>Comparison functor type.</p>
393 <pre><a name = "node_updator3735929843">node_updator</a></pre>
399 <pre><a href = "#Node_Updator3735929779">Node_Updator</a></pre>
405 <p>Node updator type.</p>
415 <a name = "link6">Iterator definitions.
420 <table WIDTH = "100%" BORDER = "1">
421 <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>
426 <pre><a name = "const_iterator3735930079">const_iterator</a></pre>
432 <pre>Underlying data-structure's const range-type iterator.</pre>
438 <p>Const range-type iterator.</p>
447 <pre><a name = "iterator3735929433">iterator</a></pre>
453 <pre>Underlying data-structure's range-type iterator.</pre>
459 <p>Range-type iterator.</p>
468 <pre><a name = "const_reverse_iterator3735929745">const_reverse_iterator</a></pre>
474 <pre>Underlying data-structure's const reverse range-type iterator.</pre>
480 <p>Const reverse range-type iterator.</p>
489 <pre><a name = "reverse_iterator3735929420">reverse_iterator</a></pre>
495 <pre>Underlying data-structure's reverse range-type iterator.</pre>
501 <p>Reverse range-type iterator.</p>
510 <pre><a name = "const_node_iterator3735929535">const_node_iterator</a></pre>
516 <pre><a href = "basic_tree_assoc_cntnr_const_node_iterator.html"><tt><font color = "olive">basic_tree_assoc_cntnr</font>::const_node_iterator</tt></a></pre>
522 <p>Const node iterator.</p>
531 <pre><a name = "node_iterator3735929950">node_iterator</a></pre>
537 <pre><a href = "basic_tree_assoc_cntnr_node_iterator.html"><tt><font color = "olive">basic_tree_assoc_cntnr</font>::node_iterator</tt></a></pre>
543 <p>Node iterator.</p>
553 <a name = "link7">Constructors, destructor, and related.
558 <table WIDTH = "100%" BORDER = "1">
559 <TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
565 ~basic_tree_assoc_cntnr
582 <a name = "link8">Policy access methods.
587 <table WIDTH = "100%" BORDER = "1">
588 <TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
593 <pre><a href = "#cmp_fn3735929186">cmp_fn</a> &
601 <p>Access to the <a href = "#cmp_fn3735929186"><tt>cmp_fn</tt></a> object.</p>
610 <pre><b>const</b> <a href = "#cmp_fn3735929186">cmp_fn</a> &
612 () <b>const</b></pre>
618 <p>Const access to the <a href = "#cmp_fn3735929186"><tt>cmp_fn</tt></a> object.</p>
627 <pre><a href = "#node_updator3735929843">node_updator</a> &
635 <p>Access to the <a href = "#node_updator3735929843"><tt>node_updator</tt></a> object.</p>
644 <pre><b>const</b> <a href = "#node_updator3735929843">node_updator</a> &
646 () <b>const</b></pre>
652 <p>Const access to the <a href = "#node_updator3735929843"><tt>node_updator</tt></a> object.</p>
662 <a name = "link9">Erase methods.
667 <table WIDTH = "100%" BORDER = "1">
668 <TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
673 <pre><b>inline</b> <a href = "#size_type3735929547">size_type</a>
675 (<a href = "#const_key_reference3735929552">const_key_reference</a> r_key)</pre>
681 <p>Erases the value_type associated with <font color = "#666666"><tt>r_key</tt></font>; returns the number of value_types erased (0 or 1).</p>
690 <pre><b>inline</b> <a href = "#iterator3735929433">iterator</a>
692 (<a href = "#iterator3735929433">iterator</a> it)</pre>
698 <p>Erases the value_type corresponding to the <a href = "#iterator3735929433"><tt>iterator</tt></a> <font color = "#666666"><tt>it</tt></font>. Returns the <a href = "#iterator3735929433"><tt>iterator</tt></a> corresponding to the next value_type.</p>
707 <pre><b>inline</b> <a href = "#reverse_iterator3735929420">reverse_iterator</a>
709 (<a href = "#reverse_iterator3735929420">reverse_iterator</a> it)</pre>
715 <p>Erases the value_type corresponding to the <a href = "#reverse_iterator3735929420"><tt>reverse_iterator</tt></a> <font color = "#666666"><tt>it</tt></font>. Returns the <a href = "#reverse_iterator3735929420"><tt>reverse_iterator</tt></a> corresponding to the previous value_type.</p>
725 <a name = "link10">Iteration methods.
730 <table WIDTH = "100%" BORDER = "1">
731 <TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
736 <pre><b>inline</b> <a href = "#reverse_iterator3735929420">reverse_iterator</a>
744 <p>Returns a <a href = "#reverse_iterator3735929420"><tt>reverse_iterator</tt></a> corresponding to the last value_type in the container.</p>
753 <pre><b>inline</b> <a href = "#const_reverse_iterator3735929745">const_reverse_iterator</a>
755 () <b>const</b></pre>
761 <p>Returns a <a href = "#const_reverse_iterator3735929745"><tt>const_reverse_iterator</tt></a> corresponding to the last value_type in the container.</p>
770 <pre><b>inline</b> <a href = "#reverse_iterator3735929420">reverse_iterator</a>
778 <p>Returns a <a href = "#reverse_iterator3735929420"><tt>reverse_iterator</tt></a> corresponding to the just-before-first value_type in the container.</p>
787 <pre><b>inline</b> <a href = "#const_reverse_iterator3735929745">const_reverse_iterator</a>
789 () <b>const</b></pre>
795 <p>Returns a <a href = "#const_reverse_iterator3735929745"><tt>const_reverse_iterator</tt></a> corresponding to the just-before-first value_type in the container.</p>
805 <a name = "link11">Node-Iteration methods.
810 <table WIDTH = "100%" BORDER = "1">
811 <TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
816 <pre><b>inline</b> <a href = "#node_iterator3735929950">node_iterator</a>
824 <p>Returns a <a href = "#node_iterator3735929950"><tt>node_iterator</tt></a> corresponding to the value_type at the root of the tree.</p>
833 <pre><b>inline</b> <a href = "#const_node_iterator3735929535">const_node_iterator</a>
835 () <b>const</b></pre>
841 <p>Returns a <a href = "#const_node_iterator3735929535"><tt>const_node_iterator</tt></a> corresponding to the value_type at the root of the tree.</p>
850 <pre><b>inline</b> <a href = "#node_iterator3735929950">node_iterator</a>
858 <p>Returns a <a href = "#node_iterator3735929950"><tt>node_iterator</tt></a> corresponding to a value_type just after a leaf of the tree.</p>
867 <pre><b>inline</b> <a href = "#const_node_iterator3735929535">const_node_iterator</a>
869 () <b>const</b></pre>
875 <p>Returns a <a href = "#const_node_iterator3735929535"><tt>const_node_iterator</tt></a> corresponding to a value_type just after a leaf of the tree.</p>
885 <a name = "link12">Split and join methods.
890 <table WIDTH = "100%" BORDER = "1">
891 <TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
898 (<font color = "olive">basic_tree_assoc_cntnr</font> &r_other)</pre>
904 <p>Joins two trees. When this function returns, <font color = "#666666"><tt>r_other</tt></font> will be empty.</p>
907 <p>When calling this function, <font color = "#666666"><tt>r_other</tt></font>'s keys must be all larger or all smaller than this object's keys. </p>
916 <pre><b>inline</b> <b>void</b>
918 (<a href = "#const_key_reference3735929552">const_key_reference</a> r_key,
919 <font color = "olive">basic_tree_assoc_cntnr</font> &r_other)</pre>
925 <p>Joins two trees. When this function returns, <font color = "#666666"><tt>r_other</tt></font> will be empty.</p>