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< 345 <a href = "#Key3735928856">Key</a>>::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> & 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> & 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> & 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> & 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> &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> &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