1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 3 4<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 5<head> 6 <meta name="generator" content= 7 "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" /> 8 9 <title>trie_prefix_search_node_update Interface</title> 10 <meta http-equiv="Content-Type" content= 11 "text/html; charset=us-ascii" /> 12 </head> 13 14<body> 15 <div id="page"> 16 <h1><tt>trie_prefix_search_node_update</tt> Interface</h1> 17 18 <p>A node updater that allows tries to be searched for the 19 range of values that match a certain prefix.</p> 20 21 <p>Defined in: <a href= 22 "http://gcc.gnu.org/viewcvs/*checkout*/trunk/libstdc%2B%2B-v3/include/ext/pb_ds/trie_policy.hpp"><tt>trie_policy.hpp</tt></a></p> 23 24 <h2><a name="link1" id="link1">Template Parameters</a></h2> 25 26 <table class="c1" width="100%" border="1" summary= 27 "Template Parameters"> 28 <tr> 29 <td width="20%" align="left"><b>Parameter</b></td> 30 31 <td width="50%" align="left"><b>Description</b></td> 32 33 <td width="30%" align="left"><b>Default Value</b></td> 34 </tr> 35 36 <tr> 37 <td> 38 <pre> 39<a name="Const_Node_Iterator1933878761" id= 40"Const_Node_Iterator1933878761"><b>class</b> Const_Node_Iterator</a> 41</pre> 42 </td> 43 44 <td> 45 <p>Const node iterator type.</p> 46 </td> 47 48 <td>-</td> 49 </tr> 50 51 <tr> 52 <td> 53 <pre> 54<a name="Node_Iterator4206909839" id= 55"Node_Iterator4206909839"><b>class</b> Node_Iterator</a> 56</pre> 57 </td> 58 59 <td> 60 <p>Node iterator type.</p> 61 </td> 62 63 <td>-</td> 64 </tr> 65 66 <tr> 67 <td> 68 <pre> 69<a name="E_Access_Traits686553840" id= 70"E_Access_Traits686553840"><b>class</b> E_Access_Traits</a> 71</pre> 72 </td> 73 74 <td> 75 <p>Comparison functor.</p> 76 </td> 77 78 <td>-</td> 79 </tr> 80 81 <tr> 82 <td> 83 <pre> 84<a name="Allocator35940069" id= 85"Allocator35940069"><b>class</b> Allocator</a> 86</pre> 87 </td> 88 89 <td> 90 <p>Allocator type.</p> 91 </td> 92 93 <td>-</td> 94 </tr> 95 </table> 96 97 <h2><a name="link2" id="link2">Public Types and 98 Constants</a></h2> 99 100 <h3><a name="link3" id="link3">Key-Type Definitions</a></h3> 101 102 <table class="c1" width="100%" border="1" summary="Types"> 103 <tr> 104 <td width="30%" align="left"><b>Type</b></td> 105 106 <td width="55%" align="left"><b>Definition</b></td> 107 108 <td width="15%" align="left"><b>Description</b></td> 109 </tr> 110 111 <tr> 112 <td> 113 <pre> 114<a name="key_type10393186" id="key_type10393186">key_type</a> 115</pre> 116 </td> 117 118 <td> 119 <pre> 120The instantiating container's key type. 121</pre> 122 </td> 123 124 <td> 125 <p>Key type.</p> 126 </td> 127 </tr> 128 129 <tr> 130 <td> 131 <pre> 132<a name="const_key_reference3185471705" id= 133"const_key_reference3185471705">const_key_reference</a> 134</pre> 135 </td> 136 137 <td> 138 <pre> 139The instantiating container's const key reference type. 140</pre> 141 </td> 142 143 <td> 144 <p>Const key reference.</p> 145 </td> 146 </tr> 147 </table> 148 149 <h3><a name="link4" id="link4">Policy Definitions</a></h3> 150 151 <table class="c1" width="100%" border="1" summary="Types"> 152 <tr> 153 <td width="30%" align="left"><b>Type</b></td> 154 155 <td width="55%" align="left"><b>Definition</b></td> 156 157 <td width="15%" align="left"><b>Description</b></td> 158 </tr> 159 160 <tr> 161 <td> 162 <pre> 163<a name="e_access_traits1948190928" id= 164"e_access_traits1948190928">e_access_traits</a> 165</pre> 166 </td> 167 168 <td> 169 <pre> 170<a href="#E_Access_Traits686553840"><tt>E_Access_Traits</tt></a> 171</pre> 172 </td> 173 174 <td> 175 <p>Element access traits.</p> 176 </td> 177 </tr> 178 179 <tr> 180 <td> 181 <pre> 182<a name="const_e_iterator2450008044" id= 183"const_e_iterator2450008044">const_e_iterator</a> 184</pre> 185 </td> 186 187 <td> 188 <pre> 189<b>typename</b> <a href= 190"#e_access_traits1948190928"><tt>e_access_traits</tt></a>::const_iterator 191</pre> 192 </td> 193 194 <td> 195 <p>Const element iterator.</p> 196 </td> 197 </tr> 198 199 <tr> 200 <td> 201 <pre> 202<a name="allocator48440069" id="allocator48440069">allocator</a> 203</pre> 204 </td> 205 206 <td> 207 <pre> 208<a href="#Allocator35940069"><tt>Allocator</tt></a> 209</pre> 210 </td> 211 212 <td> 213 <p><a href="#Allocator35940069"><tt>Allocator</tt></a> 214 type.</p> 215 </td> 216 </tr> 217 </table> 218 219 <h3><a name="link5" id="link5">General Definitions</a></h3> 220 221 <table class="c1" width="100%" border="1" summary="Types"> 222 <tr> 223 <td width="30%" align="left"><b>Type</b></td> 224 225 <td width="55%" align="left"><b>Definition</b></td> 226 227 <td width="15%" align="left"><b>Description</b></td> 228 </tr> 229 230 <tr> 231 <td> 232 <pre> 233<a name="size_type55424436" id="size_type55424436">size_type</a> 234</pre> 235 </td> 236 237 <td> 238 <pre> 239<b>typename</b> <a href= 240"#allocator48440069"><tt>allocator</tt></a>::size_type 241</pre> 242 </td> 243 244 <td> 245 <p>Size type.</p> 246 </td> 247 </tr> 248 </table> 249 250 <h3><a name="link6" id="link6">Metadata-Type 251 Definitions</a></h3> 252 253 <table class="c1" width="100%" border="1" summary="Types"> 254 <tr> 255 <td width="30%" align="left"><b>Type</b></td> 256 257 <td width="55%" align="left"><b>Definition</b></td> 258 259 <td width="15%" align="left"><b>Description</b></td> 260 </tr> 261 262 <tr> 263 <td> 264 <pre> 265<a name="metadata_type2849297114" id= 266"metadata_type2849297114">metadata_type</a> 267</pre> 268 </td> 269 270 <td> 271 <pre> 272__gnu_pbds::detail::null_node_metadata 273</pre> 274 </td> 275 276 <td> 277 <p>Metadata type.</p> 278 </td> 279 </tr> 280 </table> 281 282 <h3><a name="link7" id="link7">Iterator Definitions</a></h3> 283 284 <table class="c1" width="100%" border="1" summary="Types"> 285 <tr> 286 <td width="30%" align="left"><b>Type</b></td> 287 288 <td width="55%" align="left"><b>Definition</b></td> 289 290 <td width="15%" align="left"><b>Description</b></td> 291 </tr> 292 293 <tr> 294 <td> 295 <pre> 296<a name="const_node_iterator4205924553" id= 297"const_node_iterator4205924553">const_node_iterator</a> 298</pre> 299 </td> 300 301 <td> 302 <pre> 303<a href= 304"#Const_Node_Iterator1933878761"><tt>Const_Node_Iterator</tt></a> 305</pre> 306 </td> 307 308 <td> 309 <p>Const node iterator type.</p> 310 </td> 311 </tr> 312 313 <tr> 314 <td> 315 <pre> 316<a name="node_iterator3431975247" id= 317"node_iterator3431975247">node_iterator</a> 318</pre> 319 </td> 320 321 <td> 322 <pre> 323<a href="#Node_Iterator4206909839"><tt>Node_Iterator</tt></a> 324</pre> 325 </td> 326 327 <td> 328 <p>Node iterator type.</p> 329 </td> 330 </tr> 331 332 <tr> 333 <td> 334 <pre> 335<a name="const_iterator98626788" id= 336"const_iterator98626788">const_iterator</a> 337</pre> 338 </td> 339 340 <td> 341 <pre> 342<b>typename</b> <a href= 343"#const_node_iterator4205924553"><tt>const_node_iterator</tt></a>::value_type 344</pre> 345 </td> 346 347 <td> 348 <p>Const iterator type.</p> 349 </td> 350 </tr> 351 352 <tr> 353 <td> 354 <pre> 355<a name="iterator10418194" id="iterator10418194">iterator</a> 356</pre> 357 </td> 358 359 <td> 360 <pre> 361<b>typename</b> <a href= 362"#node_iterator3431975247"><tt>node_iterator</tt></a>::value_type 363</pre> 364 </td> 365 366 <td> 367 <p>Iterator type.</p> 368 </td> 369 </tr> 370 </table> 371 372 <h2><a name="link8" id="link8">Public Methods</a></h2> 373 374 <h3><a name="link9" id="link9">Find Methods</a></h3> 375 376 <table class="c1" width="100%" border="1" summary="Methods"> 377 <tr> 378 <td width="45%" align="left"><b>Method</b></td> 379 380 <td width="55%" align="left"><b>Description</b></td> 381 </tr> 382 383 <tr> 384 <td> 385 <pre> 386std::pair< 387 <a href="#const_iterator98626788"><tt>const_iterator</tt></a>, 388 <a href= 389"#const_iterator98626788"><tt>const_iterator</tt></a>> 390 prefix_range 391 (<a href= 392"#const_key_reference3185471705"><tt>const_key_reference</tt></a> r_key) <b>const</b> 393</pre> 394 </td> 395 396 <td> 397 <p>Finds the <tt><b>const</b></tt> <a href= 398 "#iterator10418194"><tt>iterator</tt></a> range 399 corresponding to all values whose prefixes match 400 <span class="c1"><tt>r_key</tt></span>.</p> 401 </td> 402 </tr> 403 404 <tr> 405 <td> 406 <pre> 407std::pair< 408 <a href="#iterator10418194"><tt>iterator</tt></a>, 409 <a href="#iterator10418194"><tt>iterator</tt></a>> 410 prefix_range 411 (<a href= 412"#const_key_reference3185471705"><tt>const_key_reference</tt></a> r_key) 413</pre> 414 </td> 415 416 <td> 417 <p>Finds the <a href= 418 "#iterator10418194"><tt>iterator</tt></a> range 419 corresponding to all values whose prefixes match 420 <span class="c1"><tt>r_key</tt></span>.</p> 421 </td> 422 </tr> 423 424 <tr> 425 <td> 426 <pre> 427std::pair< 428 <a href="#const_iterator98626788"><tt>const_iterator</tt></a>, 429 <a href= 430"#const_iterator98626788"><tt>const_iterator</tt></a>> 431 prefix_range 432 (<a href= 433"#const_e_iterator2450008044"><tt>const_e_iterator</tt></a> b, 434 <a href= 435"#const_e_iterator2450008044"><tt>const_e_iterator</tt></a> e) <b>const</b> 436</pre> 437 </td> 438 439 <td> 440 <p>Finds the <tt><b>const</b></tt> <a href= 441 "#iterator10418194"><tt>iterator</tt></a> range 442 corresponding to all values whose prefixes match [b, 443 <span class="c1"><tt>e</tt></span>).</p> 444 </td> 445 </tr> 446 447 <tr> 448 <td> 449 <pre> 450std::pair< 451 <a href="#iterator10418194"><tt>iterator</tt></a>, 452 <a href="#iterator10418194"><tt>iterator</tt></a>> 453 prefix_range 454 (<a href= 455"#const_e_iterator2450008044"><tt>const_e_iterator</tt></a> b, 456 <a href= 457"#const_e_iterator2450008044"><tt>const_e_iterator</tt></a> e) 458</pre> 459 </td> 460 461 <td> 462 <p>Finds the <a href= 463 "#iterator10418194"><tt>iterator</tt></a> range 464 corresponding to all values whose prefixes match [b, 465 <span class="c1"><tt>e</tt></span>).</p> 466 </td> 467 </tr> 468 </table> 469 470 <h2><a name="link10" id="link10">Protected Methods</a></h2> 471 472 <h3><a name="link11" id="link11">Operators</a></h3> 473 474 <table class="c1" width="100%" border="1" summary="Methods"> 475 <tr> 476 <td width="45%" align="left"><b>Method</b></td> 477 478 <td width="55%" align="left"><b>Description</b></td> 479 </tr> 480 481 <tr> 482 <td> 483 <pre> 484<b>inline</b> <b>void</b> 485 <b>operator</b>() 486 (<a href= 487"#node_iterator3431975247"><tt>node_iterator</tt></a> node_it, 488 <a href= 489"#const_node_iterator4205924553"><tt>const_node_iterator</tt></a> end_nd_it) <b>const</b> 490</pre> 491 </td> 492 493 <td> 494 <p>Called to update a node's metadata.</p> 495 </td> 496 </tr> 497 </table> 498 499 <h2><a name="link12" id="link12">Private Methods</a></h2> 500 501 <h3><a name="link13" id="link13">Overrides</a></h3> 502 503 <table class="c1" width="100%" border="1" summary="Methods"> 504 <tr> 505 <td width="45%" align="left"><b>Method</b></td> 506 507 <td width="55%" align="left"><b>Description</b></td> 508 </tr> 509 510 <tr> 511 <td> 512 <pre> 513<b>virtual</b> <a href= 514"#const_iterator98626788"><tt>const_iterator</tt></a> 515 end 516 () <b>const</b> = 0 517</pre> 518 </td> 519 520 <td> 521 <p>Returns the <tt><b>const</b></tt> <a href= 522 "#iterator10418194"><tt>iterator</tt></a> associated with 523 the just-after last element.</p> 524 </td> 525 </tr> 526 527 <tr> 528 <td> 529 <pre> 530<b>virtual</b> <a href="#iterator10418194"><tt>iterator</tt></a> 531 end 532 () = 0 533</pre> 534 </td> 535 536 <td> 537 <p>Returns the <a href= 538 "#iterator10418194"><tt>iterator</tt></a> associated with 539 the just-after last element.</p> 540 </td> 541 </tr> 542 543 <tr> 544 <td> 545 <pre> 546<b>virtual</b> <a href= 547"#const_node_iterator4205924553"><tt>const_node_iterator</tt></a> 548 node_begin 549 () <b>const</b> = 0 550</pre> 551 </td> 552 553 <td> 554 <p>Returns the <a href= 555 "#const_node_iterator4205924553"><tt>const_node_iterator</tt></a> 556 associated with the trie's root node.</p> 557 </td> 558 </tr> 559 560 <tr> 561 <td> 562 <pre> 563<b>virtual</b> <a href= 564"#node_iterator3431975247"><tt>node_iterator</tt></a> 565 node_begin 566 () = 0 567</pre> 568 </td> 569 570 <td> 571 <p>Returns the <a href= 572 "#node_iterator3431975247"><tt>node_iterator</tt></a> 573 associated with the trie's root node.</p> 574 </td> 575 </tr> 576 577 <tr> 578 <td> 579 <pre> 580<b>virtual</b> <a href= 581"#const_node_iterator4205924553"><tt>const_node_iterator</tt></a> 582 node_end 583 () <b>const</b> = 0 584</pre> 585 </td> 586 587 <td> 588 <p>Returns the <a href= 589 "#const_node_iterator4205924553"><tt>const_node_iterator</tt></a> 590 associated with a just-after leaf node.</p> 591 </td> 592 </tr> 593 594 <tr> 595 <td> 596 <pre> 597<b>virtual</b> <a href= 598"#node_iterator3431975247"><tt>node_iterator</tt></a> 599 node_end 600 () = 0 601</pre> 602 </td> 603 604 <td> 605 <p>Returns the <a href= 606 "#node_iterator3431975247"><tt>node_iterator</tt></a> 607 associated with a just-after leaf node.</p> 608 </td> 609 </tr> 610 611 <tr> 612 <td> 613 <pre> 614<b>virtual</b> <b>const</b> <a href= 615"#e_access_traits1948190928"><tt>e_access_traits</tt></a> & 616 get_e_access_traits 617 () <b>const</b> = 0 618</pre> 619 </td> 620 621 <td> 622 <p>Access to the cmp_fn object.</p> 623 </td> 624 </tr> 625 </table> 626 </div> 627</body> 628</html> 629