<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/> <meta name="generator" content="Doxygen 1.8.15"/> <meta name="viewport" content="width=device-width, initial-scale=1"/> <title>libstdc++: __gnu_pbds::trie< Key, Mapped, _ATraits, Tag, Node_Update, _Alloc > Class Template Reference</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="dynsections.js"></script> <link href="navtree.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="resize.js"></script> <script type="text/javascript" src="navtreedata.js"></script> <script type="text/javascript" src="navtree.js"></script> <script type="text/javascript"> /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ $(document).ready(initResizable); /* @license-end */</script> <link href="doxygen.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="top"><!-- do not remove this div, it is closed by doxygen! --> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td id="projectalign" style="padding-left: 0.5em;"> <div id="projectname">libstdc++ </div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.15 --> </div><!-- top --> <div id="side-nav" class="ui-resizable side-nav-resizable"> <div id="nav-tree"> <div id="nav-tree-contents"> <div id="nav-sync" class="sync"></div> </div> </div> <div id="splitbar" style="-moz-user-select:none;" class="ui-resizable-handle"> </div> </div> <script type="text/javascript"> /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ $(document).ready(function(){initNavTree('a11040.html','');}); /* @license-end */ </script> <div id="doc-content"> <div class="header"> <div class="summary"> <a href="#pub-types">Public Types</a> | <a href="#pub-methods">Public Member Functions</a> | <a href="a11037.html">List of all members</a> </div> <div class="headertitle"> <div class="title">__gnu_pbds::trie< Key, Mapped, _ATraits, Tag, Node_Update, _Alloc > Class Template Reference<div class="ingroups"><a class="el" href="a01458.html">Extensions</a> » <a class="el" href="a01526.html">Policy-Based Data Structures</a> » <a class="el" href="a01517.html">Containers</a> » <a class="el" href="a01520.html">Branch-Based</a></div></div> </div> </div><!--header--> <div class="contents"> <div class="dynheader"> Inheritance diagram for __gnu_pbds::trie< Key, Mapped, _ATraits, Tag, Node_Update, _Alloc >:</div> <div class="dyncontent"> <div class="center"><iframe scrolling="no" frameborder="0" src="a11039.svg" width="431" height="143"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe> </div> <center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div> <table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a> Public Types</h2></td></tr> <tr class="memitem:a77193204101c7dda4a7286f56b9731c1"><td class="memItemLeft" align="right" valign="top">typedef _ATraits </td><td class="memItemRight" valign="bottom"><a class="el" href="a11040.html#a77193204101c7dda4a7286f56b9731c1">access_traits</a></td></tr> <tr class="separator:a77193204101c7dda4a7286f56b9731c1"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a46344bd291cd295229b8c045c8608201"><td class="memItemLeft" align="right" valign="top"><a id="a46344bd291cd295229b8c045c8608201"></a> typedef <a class="el" href="a11588.html">detail::trie_traits</a>< Key, Mapped, _ATraits, Node_Update, Tag, _Alloc > ::node_update </td><td class="memItemRight" valign="bottom"><b>node_update</b></td></tr> <tr class="separator:a46344bd291cd295229b8c045c8608201"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a> Public Member Functions</h2></td></tr> <tr class="memitem:a5feddcc5a253f6fc4ff4567ad0359b6d"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a11040.html#a5feddcc5a253f6fc4ff4567ad0359b6d">trie</a> (const <a class="el" href="a11040.html#a77193204101c7dda4a7286f56b9731c1">access_traits</a> &t)</td></tr> <tr class="separator:a5feddcc5a253f6fc4ff4567ad0359b6d"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a0aaac7de1516a27993552064782cdec2"><td class="memTemplParams" colspan="2">template<typename It > </td></tr> <tr class="memitem:a0aaac7de1516a27993552064782cdec2"><td class="memTemplItemLeft" align="right" valign="top"> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a11040.html#a0aaac7de1516a27993552064782cdec2">trie</a> (It first, It last)</td></tr> <tr class="separator:a0aaac7de1516a27993552064782cdec2"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a0f9b513af82c2a51ba44849a2155096d"><td class="memTemplParams" colspan="2">template<typename It > </td></tr> <tr class="memitem:a0f9b513af82c2a51ba44849a2155096d"><td class="memTemplItemLeft" align="right" valign="top"> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a11040.html#a0f9b513af82c2a51ba44849a2155096d">trie</a> (It first, It last, const <a class="el" href="a11040.html#a77193204101c7dda4a7286f56b9731c1">access_traits</a> &t)</td></tr> <tr class="separator:a0f9b513af82c2a51ba44849a2155096d"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:acf756c3bacd6f2624fd1b9617afc174a"><td class="memItemLeft" align="right" valign="top"><a id="acf756c3bacd6f2624fd1b9617afc174a"></a>  </td><td class="memItemRight" valign="bottom"><b>trie</b> (const <a class="el" href="a11040.html">trie</a> &other)</td></tr> <tr class="separator:acf756c3bacd6f2624fd1b9617afc174a"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a98cbc753f9dcd616d7c6c6cbc3be4f2a"><td class="memItemLeft" align="right" valign="top"><a id="a98cbc753f9dcd616d7c6c6cbc3be4f2a"></a> <a class="el" href="a11040.html">trie</a> & </td><td class="memItemRight" valign="bottom"><b>operator=</b> (const <a class="el" href="a11040.html">trie</a> &other)</td></tr> <tr class="separator:a98cbc753f9dcd616d7c6c6cbc3be4f2a"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a29d45c6f89db1d8c623e831dd8f1043f"><td class="memItemLeft" align="right" valign="top"><a id="a29d45c6f89db1d8c623e831dd8f1043f"></a> void </td><td class="memItemRight" valign="bottom"><b>swap</b> (<a class="el" href="a11040.html">trie</a> &other)</td></tr> <tr class="separator:a29d45c6f89db1d8c623e831dd8f1043f"><td class="memSeparator" colspan="2"> </td></tr> </table> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <div class="textblock"><h3>template<typename Key, typename Mapped, typename _ATraits = typename detail::default_trie_access_traits<Key>::type, typename Tag = pat_trie_tag, template< typename Node_CItr, typename Node_Itr, typename _ATraits_, typename _Alloc_ > class Node_Update = null_node_update, typename _Alloc = std::allocator<char>><br /> class __gnu_pbds::trie< Key, Mapped, _ATraits, Tag, Node_Update, _Alloc ></h3> <p>A trie-based container.</p> <dl class="tparams"><dt>Template Parameters</dt><dd> <table class="tparams"> <tr><td class="paramname">Key</td><td>Key type. </td></tr> <tr><td class="paramname">Mapped</td><td>Map type. </td></tr> <tr><td class="paramname">_ATraits</td><td>Element access traits. </td></tr> <tr><td class="paramname">Tag</td><td>Instantiating data structure type, see container_tag. </td></tr> <tr><td class="paramname">Node_Update</td><td>Updates trie internal-nodes, restores invariants when invalidated. XXX See design::tree-based-containersnode invariants. </td></tr> <tr><td class="paramname">_Alloc</td><td>Allocator type.</td></tr> </table> </dd> </dl> <p>Base tag choice is pat_trie_tag.</p> <p>Base is basic_branch. </p> <p class="definition">Definition at line <a class="el" href="a01106_source.html#l00731">731</a> of file <a class="el" href="a01106_source.html">assoc_container.hpp</a>.</p> </div><h2 class="groupheader">Member Typedef Documentation</h2> <a id="a77193204101c7dda4a7286f56b9731c1"></a> <h2 class="memtitle"><span class="permalink"><a href="#a77193204101c7dda4a7286f56b9731c1">◆ </a></span>access_traits</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename Key , typename Mapped , typename _ATraits = typename detail::default_trie_access_traits<Key>::type, typename Tag = pat_trie_tag, template< typename Node_CItr, typename Node_Itr, typename _ATraits_, typename _Alloc_ > class Node_Update = null_node_update, typename _Alloc = std::allocator<char>> </div> <table class="memname"> <tr> <td class="memname">typedef _ATraits <a class="el" href="a11040.html">__gnu_pbds::trie</a>< Key, Mapped, _ATraits, Tag, Node_Update, _Alloc >::<a class="el" href="a11040.html#a77193204101c7dda4a7286f56b9731c1">access_traits</a></td> </tr> </table> </div><div class="memdoc"> <p>Element access traits type. </p> <p class="definition">Definition at line <a class="el" href="a01106_source.html#l00738">738</a> of file <a class="el" href="a01106_source.html">assoc_container.hpp</a>.</p> </div> </div> <h2 class="groupheader">Constructor & Destructor Documentation</h2> <a id="a5feddcc5a253f6fc4ff4567ad0359b6d"></a> <h2 class="memtitle"><span class="permalink"><a href="#a5feddcc5a253f6fc4ff4567ad0359b6d">◆ </a></span>trie() <span class="overload">[1/3]</span></h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename Key , typename Mapped , typename _ATraits = typename detail::default_trie_access_traits<Key>::type, typename Tag = pat_trie_tag, template< typename Node_CItr, typename Node_Itr, typename _ATraits_, typename _Alloc_ > class Node_Update = null_node_update, typename _Alloc = std::allocator<char>> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a11040.html">__gnu_pbds::trie</a>< Key, Mapped, _ATraits, Tag, Node_Update, _Alloc >::<a class="el" href="a11040.html">trie</a> </td> <td>(</td> <td class="paramtype">const <a class="el" href="a11040.html#a77193204101c7dda4a7286f56b9731c1">access_traits</a> & </td> <td class="paramname"><em>t</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Constructor taking some policy objects. r_access_traits will be copied by the _ATraits object of the container object. </p> <p class="definition">Definition at line <a class="el" href="a01106_source.html#l00744">744</a> of file <a class="el" href="a01106_source.html">assoc_container.hpp</a>.</p> </div> </div> <a id="a0aaac7de1516a27993552064782cdec2"></a> <h2 class="memtitle"><span class="permalink"><a href="#a0aaac7de1516a27993552064782cdec2">◆ </a></span>trie() <span class="overload">[2/3]</span></h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename Key , typename Mapped , typename _ATraits = typename detail::default_trie_access_traits<Key>::type, typename Tag = pat_trie_tag, template< typename Node_CItr, typename Node_Itr, typename _ATraits_, typename _Alloc_ > class Node_Update = null_node_update, typename _Alloc = std::allocator<char>> </div> <div class="memtemplate"> template<typename It > </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a11040.html">__gnu_pbds::trie</a>< Key, Mapped, _ATraits, Tag, Node_Update, _Alloc >::<a class="el" href="a11040.html">trie</a> </td> <td>(</td> <td class="paramtype">It </td> <td class="paramname"><em>first</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">It </td> <td class="paramname"><em>last</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Constructor taking __iterators to a range of value_types. The value_types between first_it and last_it will be inserted into the container object. </p> <p class="definition">Definition at line <a class="el" href="a01106_source.html#l00751">751</a> of file <a class="el" href="a01106_source.html">assoc_container.hpp</a>.</p> </div> </div> <a id="a0f9b513af82c2a51ba44849a2155096d"></a> <h2 class="memtitle"><span class="permalink"><a href="#a0f9b513af82c2a51ba44849a2155096d">◆ </a></span>trie() <span class="overload">[3/3]</span></h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename Key , typename Mapped , typename _ATraits = typename detail::default_trie_access_traits<Key>::type, typename Tag = pat_trie_tag, template< typename Node_CItr, typename Node_Itr, typename _ATraits_, typename _Alloc_ > class Node_Update = null_node_update, typename _Alloc = std::allocator<char>> </div> <div class="memtemplate"> template<typename It > </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a11040.html">__gnu_pbds::trie</a>< Key, Mapped, _ATraits, Tag, Node_Update, _Alloc >::<a class="el" href="a11040.html">trie</a> </td> <td>(</td> <td class="paramtype">It </td> <td class="paramname"><em>first</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">It </td> <td class="paramname"><em>last</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="a11040.html#a77193204101c7dda4a7286f56b9731c1">access_traits</a> & </td> <td class="paramname"><em>t</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Constructor taking __iterators to a range of value_types and some policy objects. The value_types between first_it and last_it will be inserted into the container object. </p> <p class="definition">Definition at line <a class="el" href="a01106_source.html#l00758">758</a> of file <a class="el" href="a01106_source.html">assoc_container.hpp</a>.</p> </div> </div> <hr/>The documentation for this class was generated from the following file:<ul> <li><a class="el" href="a01106_source.html">assoc_container.hpp</a></li> </ul> </div><!-- contents --> </div><!-- doc-content --> <!-- start footer part --> <div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> <ul> <li class="navelem"><a class="el" href="a01590.html">__gnu_pbds</a></li><li class="navelem"><a class="el" href="a11040.html">trie</a></li> <li class="footer">Generated by <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li> </ul> </div> </body> </html>