1
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
3
4
5<html>
6<head>
7<title>basic_tree_assoc_cntnr Interface
8</title>
9
10</head>
11
12<body>
13<h1>
14<tt>basic_tree_assoc_cntnr
15</tt>
16
17 Interface
18
19
20</h1>
21
22<p>A basic tree-based associative container.
23</p>
24
25<ol>
26<li>
27<a href = "../../../../include/ext/pb_assoc/assoc_cntnr.hpp"><tt>assoc_cntnr.hpp</tt>
28</a>
29
30</li>
31
32<li>
33<a href = "#link1">Template parameters.
34</a>
35
36</li>
37
38<li>
39<a href = "#link2">Base classes.
40</a>
41
42</li>
43
44<li>
45Public Types and Constants:
46
47
48<ol>
49<li>
50<a href = "#link3">General container definitions.
51</a>
52
53</li>
54
55<li>
56<a href = "#link4">Key-type definitions.
57</a>
58
59</li>
60
61<li>
62<a href = "#link5">Policy definitions.
63</a>
64
65</li>
66
67<li>
68<a href = "#link6">Iterator definitions.
69</a>
70
71</li>
72
73</ol>
74
75</li>
76
77<li>
78Public Methods:
79
80
81<ol>
82<li>
83<a href = "#link7">Constructors, destructor, and related.
84</a>
85
86</li>
87
88<li>
89<a href = "#link8">Policy access methods.
90</a>
91
92</li>
93
94<li>
95<a href = "#link9">Erase methods.
96</a>
97
98</li>
99
100<li>
101<a href = "#link10">Iteration methods.
102</a>
103
104</li>
105
106<li>
107<a href = "#link11">Node-Iteration methods.
108</a>
109
110</li>
111
112<li>
113<a href = "#link12">Split and join methods.
114</a>
115
116</li>
117
118</ol>
119
120</li>
121
122</ol>
123
124
125<h2>
126<a name = "link1">Template parameters.
127</a>
128
129</h2>
130
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>
133
134
135<tr>
136<td>
137<pre><a name = "Key3735928856">Key</a></pre>
138
139
140</td>
141
142<td>
143<p>Key type.</p>
144
145
146</td>
147
148<td>
149-
150
151
152</td>
153
154</tr>
155
156<tr>
157<td>
158<pre><a name = "Data3735928937">Data</a></pre>
159
160
161</td>
162
163<td>
164<p>Data type.</p>
165
166
167</td>
168
169<td>
170-
171
172
173</td>
174
175</tr>
176
177<tr>
178<td>
179<pre><a name = "Cmp_Fn3735929122">Cmp_Fn</a></pre>
180
181
182</td>
183
184<td>
185<p>Comparison functor.</p>
186
187
188</td>
189
190<td>
191-
192
193
194</td>
195
196</tr>
197
198<tr>
199<td>
200<pre><a name = "DS_Tag,3735929133">DS_Tag,</a></pre>
201
202
203</td>
204
205<td>
206<p>Data-structure tag.</p>
207
208
209</td>
210
211<td>
212-
213
214
215</td>
216
217</tr>
218
219<tr>
220<td>
221<pre><a name = "Node_Updator3735929779">Node_Updator</a></pre>
222
223
224</td>
225
226<td>
227<p>Node updator type.</p>
228
229
230<p><a href = "concepts.html#concepts_node_invariants">Node Invariants</a> explains this concept.</p>
231
232
233</td>
234
235<td>
236-
237
238
239</td>
240
241</tr>
242
243<tr>
244<td>
245<pre><a name = "Allocator3735929488">Allocator</a></pre>
246
247
248</td>
249
250<td>
251<p>Allocator type.</p>
252
253
254</td>
255
256<td>
257-
258
259
260</td>
261
262</tr>
263
264</table>
265
266<h2>
267<a name = "link2">Base classes.
268</a>
269
270</h2>
271
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>
274
275
276<tr>
277<td>
278<pre><a href = "#Node_Updator3735929779">Node_Updator</a></pre>
279
280
281</td>
282
283<td>
284<p>public</p>
285
286
287</td>
288
289</tr>
290
291</table>
292
293<h2>
294<a name = "link3">General container definitions.
295</a>
296
297</h2>
298
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>
301
302
303<tr>
304<td>
305<pre><a name = "size_type3735929547">size_type</a></pre>
306
307
308</td>
309
310<td>
311<pre><b>typename</b> <a href = "#Allocator3735929488">Allocator</a>::size_type</pre>
312
313
314</td>
315
316<td>
317<p>Size type.</p>
318
319
320</td>
321
322</tr>
323
324</table>
325
326<h2>
327<a name = "link4">Key-type definitions.
328</a>
329
330</h2>
331
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>
334
335
336<tr>
337<td>
338<pre><a name = "const_key_reference3735929552">const_key_reference</a></pre>
339
340
341</td>
342
343<td>
344<pre><b>typename</b> <a href = "#Allocator3735929488">Allocator</a>::<b>template</b> rebind&lt;
345    <a href = "#Key3735928856">Key</a>&gt;::other::const_reference</pre>
346
347
348</td>
349
350<td>
351<p>Const key reference type.</p>
352
353
354</td>
355
356</tr>
357
358</table>
359
360<h2>
361<a name = "link5">Policy definitions.
362</a>
363
364</h2>
365
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>
368
369
370<tr>
371<td>
372<pre><a name = "cmp_fn3735929186">cmp_fn</a></pre>
373
374
375</td>
376
377<td>
378<pre><a href = "#Cmp_Fn3735929122">Cmp_Fn</a></pre>
379
380
381</td>
382
383<td>
384<p>Comparison functor type.</p>
385
386
387</td>
388
389</tr>
390
391<tr>
392<td>
393<pre><a name = "node_updator3735929843">node_updator</a></pre>
394
395
396</td>
397
398<td>
399<pre><a href = "#Node_Updator3735929779">Node_Updator</a></pre>
400
401
402</td>
403
404<td>
405<p>Node updator type.</p>
406
407
408</td>
409
410</tr>
411
412</table>
413
414<h2>
415<a name = "link6">Iterator definitions.
416</a>
417
418</h2>
419
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>
422
423
424<tr>
425<td>
426<pre><a name = "const_iterator3735930079">const_iterator</a></pre>
427
428
429</td>
430
431<td>
432<pre>Underlying data-structure's const range-type iterator.</pre>
433
434
435</td>
436
437<td>
438<p>Const range-type iterator.</p>
439
440
441</td>
442
443</tr>
444
445<tr>
446<td>
447<pre><a name = "iterator3735929433">iterator</a></pre>
448
449
450</td>
451
452<td>
453<pre>Underlying data-structure's range-type iterator.</pre>
454
455
456</td>
457
458<td>
459<p>Range-type iterator.</p>
460
461
462</td>
463
464</tr>
465
466<tr>
467<td>
468<pre><a name = "const_reverse_iterator3735929745">const_reverse_iterator</a></pre>
469
470
471</td>
472
473<td>
474<pre>Underlying data-structure's const reverse range-type iterator.</pre>
475
476
477</td>
478
479<td>
480<p>Const reverse range-type iterator.</p>
481
482
483</td>
484
485</tr>
486
487<tr>
488<td>
489<pre><a name = "reverse_iterator3735929420">reverse_iterator</a></pre>
490
491
492</td>
493
494<td>
495<pre>Underlying data-structure's reverse range-type iterator.</pre>
496
497
498</td>
499
500<td>
501<p>Reverse range-type iterator.</p>
502
503
504</td>
505
506</tr>
507
508<tr>
509<td>
510<pre><a name = "const_node_iterator3735929535">const_node_iterator</a></pre>
511
512
513</td>
514
515<td>
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>
517
518
519</td>
520
521<td>
522<p>Const node iterator.</p>
523
524
525</td>
526
527</tr>
528
529<tr>
530<td>
531<pre><a name = "node_iterator3735929950">node_iterator</a></pre>
532
533
534</td>
535
536<td>
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>
538
539
540</td>
541
542<td>
543<p>Node iterator.</p>
544
545
546</td>
547
548</tr>
549
550</table>
551
552<h2>
553<a name = "link7">Constructors, destructor, and related.
554</a>
555
556</h2>
557
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>
560
561
562<tr>
563<td>
564<pre><b>virtual</b>
565  ~basic_tree_assoc_cntnr
566  ()</pre>
567
568
569</td>
570
571<td>
572<p>Destructor.</p>
573
574
575</td>
576
577</tr>
578
579</table>
580
581<h2>
582<a name = "link8">Policy access methods.
583</a>
584
585</h2>
586
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>
589
590
591<tr>
592<td>
593<pre><a href = "#cmp_fn3735929186">cmp_fn</a> &amp;
594  get_cmp_fn
595  ()</pre>
596
597
598</td>
599
600<td>
601<p>Access to the <a href = "#cmp_fn3735929186"><tt>cmp_fn</tt></a> object.</p>
602
603
604</td>
605
606</tr>
607
608<tr>
609<td>
610<pre><b>const</b> <a href = "#cmp_fn3735929186">cmp_fn</a> &amp;
611  get_cmp_fn
612  () <b>const</b></pre>
613
614
615</td>
616
617<td>
618<p>Const access to the <a href = "#cmp_fn3735929186"><tt>cmp_fn</tt></a> object.</p>
619
620
621</td>
622
623</tr>
624
625<tr>
626<td>
627<pre><a href = "#node_updator3735929843">node_updator</a> &amp;
628  get_node_updator
629  ()</pre>
630
631
632</td>
633
634<td>
635<p>Access to the <a href = "#node_updator3735929843"><tt>node_updator</tt></a> object.</p>
636
637
638</td>
639
640</tr>
641
642<tr>
643<td>
644<pre><b>const</b> <a href = "#node_updator3735929843">node_updator</a> &amp;
645  get_node_updator
646  () <b>const</b></pre>
647
648
649</td>
650
651<td>
652<p>Const access to the <a href = "#node_updator3735929843"><tt>node_updator</tt></a> object.</p>
653
654
655</td>
656
657</tr>
658
659</table>
660
661<h2>
662<a name = "link9">Erase methods.
663</a>
664
665</h2>
666
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>
669
670
671<tr>
672<td>
673<pre><b>inline</b> <a href = "#size_type3735929547">size_type</a>
674  erase
675  (<a href = "#const_key_reference3735929552">const_key_reference</a> r_key)</pre>
676
677
678</td>
679
680<td>
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>
682
683
684</td>
685
686</tr>
687
688<tr>
689<td>
690<pre><b>inline</b> <a href = "#iterator3735929433">iterator</a>
691  erase
692  (<a href = "#iterator3735929433">iterator</a> it)</pre>
693
694
695</td>
696
697<td>
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>
699
700
701</td>
702
703</tr>
704
705<tr>
706<td>
707<pre><b>inline</b> <a href = "#reverse_iterator3735929420">reverse_iterator</a>
708  erase
709  (<a href = "#reverse_iterator3735929420">reverse_iterator</a> it)</pre>
710
711
712</td>
713
714<td>
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>
716
717
718</td>
719
720</tr>
721
722</table>
723
724<h2>
725<a name = "link10">Iteration methods.
726</a>
727
728</h2>
729
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>
732
733
734<tr>
735<td>
736<pre><b>inline</b> <a href = "#reverse_iterator3735929420">reverse_iterator</a>
737  rbegin
738  ()</pre>
739
740
741</td>
742
743<td>
744<p>Returns a <a href = "#reverse_iterator3735929420"><tt>reverse_iterator</tt></a> corresponding to the last value_type in the container.</p>
745
746
747</td>
748
749</tr>
750
751<tr>
752<td>
753<pre><b>inline</b> <a href = "#const_reverse_iterator3735929745">const_reverse_iterator</a>
754  rbegin
755  () <b>const</b></pre>
756
757
758</td>
759
760<td>
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>
762
763
764</td>
765
766</tr>
767
768<tr>
769<td>
770<pre><b>inline</b> <a href = "#reverse_iterator3735929420">reverse_iterator</a>
771  rend
772  ()</pre>
773
774
775</td>
776
777<td>
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>
779
780
781</td>
782
783</tr>
784
785<tr>
786<td>
787<pre><b>inline</b> <a href = "#const_reverse_iterator3735929745">const_reverse_iterator</a>
788  rend
789  () <b>const</b></pre>
790
791
792</td>
793
794<td>
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>
796
797
798</td>
799
800</tr>
801
802</table>
803
804<h2>
805<a name = "link11">Node-Iteration methods.
806</a>
807
808</h2>
809
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>
812
813
814<tr>
815<td>
816<pre><b>inline</b> <a href = "#node_iterator3735929950">node_iterator</a>
817  node_begin
818  ()</pre>
819
820
821</td>
822
823<td>
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>
825
826
827</td>
828
829</tr>
830
831<tr>
832<td>
833<pre><b>inline</b> <a href = "#const_node_iterator3735929535">const_node_iterator</a>
834  node_begin
835  () <b>const</b></pre>
836
837
838</td>
839
840<td>
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>
842
843
844</td>
845
846</tr>
847
848<tr>
849<td>
850<pre><b>inline</b> <a href = "#node_iterator3735929950">node_iterator</a>
851  node_end
852  ()</pre>
853
854
855</td>
856
857<td>
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>
859
860
861</td>
862
863</tr>
864
865<tr>
866<td>
867<pre><b>inline</b> <a href = "#const_node_iterator3735929535">const_node_iterator</a>
868  node_end
869  () <b>const</b></pre>
870
871
872</td>
873
874<td>
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>
876
877
878</td>
879
880</tr>
881
882</table>
883
884<h2>
885<a name = "link12">Split and join methods.
886</a>
887
888</h2>
889
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>
892
893
894<tr>
895<td>
896<pre><b>void</b>
897  join
898  (<font color = "olive">basic_tree_assoc_cntnr</font> &amp;r_other)</pre>
899
900
901</td>
902
903<td>
904<p>Joins two trees. When this function returns, <font color = "#666666"><tt>r_other</tt></font> will be empty.</p>
905
906
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>
908
909
910</td>
911
912</tr>
913
914<tr>
915<td>
916<pre><b>inline</b> <b>void</b>
917  split
918  (<a href = "#const_key_reference3735929552">const_key_reference</a> r_key,
919    <font color = "olive">basic_tree_assoc_cntnr</font> &amp;r_other)</pre>
920
921
922</td>
923
924<td>
925<p>Joins two trees. When this function returns, <font color = "#666666"><tt>r_other</tt></font> will be empty.</p>
926
927
928</td>
929
930</tr>
931
932</table>
933
934
935
936</body>
937
938</html>
939
940
941