<!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::tree< Key, Mapped, Cmp_Fn, 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('a11036.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="a11033.html">List of all members</a> </div> <div class="headertitle"> <div class="title">__gnu_pbds::tree< Key, Mapped, Cmp_Fn, 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::tree< Key, Mapped, Cmp_Fn, Tag, Node_Update, _Alloc >:</div> <div class="dyncontent"> <div class="center"><iframe scrolling="no" frameborder="0" src="a11035.svg" width="435" 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:acb3bfca7ffae5a572e1a8698bf0c1255"><td class="memItemLeft" align="right" valign="top">typedef Cmp_Fn </td><td class="memItemRight" valign="bottom"><a class="el" href="a11036.html#acb3bfca7ffae5a572e1a8698bf0c1255">cmp_fn</a></td></tr> <tr class="separator:acb3bfca7ffae5a572e1a8698bf0c1255"><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="a11584.html">detail::tree_traits</a>< Key, Mapped, Cmp_Fn, 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:a5c900b3230feb9f5c59bf80995eaa2b1"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a11036.html#a5c900b3230feb9f5c59bf80995eaa2b1">tree</a> (const <a class="el" href="a11036.html#acb3bfca7ffae5a572e1a8698bf0c1255">cmp_fn</a> &c)</td></tr> <tr class="separator:a5c900b3230feb9f5c59bf80995eaa2b1"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a9d2c8a45cf06ac2da54bef2ff3514468"><td class="memTemplParams" colspan="2">template<typename It > </td></tr> <tr class="memitem:a9d2c8a45cf06ac2da54bef2ff3514468"><td class="memTemplItemLeft" align="right" valign="top"> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a11036.html#a9d2c8a45cf06ac2da54bef2ff3514468">tree</a> (It first, It last)</td></tr> <tr class="separator:a9d2c8a45cf06ac2da54bef2ff3514468"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a75e6c7ff0c466d02e91bfe5243684109"><td class="memTemplParams" colspan="2">template<typename It > </td></tr> <tr class="memitem:a75e6c7ff0c466d02e91bfe5243684109"><td class="memTemplItemLeft" align="right" valign="top"> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a11036.html#a75e6c7ff0c466d02e91bfe5243684109">tree</a> (It first, It last, const <a class="el" href="a11036.html#acb3bfca7ffae5a572e1a8698bf0c1255">cmp_fn</a> &c)</td></tr> <tr class="separator:a75e6c7ff0c466d02e91bfe5243684109"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a916b5375c976fef2f0936f181a473cbd"><td class="memItemLeft" align="right" valign="top"><a id="a916b5375c976fef2f0936f181a473cbd"></a>  </td><td class="memItemRight" valign="bottom"><b>tree</b> (const <a class="el" href="a11036.html">tree</a> &other)</td></tr> <tr class="separator:a916b5375c976fef2f0936f181a473cbd"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a4bfa4a05ad0bbc946a91f9b48ca63231"><td class="memItemLeft" align="right" valign="top"><a id="a4bfa4a05ad0bbc946a91f9b48ca63231"></a> <a class="el" href="a11036.html">tree</a> & </td><td class="memItemRight" valign="bottom"><b>operator=</b> (const <a class="el" href="a11036.html">tree</a> &other)</td></tr> <tr class="separator:a4bfa4a05ad0bbc946a91f9b48ca63231"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ac65840f16b00948c4428da2a45936c21"><td class="memItemLeft" align="right" valign="top"><a id="ac65840f16b00948c4428da2a45936c21"></a> void </td><td class="memItemRight" valign="bottom"><b>swap</b> (<a class="el" href="a11036.html">tree</a> &other)</td></tr> <tr class="separator:ac65840f16b00948c4428da2a45936c21"><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 Cmp_Fn = std::less<Key>, typename Tag = rb_tree_tag, template< typename Node_CItr, typename Node_Itr, typename Cmp_Fn_, typename _Alloc_ > class Node_Update = null_node_update, typename _Alloc = std::allocator<char>><br /> class __gnu_pbds::tree< Key, Mapped, Cmp_Fn, Tag, Node_Update, _Alloc ></h3> <p>A tree-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">Cmp_Fn</td><td>Comparison functor. </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 tree 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 choices are: ov_tree_tag, rb_tree_tag, splay_tree_tag.</p> <p>Base is basic_branch. </p> <p class="definition">Definition at line <a class="el" href="a01106_source.html#l00635">635</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="acb3bfca7ffae5a572e1a8698bf0c1255"></a> <h2 class="memtitle"><span class="permalink"><a href="#acb3bfca7ffae5a572e1a8698bf0c1255">◆ </a></span>cmp_fn</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename Key , typename Mapped , typename Cmp_Fn = std::less<Key>, typename Tag = rb_tree_tag, template< typename Node_CItr, typename Node_Itr, typename Cmp_Fn_, typename _Alloc_ > class Node_Update = null_node_update, typename _Alloc = std::allocator<char>> </div> <table class="memname"> <tr> <td class="memname">typedef Cmp_Fn <a class="el" href="a11036.html">__gnu_pbds::tree</a>< Key, Mapped, Cmp_Fn, Tag, Node_Update, _Alloc >::<a class="el" href="a11036.html#acb3bfca7ffae5a572e1a8698bf0c1255">cmp_fn</a></td> </tr> </table> </div><div class="memdoc"> <p>Comparison functor type. </p> <p class="definition">Definition at line <a class="el" href="a01106_source.html#l00642">642</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="a5c900b3230feb9f5c59bf80995eaa2b1"></a> <h2 class="memtitle"><span class="permalink"><a href="#a5c900b3230feb9f5c59bf80995eaa2b1">◆ </a></span>tree() <span class="overload">[1/3]</span></h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename Key , typename Mapped , typename Cmp_Fn = std::less<Key>, typename Tag = rb_tree_tag, template< typename Node_CItr, typename Node_Itr, typename Cmp_Fn_, 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="a11036.html">__gnu_pbds::tree</a>< Key, Mapped, Cmp_Fn, Tag, Node_Update, _Alloc >::<a class="el" href="a11036.html">tree</a> </td> <td>(</td> <td class="paramtype">const <a class="el" href="a11036.html#acb3bfca7ffae5a572e1a8698bf0c1255">cmp_fn</a> & </td> <td class="paramname"><em>c</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_cmp_fn will be copied by the Cmp_Fn object of the container object. </p> <p class="definition">Definition at line <a class="el" href="a01106_source.html#l00648">648</a> of file <a class="el" href="a01106_source.html">assoc_container.hpp</a>.</p> </div> </div> <a id="a9d2c8a45cf06ac2da54bef2ff3514468"></a> <h2 class="memtitle"><span class="permalink"><a href="#a9d2c8a45cf06ac2da54bef2ff3514468">◆ </a></span>tree() <span class="overload">[2/3]</span></h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename Key , typename Mapped , typename Cmp_Fn = std::less<Key>, typename Tag = rb_tree_tag, template< typename Node_CItr, typename Node_Itr, typename Cmp_Fn_, 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="a11036.html">__gnu_pbds::tree</a>< Key, Mapped, Cmp_Fn, Tag, Node_Update, _Alloc >::<a class="el" href="a11036.html">tree</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#l00655">655</a> of file <a class="el" href="a01106_source.html">assoc_container.hpp</a>.</p> </div> </div> <a id="a75e6c7ff0c466d02e91bfe5243684109"></a> <h2 class="memtitle"><span class="permalink"><a href="#a75e6c7ff0c466d02e91bfe5243684109">◆ </a></span>tree() <span class="overload">[3/3]</span></h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename Key , typename Mapped , typename Cmp_Fn = std::less<Key>, typename Tag = rb_tree_tag, template< typename Node_CItr, typename Node_Itr, typename Cmp_Fn_, 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="a11036.html">__gnu_pbds::tree</a>< Key, Mapped, Cmp_Fn, Tag, Node_Update, _Alloc >::<a class="el" href="a11036.html">tree</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="a11036.html#acb3bfca7ffae5a572e1a8698bf0c1255">cmp_fn</a> & </td> <td class="paramname"><em>c</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. r_cmp_fn will be copied by the cmp_fn object of the container object. </p> <p class="definition">Definition at line <a class="el" href="a01106_source.html#l00663">663</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="a11036.html">tree</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>