<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://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.11"/> <title>glibmm: Glib::BalancedTree< K, V > 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="doxygen.css" rel="stylesheet" type="text/css" /> <link href="doxygen-extra.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">glibmm  <span id="projectnumber">2.60.0</span> </div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.11 --> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li class="current"><a href="annotated.html"><span>Classes</span></a></li> <li><a href="examples.html"><span>Examples</span></a></li> </ul> </div> <div id="navrow2" class="tabs2"> <ul class="tablist"> <li><a href="annotated.html"><span>Class List</span></a></li> <li><a href="classes.html"><span>Class Index</span></a></li> <li><a href="inherits.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Class Members</span></a></li> </ul> </div> <div id="nav-path" class="navpath"> <ul> <li class="navelem"><a class="el" href="namespaceGlib.html">Glib</a></li><li class="navelem"><a class="el" href="classGlib_1_1BalancedTree.html">BalancedTree</a></li> </ul> </div> </div><!-- top --> <div class="header"> <div class="summary"> <a href="#pub-types">Public Types</a> | <a href="#pub-methods">Public Member Functions</a> | <a href="#pub-static-methods">Static Public Member Functions</a> | <a href="#pro-methods">Protected Member Functions</a> | <a href="classGlib_1_1BalancedTree-members.html">List of all members</a> </div> <div class="headertitle"> <div class="title">Glib::BalancedTree< K, V > Class Template Reference</div> </div> </div><!--header--> <div class="contents"> <p>Balanced Binary Trees — a sorted collection of key/value pairs optimized for searching and traversing in order. <a href="classGlib_1_1BalancedTree.html#details">More...</a></p> <p><code>#include <glibmm/balancedtree.h></code></p> <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:a264c26dea49ba58ee9695fbbed28d172"><td class="memItemLeft" align="right" valign="top">using </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1BalancedTree.html#a264c26dea49ba58ee9695fbbed28d172">TraverseFunc</a> = <a class="elRef" href="../../../libsigc++-2.0/reference/html/classsigc_1_1slot.html">sigc::slot</a>< bool, const K&, const V& ></td></tr> <tr class="separator:a264c26dea49ba58ee9695fbbed28d172"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a080bdc7999aa79fb4b49b69ba68be562"><td class="memItemLeft" align="right" valign="top">using </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1BalancedTree.html#a080bdc7999aa79fb4b49b69ba68be562">CompareFunc</a> = <a class="elRef" href="../../../libsigc++-2.0/reference/html/classsigc_1_1slot.html">sigc::slot</a>< int, const K&, const K& ></td></tr> <tr class="separator:a080bdc7999aa79fb4b49b69ba68be562"><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:a6ad3ee2e4c7a396e059171800f703e13"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1BalancedTree.html#a6ad3ee2e4c7a396e059171800f703e13">~BalancedTree</a> ()</td></tr> <tr class="separator:a6ad3ee2e4c7a396e059171800f703e13"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a3992ca9669a73f98167e988ce0ff4415"><td class="memItemLeft" align="right" valign="top">GTree* </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1BalancedTree.html#a3992ca9669a73f98167e988ce0ff4415">gobj</a> ()</td></tr> <tr class="memdesc:a3992ca9669a73f98167e988ce0ff4415"><td class="mdescLeft"> </td><td class="mdescRight">Provides access to the underlying C GObject. <a href="#a3992ca9669a73f98167e988ce0ff4415">More...</a><br /></td></tr> <tr class="separator:a3992ca9669a73f98167e988ce0ff4415"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aa95ee73b9302c6e53dce0e2b9a642b4c"><td class="memItemLeft" align="right" valign="top">const GTree* </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1BalancedTree.html#aa95ee73b9302c6e53dce0e2b9a642b4c">gobj</a> () const </td></tr> <tr class="memdesc:aa95ee73b9302c6e53dce0e2b9a642b4c"><td class="mdescLeft"> </td><td class="mdescRight">Provides access to the underlying C GObject. <a href="#aa95ee73b9302c6e53dce0e2b9a642b4c">More...</a><br /></td></tr> <tr class="separator:aa95ee73b9302c6e53dce0e2b9a642b4c"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a80e50b78322d85f165ac2d6607ca9cb3"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1BalancedTree.html#a80e50b78322d85f165ac2d6607ca9cb3">reference</a> ()</td></tr> <tr class="memdesc:a80e50b78322d85f165ac2d6607ca9cb3"><td class="mdescLeft"> </td><td class="mdescRight">Increments the reference count of tree by one. <a href="#a80e50b78322d85f165ac2d6607ca9cb3">More...</a><br /></td></tr> <tr class="separator:a80e50b78322d85f165ac2d6607ca9cb3"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a6530fc006eec5d249a520be7e8bf4f20"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1BalancedTree.html#a6530fc006eec5d249a520be7e8bf4f20">unreference</a> ()</td></tr> <tr class="memdesc:a6530fc006eec5d249a520be7e8bf4f20"><td class="mdescLeft"> </td><td class="mdescRight">Decrements the reference count of tree by one. <a href="#a6530fc006eec5d249a520be7e8bf4f20">More...</a><br /></td></tr> <tr class="separator:a6530fc006eec5d249a520be7e8bf4f20"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a1ff2e47b569956c2c8d19ba3f538346c"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1BalancedTree.html#a1ff2e47b569956c2c8d19ba3f538346c">insert</a> (const K& key, const V& value)</td></tr> <tr class="memdesc:a1ff2e47b569956c2c8d19ba3f538346c"><td class="mdescLeft"> </td><td class="mdescRight">Inserts a key/value pair into a <a class="el" href="classGlib_1_1BalancedTree.html" title="Balanced Binary Trees — a sorted collection of key/value pairs optimized for searching and traversin...">BalancedTree</a>. <a href="#a1ff2e47b569956c2c8d19ba3f538346c">More...</a><br /></td></tr> <tr class="separator:a1ff2e47b569956c2c8d19ba3f538346c"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a751401d64137e241cacfec8e05ea5971"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1BalancedTree.html#a751401d64137e241cacfec8e05ea5971">remove</a> (const K& key)</td></tr> <tr class="memdesc:a751401d64137e241cacfec8e05ea5971"><td class="mdescLeft"> </td><td class="mdescRight">Removes a key/value pair from a <a class="el" href="classGlib_1_1BalancedTree.html" title="Balanced Binary Trees — a sorted collection of key/value pairs optimized for searching and traversin...">BalancedTree</a>. <a href="#a751401d64137e241cacfec8e05ea5971">More...</a><br /></td></tr> <tr class="separator:a751401d64137e241cacfec8e05ea5971"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a1004e229bf2fccbd79b15a7f567a51e0"><td class="memItemLeft" align="right" valign="top">V* </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1BalancedTree.html#a1004e229bf2fccbd79b15a7f567a51e0">lookup</a> (const K& key)</td></tr> <tr class="memdesc:a1004e229bf2fccbd79b15a7f567a51e0"><td class="mdescLeft"> </td><td class="mdescRight">Gets the value corresponding to the given key. <a href="#a1004e229bf2fccbd79b15a7f567a51e0">More...</a><br /></td></tr> <tr class="separator:a1004e229bf2fccbd79b15a7f567a51e0"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:acc3b86a40f9c6ce3f2870d2d51627cae"><td class="memItemLeft" align="right" valign="top">const V* </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1BalancedTree.html#acc3b86a40f9c6ce3f2870d2d51627cae">lookup</a> (const K& key) const </td></tr> <tr class="separator:acc3b86a40f9c6ce3f2870d2d51627cae"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ab7f312cc9aa4a0cfc4d2b8b24b3d9749"><td class="memItemLeft" align="right" valign="top">gint </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1BalancedTree.html#ab7f312cc9aa4a0cfc4d2b8b24b3d9749">height</a> () const </td></tr> <tr class="memdesc:ab7f312cc9aa4a0cfc4d2b8b24b3d9749"><td class="mdescLeft"> </td><td class="mdescRight">Gets the height of a <a class="el" href="classGlib_1_1BalancedTree.html" title="Balanced Binary Trees — a sorted collection of key/value pairs optimized for searching and traversin...">BalancedTree</a>. <a href="#ab7f312cc9aa4a0cfc4d2b8b24b3d9749">More...</a><br /></td></tr> <tr class="separator:ab7f312cc9aa4a0cfc4d2b8b24b3d9749"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aa5965a94bd4afaa5da1dfb1c6406fef7"><td class="memItemLeft" align="right" valign="top">gint </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1BalancedTree.html#aa5965a94bd4afaa5da1dfb1c6406fef7">nnodes</a> () const </td></tr> <tr class="memdesc:aa5965a94bd4afaa5da1dfb1c6406fef7"><td class="mdescLeft"> </td><td class="mdescRight">Gets the number of nodes in a <a class="el" href="classGlib_1_1BalancedTree.html" title="Balanced Binary Trees — a sorted collection of key/value pairs optimized for searching and traversin...">BalancedTree</a>. <a href="#aa5965a94bd4afaa5da1dfb1c6406fef7">More...</a><br /></td></tr> <tr class="separator:aa5965a94bd4afaa5da1dfb1c6406fef7"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aa1235b0242c3d7d87310adb6e370ec12"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1BalancedTree.html#aa1235b0242c3d7d87310adb6e370ec12">foreach</a> (const <a class="el" href="classGlib_1_1BalancedTree.html#a264c26dea49ba58ee9695fbbed28d172">TraverseFunc</a>& func) const </td></tr> <tr class="memdesc:aa1235b0242c3d7d87310adb6e370ec12"><td class="mdescLeft"> </td><td class="mdescRight">Calls the given function for each of the key/value pairs in the <a class="el" href="classGlib_1_1BalancedTree.html" title="Balanced Binary Trees — a sorted collection of key/value pairs optimized for searching and traversin...">BalancedTree</a>. <a href="#aa1235b0242c3d7d87310adb6e370ec12">More...</a><br /></td></tr> <tr class="separator:aa1235b0242c3d7d87310adb6e370ec12"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a55668fb48bb53d3099084db1088c9495"><td class="memItemLeft" align="right" valign="top">V* </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1BalancedTree.html#a55668fb48bb53d3099084db1088c9495">search</a> (const <a class="el" href="classGlib_1_1BalancedTree.html#a080bdc7999aa79fb4b49b69ba68be562">CompareFunc</a>& search_func, const K& key)</td></tr> <tr class="memdesc:a55668fb48bb53d3099084db1088c9495"><td class="mdescLeft"> </td><td class="mdescRight">Searches a <a class="el" href="classGlib_1_1BalancedTree.html" title="Balanced Binary Trees — a sorted collection of key/value pairs optimized for searching and traversin...">BalancedTree</a> using <em>search_func</em>. <a href="#a55668fb48bb53d3099084db1088c9495">More...</a><br /></td></tr> <tr class="separator:a55668fb48bb53d3099084db1088c9495"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ae9339e46ced588dfc632ef35a6e97418"><td class="memItemLeft" align="right" valign="top">const V* </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1BalancedTree.html#ae9339e46ced588dfc632ef35a6e97418">search</a> (const <a class="el" href="classGlib_1_1BalancedTree.html#a080bdc7999aa79fb4b49b69ba68be562">CompareFunc</a>& search_func, const K& key) const </td></tr> <tr class="memdesc:ae9339e46ced588dfc632ef35a6e97418"><td class="mdescLeft"> </td><td class="mdescRight">Searches a <a class="el" href="classGlib_1_1BalancedTree.html" title="Balanced Binary Trees — a sorted collection of key/value pairs optimized for searching and traversin...">BalancedTree</a> using <em>search_func</em>. <a href="#ae9339e46ced588dfc632ef35a6e97418">More...</a><br /></td></tr> <tr class="separator:ae9339e46ced588dfc632ef35a6e97418"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a> Static Public Member Functions</h2></td></tr> <tr class="memitem:a346b8289fc878c1d9d3398e81800208e"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classGlib_1_1RefPtr.html">Glib::RefPtr</a>< <a class="el" href="classGlib_1_1BalancedTree.html">BalancedTree</a>< K, V > > </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1BalancedTree.html#a346b8289fc878c1d9d3398e81800208e">create</a> ()</td></tr> <tr class="separator:a346b8289fc878c1d9d3398e81800208e"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a225d6f1c845767474de9d024f9fa876a"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classGlib_1_1RefPtr.html">Glib::RefPtr</a>< <a class="el" href="classGlib_1_1BalancedTree.html">BalancedTree</a>< K, V > > </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1BalancedTree.html#a225d6f1c845767474de9d024f9fa876a">create</a> (const <a class="el" href="classGlib_1_1BalancedTree.html#a080bdc7999aa79fb4b49b69ba68be562">CompareFunc</a>& key_compare_slot)</td></tr> <tr class="separator:a225d6f1c845767474de9d024f9fa876a"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a> Protected Member Functions</h2></td></tr> <tr class="memitem:a26c7764fe28c41b2527be4111ef76a59"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1BalancedTree.html#a26c7764fe28c41b2527be4111ef76a59">BalancedTree</a> ()</td></tr> <tr class="separator:a26c7764fe28c41b2527be4111ef76a59"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a8ded6a08615b93ef62b84418d5894499"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1BalancedTree.html#a8ded6a08615b93ef62b84418d5894499">BalancedTree</a> (const <a class="el" href="classGlib_1_1BalancedTree.html#a080bdc7999aa79fb4b49b69ba68be562">CompareFunc</a>& key_compare_slot_)</td></tr> <tr class="separator:a8ded6a08615b93ef62b84418d5894499"><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 K, typename V><br /> class Glib::BalancedTree< K, V ></h3> <p>Balanced Binary Trees — a sorted collection of key/value pairs optimized for searching and traversing in order. </p> <p>The <a class="el" href="classGlib_1_1BalancedTree.html" title="Balanced Binary Trees — a sorted collection of key/value pairs optimized for searching and traversin...">BalancedTree</a> structure and its associated functions provide a sorted collection of key/value pairs optimized for searching and traversing in order.</p> <p>To insert a key/value pair into a <a class="el" href="classGlib_1_1BalancedTree.html" title="Balanced Binary Trees — a sorted collection of key/value pairs optimized for searching and traversin...">BalancedTree</a> use <a class="el" href="classGlib_1_1BalancedTree.html#a1ff2e47b569956c2c8d19ba3f538346c" title="Inserts a key/value pair into a BalancedTree. ">insert()</a>.</p> <p>To lookup the value corresponding to a given key, use <a class="el" href="classGlib_1_1BalancedTree.html#a1004e229bf2fccbd79b15a7f567a51e0" title="Gets the value corresponding to the given key. ">lookup()</a>.</p> <p>To find out the number of nodes in a <a class="el" href="classGlib_1_1BalancedTree.html" title="Balanced Binary Trees — a sorted collection of key/value pairs optimized for searching and traversin...">BalancedTree</a>, use <a class="el" href="classGlib_1_1BalancedTree.html#aa5965a94bd4afaa5da1dfb1c6406fef7" title="Gets the number of nodes in a BalancedTree. ">nnodes()</a>. To get the height of a <a class="el" href="classGlib_1_1BalancedTree.html" title="Balanced Binary Trees — a sorted collection of key/value pairs optimized for searching and traversin...">BalancedTree</a>, use <a class="el" href="classGlib_1_1BalancedTree.html#ab7f312cc9aa4a0cfc4d2b8b24b3d9749" title="Gets the height of a BalancedTree. ">height()</a>.</p> <p>To traverse a <a class="el" href="classGlib_1_1BalancedTree.html" title="Balanced Binary Trees — a sorted collection of key/value pairs optimized for searching and traversin...">BalancedTree</a>, calling a function for each node visited in the traversal, use <a class="el" href="classGlib_1_1BalancedTree.html#aa1235b0242c3d7d87310adb6e370ec12" title="Calls the given function for each of the key/value pairs in the BalancedTree. ">foreach()</a>.</p> <p>To remove a key/value pair use <a class="el" href="classGlib_1_1BalancedTree.html#a751401d64137e241cacfec8e05ea5971" title="Removes a key/value pair from a BalancedTree. ">remove()</a>.</p> <p>Any type to be used with this template must implement copy constructor. Compiler-generated implementations are OK, provided they do the right thing for the type. Both keys and values are stored in the balanced binary tree as copies, created by copy contructors.</p> <p>Type of key to be used with this template must implement:</p><ul> <li>less than operator</li> <li>greater than operator</li> </ul> <dl class="since_2_24"><dt><b><a class="el" href="since_2_24.html#_since_2_24000001">Since glibmm 2.24:</a></b></dt><dd></dd></dl> </div><h2 class="groupheader">Member Typedef Documentation</h2> <a class="anchor" id="a080bdc7999aa79fb4b49b69ba68be562"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template <typename K , typename V > </div> <table class="memname"> <tr> <td class="memname">using <a class="el" href="classGlib_1_1BalancedTree.html">Glib::BalancedTree</a>< K, V >::<a class="el" href="classGlib_1_1BalancedTree.html#a080bdc7999aa79fb4b49b69ba68be562">CompareFunc</a> = <a class="elRef" href="../../../libsigc++-2.0/reference/html/classsigc_1_1slot.html">sigc::slot</a><int, const K&, const K&></td> </tr> </table> </div><div class="memdoc"> </div> </div> <a class="anchor" id="a264c26dea49ba58ee9695fbbed28d172"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template <typename K , typename V > </div> <table class="memname"> <tr> <td class="memname">using <a class="el" href="classGlib_1_1BalancedTree.html">Glib::BalancedTree</a>< K, V >::<a class="el" href="classGlib_1_1BalancedTree.html#a264c26dea49ba58ee9695fbbed28d172">TraverseFunc</a> = <a class="elRef" href="../../../libsigc++-2.0/reference/html/classsigc_1_1slot.html">sigc::slot</a><bool, const K&, const V&></td> </tr> </table> </div><div class="memdoc"> </div> </div> <h2 class="groupheader">Constructor & Destructor Documentation</h2> <a class="anchor" id="a26c7764fe28c41b2527be4111ef76a59"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template <typename K , typename V > </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classGlib_1_1BalancedTree.html">Glib::BalancedTree</a>< K, V >::<a class="el" href="classGlib_1_1BalancedTree.html">BalancedTree</a> </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span> </td> </tr> </table> </div><div class="memdoc"> </div> </div> <a class="anchor" id="a8ded6a08615b93ef62b84418d5894499"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template <typename K , typename V > </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classGlib_1_1BalancedTree.html">Glib::BalancedTree</a>< K, V >::<a class="el" href="classGlib_1_1BalancedTree.html">BalancedTree</a> </td> <td>(</td> <td class="paramtype">const <a class="el" href="classGlib_1_1BalancedTree.html#a080bdc7999aa79fb4b49b69ba68be562">CompareFunc</a>& </td> <td class="paramname"><em>key_compare_slot_</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span> </td> </tr> </table> </div><div class="memdoc"> </div> </div> <a class="anchor" id="a6ad3ee2e4c7a396e059171800f703e13"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template <typename K , typename V > </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classGlib_1_1BalancedTree.html">Glib::BalancedTree</a>< K, V >::~<a class="el" href="classGlib_1_1BalancedTree.html">BalancedTree</a> </td> <td>(</td> <td class="paramname"></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"> </div> </div> <h2 class="groupheader">Member Function Documentation</h2> <a class="anchor" id="a346b8289fc878c1d9d3398e81800208e"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template <typename K , typename V > </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">static <a class="el" href="classGlib_1_1RefPtr.html">Glib::RefPtr</a>< <a class="el" href="classGlib_1_1BalancedTree.html">BalancedTree</a><K, V> > <a class="el" href="classGlib_1_1BalancedTree.html">Glib::BalancedTree</a>< K, V >::create </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td> </tr> </table> </div><div class="memdoc"> </div> </div> <a class="anchor" id="a225d6f1c845767474de9d024f9fa876a"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template <typename K , typename V > </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">static <a class="el" href="classGlib_1_1RefPtr.html">Glib::RefPtr</a>< <a class="el" href="classGlib_1_1BalancedTree.html">BalancedTree</a><K, V> > <a class="el" href="classGlib_1_1BalancedTree.html">Glib::BalancedTree</a>< K, V >::create </td> <td>(</td> <td class="paramtype">const <a class="el" href="classGlib_1_1BalancedTree.html#a080bdc7999aa79fb4b49b69ba68be562">CompareFunc</a>& </td> <td class="paramname"><em>key_compare_slot</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td> </tr> </table> </div><div class="memdoc"> </div> </div> <a class="anchor" id="aa1235b0242c3d7d87310adb6e370ec12"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template <typename K , typename V > </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void <a class="el" href="classGlib_1_1BalancedTree.html">Glib::BalancedTree</a>< K, V >::foreach </td> <td>(</td> <td class="paramtype">const <a class="el" href="classGlib_1_1BalancedTree.html#a264c26dea49ba58ee9695fbbed28d172">TraverseFunc</a>& </td> <td class="paramname"><em>func</em></td><td>)</td> <td> const</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>Calls the given function for each of the key/value pairs in the <a class="el" href="classGlib_1_1BalancedTree.html" title="Balanced Binary Trees — a sorted collection of key/value pairs optimized for searching and traversin...">BalancedTree</a>. </p> <p>The function is passed the key and value of each pair. The tree is traversed in sorted order.</p> <p>The tree may not be modified while iterating over it (you can't add/remove items). To remove all items matching a predicate, you need to add each item to a list in your TraverseFunc as you walk over the tree, then walk the list and remove each item.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">func</td><td>The function to call for each node visited. If this function returns true, the traversal is stopped. </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="a3992ca9669a73f98167e988ce0ff4415"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template <typename K , typename V > </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">GTree* <a class="el" href="classGlib_1_1BalancedTree.html">Glib::BalancedTree</a>< K, V >::gobj </td> <td>(</td> <td class="paramname"></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>Provides access to the underlying C GObject. </p> </div> </div> <a class="anchor" id="aa95ee73b9302c6e53dce0e2b9a642b4c"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template <typename K , typename V > </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">const GTree* <a class="el" href="classGlib_1_1BalancedTree.html">Glib::BalancedTree</a>< K, V >::gobj </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</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>Provides access to the underlying C GObject. </p> </div> </div> <a class="anchor" id="ab7f312cc9aa4a0cfc4d2b8b24b3d9749"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template <typename K , typename V > </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">gint <a class="el" href="classGlib_1_1BalancedTree.html">Glib::BalancedTree</a>< K, V >::height </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</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>Gets the height of a <a class="el" href="classGlib_1_1BalancedTree.html" title="Balanced Binary Trees — a sorted collection of key/value pairs optimized for searching and traversin...">BalancedTree</a>. </p> <p>If the <a class="el" href="classGlib_1_1BalancedTree.html" title="Balanced Binary Trees — a sorted collection of key/value pairs optimized for searching and traversin...">BalancedTree</a> contains no nodes, the height is 0. If the <a class="el" href="classGlib_1_1BalancedTree.html" title="Balanced Binary Trees — a sorted collection of key/value pairs optimized for searching and traversin...">BalancedTree</a> contains only one root node the height is 1. If the root node has children the height is 2, etc.</p> <dl class="section return"><dt>Returns</dt><dd>the height of the <a class="el" href="classGlib_1_1BalancedTree.html" title="Balanced Binary Trees — a sorted collection of key/value pairs optimized for searching and traversin...">BalancedTree</a>. </dd></dl> </div> </div> <a class="anchor" id="a1ff2e47b569956c2c8d19ba3f538346c"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template <typename K , typename V > </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void <a class="el" href="classGlib_1_1BalancedTree.html">Glib::BalancedTree</a>< K, V >::insert </td> <td>(</td> <td class="paramtype">const K & </td> <td class="paramname"><em>key</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const V & </td> <td class="paramname"><em>value</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>Inserts a key/value pair into a <a class="el" href="classGlib_1_1BalancedTree.html" title="Balanced Binary Trees — a sorted collection of key/value pairs optimized for searching and traversin...">BalancedTree</a>. </p> <p>If the given key already exists in the <a class="el" href="classGlib_1_1BalancedTree.html" title="Balanced Binary Trees — a sorted collection of key/value pairs optimized for searching and traversin...">BalancedTree</a> its corresponding value is set to the new value.</p> <p>The tree is automatically 'balanced' as new key/value pairs are added, so that the distance from the root to every leaf is as small as possible.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">key</td><td>The key to insert. </td></tr> <tr><td class="paramname">value</td><td>The value corresponding to the key. </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="a1004e229bf2fccbd79b15a7f567a51e0"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template <typename K , typename V > </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">V* <a class="el" href="classGlib_1_1BalancedTree.html">Glib::BalancedTree</a>< K, V >::lookup </td> <td>(</td> <td class="paramtype">const K & </td> <td class="paramname"><em>key</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>Gets the value corresponding to the given key. </p> <p>Since a <a class="el" href="classGlib_1_1BalancedTree.html" title="Balanced Binary Trees — a sorted collection of key/value pairs optimized for searching and traversin...">BalancedTree</a> is automatically balanced as key/value pairs are added, key lookup is very fast.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">key</td><td>The key to look up. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>The value corresponding to the key, or <code>nullptr</code> if the key was not found. </dd></dl> </div> </div> <a class="anchor" id="acc3b86a40f9c6ce3f2870d2d51627cae"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template <typename K , typename V > </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">const V* <a class="el" href="classGlib_1_1BalancedTree.html">Glib::BalancedTree</a>< K, V >::lookup </td> <td>(</td> <td class="paramtype">const K & </td> <td class="paramname"><em>key</em></td><td>)</td> <td> const</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> </div> </div> <a class="anchor" id="aa5965a94bd4afaa5da1dfb1c6406fef7"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template <typename K , typename V > </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">gint <a class="el" href="classGlib_1_1BalancedTree.html">Glib::BalancedTree</a>< K, V >::nnodes </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</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>Gets the number of nodes in a <a class="el" href="classGlib_1_1BalancedTree.html" title="Balanced Binary Trees — a sorted collection of key/value pairs optimized for searching and traversin...">BalancedTree</a>. </p> <dl class="section return"><dt>Returns</dt><dd>the number of nodes in the <a class="el" href="classGlib_1_1BalancedTree.html" title="Balanced Binary Trees — a sorted collection of key/value pairs optimized for searching and traversin...">BalancedTree</a>. </dd></dl> </div> </div> <a class="anchor" id="a80e50b78322d85f165ac2d6607ca9cb3"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template <typename K , typename V > </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void <a class="el" href="classGlib_1_1BalancedTree.html">Glib::BalancedTree</a>< K, V >::reference </td> <td>(</td> <td class="paramname"></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>Increments the reference count of tree by one. </p> <p>It is safe to call this function from any thread. </p> </div> </div> <a class="anchor" id="a751401d64137e241cacfec8e05ea5971"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template <typename K , typename V > </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">bool <a class="el" href="classGlib_1_1BalancedTree.html">Glib::BalancedTree</a>< K, V >::remove </td> <td>(</td> <td class="paramtype">const K & </td> <td class="paramname"><em>key</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>Removes a key/value pair from a <a class="el" href="classGlib_1_1BalancedTree.html" title="Balanced Binary Trees — a sorted collection of key/value pairs optimized for searching and traversin...">BalancedTree</a>. </p> <p>If the key does not exist in the <a class="el" href="classGlib_1_1BalancedTree.html" title="Balanced Binary Trees — a sorted collection of key/value pairs optimized for searching and traversin...">BalancedTree</a>, the function does nothing.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">key</td><td>The key to remove. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>true if the key was found (prior to 2.8, this function returned nothing) </dd></dl> </div> </div> <a class="anchor" id="a55668fb48bb53d3099084db1088c9495"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template <typename K , typename V > </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">V* <a class="el" href="classGlib_1_1BalancedTree.html">Glib::BalancedTree</a>< K, V >::search </td> <td>(</td> <td class="paramtype">const <a class="el" href="classGlib_1_1BalancedTree.html#a080bdc7999aa79fb4b49b69ba68be562">CompareFunc</a>& </td> <td class="paramname"><em>search_func</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const K & </td> <td class="paramname"><em>key</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>Searches a <a class="el" href="classGlib_1_1BalancedTree.html" title="Balanced Binary Trees — a sorted collection of key/value pairs optimized for searching and traversin...">BalancedTree</a> using <em>search_func</em>. </p> <p>The <em>search_func</em> is called with a reference to the key of a key/value pair in the tree. If <em>search_func</em> returns 0 for a key/value pair, then <a class="el" href="classGlib_1_1BalancedTree.html#a55668fb48bb53d3099084db1088c9495" title="Searches a BalancedTree using search_func. ">search()</a> will return the value of that pair. If <em>search_func</em> returns -1, searching will proceed among the key/value pairs that have a smaller key; if <em>search_func</em> returns 1, searching will proceed among the key/value pairs that have a larger key.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">search_func</td><td>A function used to search the <a class="el" href="classGlib_1_1BalancedTree.html" title="Balanced Binary Trees — a sorted collection of key/value pairs optimized for searching and traversin...">BalancedTree</a>. </td></tr> <tr><td class="paramname">key</td><td>The key to search for. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>The value corresponding to the found key, or <code>nullptr</code> if the key was not found. </dd></dl> </div> </div> <a class="anchor" id="ae9339e46ced588dfc632ef35a6e97418"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template <typename K , typename V > </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">const V* <a class="el" href="classGlib_1_1BalancedTree.html">Glib::BalancedTree</a>< K, V >::search </td> <td>(</td> <td class="paramtype">const <a class="el" href="classGlib_1_1BalancedTree.html#a080bdc7999aa79fb4b49b69ba68be562">CompareFunc</a>& </td> <td class="paramname"><em>search_func</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const K & </td> <td class="paramname"><em>key</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td> const</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>Searches a <a class="el" href="classGlib_1_1BalancedTree.html" title="Balanced Binary Trees — a sorted collection of key/value pairs optimized for searching and traversin...">BalancedTree</a> using <em>search_func</em>. </p> <p>The <em>search_func</em> is called with a reference to the key of a key/value pair in the tree. If <em>search_func</em> returns 0 for a key/value pair, then <a class="el" href="classGlib_1_1BalancedTree.html#a55668fb48bb53d3099084db1088c9495" title="Searches a BalancedTree using search_func. ">search()</a> will return the value of that pair. If <em>search_func</em> returns -1, searching will proceed among the key/value pairs that have a smaller key; if <em>search_func</em> returns 1, searching will proceed among the key/value pairs that have a larger key.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">search_func</td><td>A function used to search the <a class="el" href="classGlib_1_1BalancedTree.html" title="Balanced Binary Trees — a sorted collection of key/value pairs optimized for searching and traversin...">BalancedTree</a>. </td></tr> <tr><td class="paramname">key</td><td>The key to search for. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>The value corresponding to the found key, or <code>nullptr</code> if the key was not found. </dd></dl> </div> </div> <a class="anchor" id="a6530fc006eec5d249a520be7e8bf4f20"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template <typename K , typename V > </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void <a class="el" href="classGlib_1_1BalancedTree.html">Glib::BalancedTree</a>< K, V >::unreference </td> <td>(</td> <td class="paramname"></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>Decrements the reference count of tree by one. </p> <p>If the reference count drops to 0, all keys and values will be destroyed and all memory allocated by tree will be released.</p> <p>It is safe to call this function from any thread. </p> </div> </div> </div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> Generated on Tue Mar 19 2019 09:56:45 for glibmm by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/> </a> 1.8.11 </small></address> </body> </html>