Permalink
Fetching contributors…
Cannot retrieve contributors at this time
2311 lines (2000 sloc) 178 KB
<!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"/>
<title>STX B+ Tree Template Classes: stx::btree_multimap&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">STX B+ Tree Template Classes
&#160;<span id="projectnumber">0.9</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</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="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Defines</a></div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00036.html">stx</a> </li>
<li class="navelem"><a class="el" href="a00005.html">btree_multimap</a> </li>
</ul>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-attribs">Static Public Attributes</a> &#124;
<a href="#pri-attribs">Private Attributes</a> </div>
<div class="headertitle">
<div class="title">stx::btree_multimap&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt; Class Template Reference</div> </div>
</div><!--header-->
<div class="contents">
<!-- doxytag: class="stx::btree_multimap" -->
<p>Specialized B+ tree template class implementing STL's multimap container.
<a href="a00005.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="a00030_source.html">btree_multimap.h</a>&gt;</code></p>
<p><a href="a00055.html">List of all members.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef _Key&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#adb607d4142977e7e6ca36ff38c42ace8">key_type</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">First template parameter: The key type of the btree. <a href="#adb607d4142977e7e6ca36ff38c42ace8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef _Data&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#acd5f5ea401940bfc91c52571e0a27299">data_type</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Second template parameter: The data type associated with each key. <a href="#acd5f5ea401940bfc91c52571e0a27299"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef _Compare&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#abedfcc2e864fadba606bd3c42b278012">key_compare</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Third template parameter: Key comparison function object. <a href="#abedfcc2e864fadba606bd3c42b278012"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef _Traits&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#a1156d87c06fbc9814828d9a83b717c0e">traits</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Fourth template parameter: Traits object used to define more parameters of the B+ tree. <a href="#a1156d87c06fbc9814828d9a83b717c0e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef _Alloc&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#abd0de8807a5e19e3610d8f2dcf803568">allocator_type</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Fifth template parameter: STL allocator. <a href="#abd0de8807a5e19e3610d8f2dcf803568"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00005.html">btree_multimap</a><br class="typebreak"/>
&lt; <a class="el" href="a00005.html#adb607d4142977e7e6ca36ff38c42ace8">key_type</a>, <a class="el" href="a00005.html#acd5f5ea401940bfc91c52571e0a27299">data_type</a>, <br class="typebreak"/>
<a class="el" href="a00005.html#abedfcc2e864fadba606bd3c42b278012">key_compare</a>, <a class="el" href="a00005.html#a1156d87c06fbc9814828d9a83b717c0e">traits</a>, <br class="typebreak"/>
<a class="el" href="a00005.html#abd0de8807a5e19e3610d8f2dcf803568">allocator_type</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#aae5bae110a73423fd534e6d9e769a23a">self</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Typedef of our own type. <a href="#aae5bae110a73423fd534e6d9e769a23a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef std::pair&lt; <a class="el" href="a00005.html#adb607d4142977e7e6ca36ff38c42ace8">key_type</a>, <br class="typebreak"/>
<a class="el" href="a00005.html#acd5f5ea401940bfc91c52571e0a27299">data_type</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#aa9c86e804b95247c742db5ad7b9351fe">value_type</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct the STL-required value_type as a composition pair of key and data types. <a href="#aa9c86e804b95247c742db5ad7b9351fe"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00001.html">stx::btree</a>&lt; <a class="el" href="a00005.html#adb607d4142977e7e6ca36ff38c42ace8">key_type</a>, <br class="typebreak"/>
<a class="el" href="a00005.html#acd5f5ea401940bfc91c52571e0a27299">data_type</a>, <a class="el" href="a00005.html#aa9c86e804b95247c742db5ad7b9351fe">value_type</a>, <br class="typebreak"/>
<a class="el" href="a00005.html#abedfcc2e864fadba606bd3c42b278012">key_compare</a>, <a class="el" href="a00005.html#a1156d87c06fbc9814828d9a83b717c0e">traits</a>, true, <br class="typebreak"/>
<a class="el" href="a00005.html#abd0de8807a5e19e3610d8f2dcf803568">allocator_type</a>, false &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#a3d8a91cbf60c0ae367ea7430e2e7b973">btree_impl</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Implementation type of the btree_base. <a href="#a3d8a91cbf60c0ae367ea7430e2e7b973"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef btree_impl::value_compare&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#aaf6e0051b191679e462a0f4f8fd49f93">value_compare</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Function class comparing two value_type pairs. <a href="#aaf6e0051b191679e462a0f4f8fd49f93"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00001.html#aa692f5303dd2c4fee4958cbbfc3db5da">btree_impl::size_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#abd83889e9697c609bffd95ec4548ddb4">size_type</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Size type used to count keys. <a href="#abd83889e9697c609bffd95ec4548ddb4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef btree_impl::tree_stats&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#ac5b2a55d1982b407a1075b9474c0d986">tree_stats</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Small structure containing statistics about the tree. <a href="#ac5b2a55d1982b407a1075b9474c0d986"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef btree_impl::iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#a979a7cd352bd12f3fdd4554f65e56322">iterator</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">STL-like iterator object for B+ tree items. <a href="#a979a7cd352bd12f3fdd4554f65e56322"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef btree_impl::const_iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#a8994ae561b750a09e636040be65c5246">const_iterator</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">STL-like iterator object for B+ tree items. <a href="#a8994ae561b750a09e636040be65c5246"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef <br class="typebreak"/>
btree_impl::reverse_iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#aa54a3a740748e22fae3b05f599458863">reverse_iterator</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">create mutable reverse iterator by using STL magic <a href="#aa54a3a740748e22fae3b05f599458863"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef <br class="typebreak"/>
btree_impl::const_reverse_iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#a0af611010281b93a36b1b0fd3fd2144a">const_reverse_iterator</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">create constant reverse iterator by using STL magic <a href="#a0af611010281b93a36b1b0fd3fd2144a"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#af5437efbbc9ea35223ac6bfbcfbaf05c">btree_multimap</a> (const <a class="el" href="a00005.html#abd0de8807a5e19e3610d8f2dcf803568">allocator_type</a> &amp;alloc=<a class="el" href="a00005.html#abd0de8807a5e19e3610d8f2dcf803568">allocator_type</a>())</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor initializing an empty B+ tree with the standard key comparison function. <a href="#af5437efbbc9ea35223ac6bfbcfbaf05c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#aa364ef57b237fb7c633346b3b42f9db3">btree_multimap</a> (const <a class="el" href="a00005.html#abedfcc2e864fadba606bd3c42b278012">key_compare</a> &amp;kcf, const <a class="el" href="a00005.html#abd0de8807a5e19e3610d8f2dcf803568">allocator_type</a> &amp;alloc=<a class="el" href="a00005.html#abd0de8807a5e19e3610d8f2dcf803568">allocator_type</a>())</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor initializing an empty B+ tree with a special key comparison object. <a href="#aa364ef57b237fb7c633346b3b42f9db3"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;class InputIterator &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00005.html#a3c52e5b56314500448e3262670ab1e75">btree_multimap</a> (InputIterator first, InputIterator last, const <a class="el" href="a00005.html#abd0de8807a5e19e3610d8f2dcf803568">allocator_type</a> &amp;alloc=<a class="el" href="a00005.html#abd0de8807a5e19e3610d8f2dcf803568">allocator_type</a>())</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor initializing a B+ tree with the range [first,last) <a href="#a3c52e5b56314500448e3262670ab1e75"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;class InputIterator &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00005.html#ae32115eb2997acfb493f10421355e953">btree_multimap</a> (InputIterator first, InputIterator last, const <a class="el" href="a00005.html#abedfcc2e864fadba606bd3c42b278012">key_compare</a> &amp;kcf, const <a class="el" href="a00005.html#abd0de8807a5e19e3610d8f2dcf803568">allocator_type</a> &amp;alloc=<a class="el" href="a00005.html#abd0de8807a5e19e3610d8f2dcf803568">allocator_type</a>())</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor initializing a B+ tree with the range [first,last) and a special key comparison object. <a href="#ae32115eb2997acfb493f10421355e953"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#a67e377caa7e95aafe58620dd0687a2ab">~btree_multimap</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Frees up all used B+ tree memory pages. <a href="#a67e377caa7e95aafe58620dd0687a2ab"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#a5fedcb02d137aa7c270aa79d67bbe726">swap</a> (<a class="el" href="a00005.html#aae5bae110a73423fd534e6d9e769a23a">self</a> &amp;from)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Fast swapping of two identical B+ tree objects. <a href="#a5fedcb02d137aa7c270aa79d67bbe726"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00005.html#abedfcc2e864fadba606bd3c42b278012">key_compare</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#abd05c6ac64de9889b2ed8888be6ca3e8">key_comp</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constant access to the key comparison object sorting the B+ tree. <a href="#abd05c6ac64de9889b2ed8888be6ca3e8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00005.html#aaf6e0051b191679e462a0f4f8fd49f93">value_compare</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#aa5f97381439395bc58d0f1beae6cce59">value_comp</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constant access to a constructed value_type comparison object. <a href="#aa5f97381439395bc58d0f1beae6cce59"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00005.html#abd0de8807a5e19e3610d8f2dcf803568">allocator_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#af3b5134ebb847dc69e3faa5e17094ecb">get_allocator</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the base node allocator provided during construction. <a href="#af3b5134ebb847dc69e3faa5e17094ecb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#add3d1d6cad6d331313d1821dbddda9f3">clear</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Frees all key/data pairs and all nodes of the tree. <a href="#add3d1d6cad6d331313d1821dbddda9f3"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00005.html#a979a7cd352bd12f3fdd4554f65e56322">iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#adf675fbe6c088fd2b210d7c27b48548f">begin</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a read/data-write iterator that points to the first slot in the first leaf of the B+ tree. <a href="#adf675fbe6c088fd2b210d7c27b48548f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00005.html#a979a7cd352bd12f3fdd4554f65e56322">iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#a2ac890e6114060f5a40f9651bfc686cf">end</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a read/data-write iterator that points to the first invalid slot in the last leaf of the B+ tree. <a href="#a2ac890e6114060f5a40f9651bfc686cf"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00005.html#a8994ae561b750a09e636040be65c5246">const_iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#a7c76d3fe4e370b5f7dc2e77deccf61e6">begin</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a read-only constant iterator that points to the first slot in the first leaf of the B+ tree. <a href="#a7c76d3fe4e370b5f7dc2e77deccf61e6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00005.html#a8994ae561b750a09e636040be65c5246">const_iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#ab00f7a57cbb9bb1bce4a7a8bd7a1885b">end</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a read-only constant iterator that points to the first invalid slot in the last leaf of the B+ tree. <a href="#ab00f7a57cbb9bb1bce4a7a8bd7a1885b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00005.html#aa54a3a740748e22fae3b05f599458863">reverse_iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#a26f25e4676e2e40f775f206d15ec410a">rbegin</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a read/data-write reverse iterator that points to the first invalid slot in the last leaf of the B+ tree. <a href="#a26f25e4676e2e40f775f206d15ec410a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00005.html#aa54a3a740748e22fae3b05f599458863">reverse_iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#a65869601a55e3f965a847adea7ab48be">rend</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a read/data-write reverse iterator that points to the first slot in the first leaf of the B+ tree. <a href="#a65869601a55e3f965a847adea7ab48be"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00005.html#a0af611010281b93a36b1b0fd3fd2144a">const_reverse_iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#a25803c0b24900806f18ba1c437000b8f">rbegin</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a read-only reverse iterator that points to the first invalid slot in the last leaf of the B+ tree. <a href="#a25803c0b24900806f18ba1c437000b8f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00005.html#a0af611010281b93a36b1b0fd3fd2144a">const_reverse_iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#af19d878da96d44622a86b9108e87f339">rend</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a read-only reverse iterator that points to the first slot in the first leaf of the B+ tree. <a href="#af19d878da96d44622a86b9108e87f339"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00005.html#abd83889e9697c609bffd95ec4548ddb4">size_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#a0b2c9f7d4790b64ea53576e96da76ea0">size</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the number of key/data pairs in the B+ tree. <a href="#a0b2c9f7d4790b64ea53576e96da76ea0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#a4e48d18f8564ea81d6702398767f05dd">empty</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if there is at least one key/data pair in the B+ tree. <a href="#a4e48d18f8564ea81d6702398767f05dd"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00005.html#abd83889e9697c609bffd95ec4548ddb4">size_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#a122b57700263111abc6d8740123e2480">max_size</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the largest possible size of the B+ Tree. <a href="#a122b57700263111abc6d8740123e2480"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="a00005.html#ac5b2a55d1982b407a1075b9474c0d986">tree_stats</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#ac6d2b48072e4917eae4db73f21212d09">get_stats</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a const reference to the current statistics. <a href="#ac6d2b48072e4917eae4db73f21212d09"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#ae5a4cbbd44f3c1ac0380814d42227f08">exists</a> (const <a class="el" href="a00005.html#adb607d4142977e7e6ca36ff38c42ace8">key_type</a> &amp;key) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Non-STL function checking whether a key is in the B+ tree. <a href="#ae5a4cbbd44f3c1ac0380814d42227f08"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00005.html#a979a7cd352bd12f3fdd4554f65e56322">iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#a34e793de6eed772651697e23e8adaf9c">find</a> (const <a class="el" href="a00005.html#adb607d4142977e7e6ca36ff38c42ace8">key_type</a> &amp;key)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Tries to locate a key in the B+ tree and returns an iterator to the key/data slot if found. <a href="#a34e793de6eed772651697e23e8adaf9c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00005.html#a8994ae561b750a09e636040be65c5246">const_iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#a8e1f92f877b124becd55debded93392a">find</a> (const <a class="el" href="a00005.html#adb607d4142977e7e6ca36ff38c42ace8">key_type</a> &amp;key) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Tries to locate a key in the B+ tree and returns an constant iterator to the key/data slot if found. <a href="#a8e1f92f877b124becd55debded93392a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00005.html#abd83889e9697c609bffd95ec4548ddb4">size_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#a6c0afdca1eb33639f5e8a2a7c939de9a">count</a> (const <a class="el" href="a00005.html#adb607d4142977e7e6ca36ff38c42ace8">key_type</a> &amp;key) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Tries to locate a key in the B+ tree and returns the number of identical key entries found. <a href="#a6c0afdca1eb33639f5e8a2a7c939de9a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00005.html#a979a7cd352bd12f3fdd4554f65e56322">iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#a966752ba450e4fc9e373482569d6a2d4">lower_bound</a> (const <a class="el" href="a00005.html#adb607d4142977e7e6ca36ff38c42ace8">key_type</a> &amp;key)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Searches the B+ tree and returns an iterator to the first pair equal to or greater than key, or <a class="el" href="a00005.html#a2ac890e6114060f5a40f9651bfc686cf" title="Constructs a read/data-write iterator that points to the first invalid slot in the last leaf of the B...">end()</a> if all keys are smaller. <a href="#a966752ba450e4fc9e373482569d6a2d4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00005.html#a8994ae561b750a09e636040be65c5246">const_iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#abe98b44e72292ab38b1894a892c7db0e">lower_bound</a> (const <a class="el" href="a00005.html#adb607d4142977e7e6ca36ff38c42ace8">key_type</a> &amp;key) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Searches the B+ tree and returns a constant iterator to the first pair equal to or greater than key, or <a class="el" href="a00005.html#a2ac890e6114060f5a40f9651bfc686cf" title="Constructs a read/data-write iterator that points to the first invalid slot in the last leaf of the B...">end()</a> if all keys are smaller. <a href="#abe98b44e72292ab38b1894a892c7db0e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00005.html#a979a7cd352bd12f3fdd4554f65e56322">iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#a383fe4dc086b012197acbae9ded8d35f">upper_bound</a> (const <a class="el" href="a00005.html#adb607d4142977e7e6ca36ff38c42ace8">key_type</a> &amp;key)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Searches the B+ tree and returns an iterator to the first pair greater than key, or <a class="el" href="a00005.html#a2ac890e6114060f5a40f9651bfc686cf" title="Constructs a read/data-write iterator that points to the first invalid slot in the last leaf of the B...">end()</a> if all keys are smaller or equal. <a href="#a383fe4dc086b012197acbae9ded8d35f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00005.html#a8994ae561b750a09e636040be65c5246">const_iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#a9c40897d0188187c253cccb186042876">upper_bound</a> (const <a class="el" href="a00005.html#adb607d4142977e7e6ca36ff38c42ace8">key_type</a> &amp;key) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Searches the B+ tree and returns a constant iterator to the first pair greater than key, or <a class="el" href="a00005.html#a2ac890e6114060f5a40f9651bfc686cf" title="Constructs a read/data-write iterator that points to the first invalid slot in the last leaf of the B...">end()</a> if all keys are smaller or equal. <a href="#a9c40897d0188187c253cccb186042876"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">std::pair&lt; <a class="el" href="a00005.html#a979a7cd352bd12f3fdd4554f65e56322">iterator</a>, <a class="el" href="a00005.html#a979a7cd352bd12f3fdd4554f65e56322">iterator</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#a2cea662bd204a5d6cd5a994636368a08">equal_range</a> (const <a class="el" href="a00005.html#adb607d4142977e7e6ca36ff38c42ace8">key_type</a> &amp;key)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Searches the B+ tree and returns both <a class="el" href="a00005.html#a966752ba450e4fc9e373482569d6a2d4" title="Searches the B+ tree and returns an iterator to the first pair equal to or greater than key...">lower_bound()</a> and <a class="el" href="a00005.html#a383fe4dc086b012197acbae9ded8d35f" title="Searches the B+ tree and returns an iterator to the first pair greater than key, or end() if all keys...">upper_bound()</a>. <a href="#a2cea662bd204a5d6cd5a994636368a08"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">std::pair&lt; <a class="el" href="a00005.html#a8994ae561b750a09e636040be65c5246">const_iterator</a>, <br class="typebreak"/>
<a class="el" href="a00005.html#a8994ae561b750a09e636040be65c5246">const_iterator</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#a0f4f44a5553b3b0afe077e15e2204c18">equal_range</a> (const <a class="el" href="a00005.html#adb607d4142977e7e6ca36ff38c42ace8">key_type</a> &amp;key) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Searches the B+ tree and returns both <a class="el" href="a00005.html#a966752ba450e4fc9e373482569d6a2d4" title="Searches the B+ tree and returns an iterator to the first pair equal to or greater than key...">lower_bound()</a> and <a class="el" href="a00005.html#a383fe4dc086b012197acbae9ded8d35f" title="Searches the B+ tree and returns an iterator to the first pair greater than key, or end() if all keys...">upper_bound()</a>. <a href="#a0f4f44a5553b3b0afe077e15e2204c18"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#a28eb83b95a403ae4e22e857a53f1c312">operator==</a> (const <a class="el" href="a00005.html#aae5bae110a73423fd534e6d9e769a23a">self</a> &amp;other) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Equality relation of B+ trees of the same type. <a href="#a28eb83b95a403ae4e22e857a53f1c312"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#a776810538e2694bb322d7acbfe1d40bb">operator!=</a> (const <a class="el" href="a00005.html#aae5bae110a73423fd534e6d9e769a23a">self</a> &amp;other) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Inequality relation. Based on operator==. <a href="#a776810538e2694bb322d7acbfe1d40bb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#a6a5db9c99ef0795047d9830ca874835b">operator&lt;</a> (const <a class="el" href="a00005.html#aae5bae110a73423fd534e6d9e769a23a">self</a> &amp;other) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Total ordering relation of B+ trees of the same type. <a href="#a6a5db9c99ef0795047d9830ca874835b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#adee49a9016375954653fb9e636b34fd4">operator&gt;</a> (const <a class="el" href="a00005.html#aae5bae110a73423fd534e6d9e769a23a">self</a> &amp;other) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Greater relation. Based on operator&lt;. <a href="#adee49a9016375954653fb9e636b34fd4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#a3307b73ee5b14e6b9448e8d015d6f6ca">operator&lt;=</a> (const <a class="el" href="a00005.html#aae5bae110a73423fd534e6d9e769a23a">self</a> &amp;other) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Less-equal relation. Based on operator&lt;. <a href="#a3307b73ee5b14e6b9448e8d015d6f6ca"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#aa6feaadc9209791ac4b324b9fbaec951">operator&gt;=</a> (const <a class="el" href="a00005.html#aae5bae110a73423fd534e6d9e769a23a">self</a> &amp;other) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Greater-equal relation. Based on operator&lt;. <a href="#aa6feaadc9209791ac4b324b9fbaec951"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00005.html#aae5bae110a73423fd534e6d9e769a23a">self</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#ac46186ae3adf35e4ed2a2f3146294f2a">operator=</a> (const <a class="el" href="a00005.html#aae5bae110a73423fd534e6d9e769a23a">self</a> &amp;other)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">*** Fast Copy: Assign Operator and Copy Constructors <a href="#ac46186ae3adf35e4ed2a2f3146294f2a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#a52cd4e7dd5a8d75e71292985de7837af">btree_multimap</a> (const <a class="el" href="a00005.html#aae5bae110a73423fd534e6d9e769a23a">self</a> &amp;other)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor. <a href="#a52cd4e7dd5a8d75e71292985de7837af"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00005.html#a979a7cd352bd12f3fdd4554f65e56322">iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#ae333d92079886a0c0b2a2d32201b712f">insert</a> (const <a class="el" href="a00005.html#aa9c86e804b95247c742db5ad7b9351fe">value_type</a> &amp;x)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Attempt to insert a key/data pair into the B+ tree. <a href="#ae333d92079886a0c0b2a2d32201b712f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00005.html#a979a7cd352bd12f3fdd4554f65e56322">iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#a21efd634ae0900fa4255933e41d1fc55">insert</a> (const <a class="el" href="a00005.html#adb607d4142977e7e6ca36ff38c42ace8">key_type</a> &amp;key, const <a class="el" href="a00005.html#acd5f5ea401940bfc91c52571e0a27299">data_type</a> &amp;data)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Attempt to insert a key/data pair into the B+ tree. <a href="#a21efd634ae0900fa4255933e41d1fc55"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00005.html#a979a7cd352bd12f3fdd4554f65e56322">iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#a73db5a4a7d48733d515319436935ae5c">insert2</a> (const <a class="el" href="a00005.html#adb607d4142977e7e6ca36ff38c42ace8">key_type</a> &amp;key, const <a class="el" href="a00005.html#acd5f5ea401940bfc91c52571e0a27299">data_type</a> &amp;data)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Attempt to insert a key/data pair into the B+ tree. <a href="#a73db5a4a7d48733d515319436935ae5c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00005.html#a979a7cd352bd12f3fdd4554f65e56322">iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#a29e267a1e4178dca1f954d12aaff5cee">insert</a> (<a class="el" href="a00005.html#a979a7cd352bd12f3fdd4554f65e56322">iterator</a> hint, const <a class="el" href="a00005.html#aa9c86e804b95247c742db5ad7b9351fe">value_type</a> &amp;x)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Attempt to insert a key/data pair into the B+ tree. <a href="#a29e267a1e4178dca1f954d12aaff5cee"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00005.html#a979a7cd352bd12f3fdd4554f65e56322">iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#afbb8f4655de73accf1fefdb14a71c755">insert2</a> (<a class="el" href="a00005.html#a979a7cd352bd12f3fdd4554f65e56322">iterator</a> hint, const <a class="el" href="a00005.html#adb607d4142977e7e6ca36ff38c42ace8">key_type</a> &amp;key, const <a class="el" href="a00005.html#acd5f5ea401940bfc91c52571e0a27299">data_type</a> &amp;data)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Attempt to insert a key/data pair into the B+ tree. <a href="#afbb8f4655de73accf1fefdb14a71c755"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;typename InputIterator &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00005.html#ad1d876c4c9afe1c8ecf3a28d23be5049">insert</a> (InputIterator first, InputIterator last)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Attempt to insert the range [first,last) of value_type pairs into the B+ tree. <a href="#ad1d876c4c9afe1c8ecf3a28d23be5049"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;typename Iterator &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00005.html#a03c07294f0b9bfbcd17f15ba23669dca">bulk_load</a> (Iterator first, Iterator last)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Bulk load a sorted range [first,last). <a href="#a03c07294f0b9bfbcd17f15ba23669dca"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#a63e0ea7673d9a512feb86c990f28cca0">erase_one</a> (const <a class="el" href="a00005.html#adb607d4142977e7e6ca36ff38c42ace8">key_type</a> &amp;key)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Erases one (the first) of the key/data pairs associated with the given key. <a href="#a63e0ea7673d9a512feb86c990f28cca0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00005.html#abd83889e9697c609bffd95ec4548ddb4">size_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#af53814c6408f8708d5c755e3277b92d4">erase</a> (const <a class="el" href="a00005.html#adb607d4142977e7e6ca36ff38c42ace8">key_type</a> &amp;key)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Erases all the key/data pairs associated with the given key. <a href="#af53814c6408f8708d5c755e3277b92d4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#a2e1cd81a36b44a74d3602c9cca2fc07d">erase</a> (<a class="el" href="a00005.html#a979a7cd352bd12f3fdd4554f65e56322">iterator</a> iter)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Erase the key/data pair referenced by the iterator. <a href="#a2e1cd81a36b44a74d3602c9cca2fc07d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#a213de9620ab9ecee3286769bb4415030">erase</a> (<a class="el" href="a00005.html#a979a7cd352bd12f3fdd4554f65e56322">iterator</a>, <a class="el" href="a00005.html#a979a7cd352bd12f3fdd4554f65e56322">iterator</a>)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Erase all key/data pairs in the range [first,last). <a href="#a213de9620ab9ecee3286769bb4415030"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#a1beb6a5071999014c38504e595e39138">print</a> (std::ostream &amp;os) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Print out the B+ tree structure with keys onto the given ostream. <a href="#a1beb6a5071999014c38504e595e39138"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#a57515b3f833998d01408a65a92a8edf2">print_leaves</a> (std::ostream &amp;os) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Print out only the leaves via the double linked list. <a href="#a57515b3f833998d01408a65a92a8edf2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#a4bebd9c9a9b8d33f120a65ee74358e4e">verify</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Run a thorough verification of all B+ tree invariants. <a href="#a4bebd9c9a9b8d33f120a65ee74358e4e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#a99f1ed0f5efa8232ed7b7e0c870c0865">dump</a> (std::ostream &amp;os) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Dump the contents of the B+ tree out onto an ostream as a binary image. <a href="#a99f1ed0f5efa8232ed7b7e0c870c0865"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#a16bc358a14546c2f83da80108041993c">restore</a> (std::istream &amp;is)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Restore a binary image of a dumped B+ tree from an istream. <a href="#a16bc358a14546c2f83da80108041993c"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pub-static-attribs"></a>
Static Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static const unsigned short&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#a5c4b3099fb62acea6118e4700de3d62b">leafslotmax</a> = <a class="el" href="a00001.html#ac6c274f39fce8e14f6a881fc1da39cf8">btree_impl::leafslotmax</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Base B+ tree parameter: The number of key/data slots in each leaf. <a href="#a5c4b3099fb62acea6118e4700de3d62b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static const unsigned short&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#a3b9667a0290d4edcc1e5218f9a3a9a68">innerslotmax</a> = <a class="el" href="a00001.html#a78ae296638b9d6961f9101ddf45bf3e0">btree_impl::innerslotmax</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Base B+ tree parameter: The number of key slots in each inner node, this can differ from slots in each leaf. <a href="#a3b9667a0290d4edcc1e5218f9a3a9a68"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static const unsigned short&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#a1a58b9466f1025afe1443fffda360300">minleafslots</a> = <a class="el" href="a00001.html#ad8525611bf3b079ca4ab13dbab9b23c0">btree_impl::minleafslots</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Computed B+ tree parameter: The minimum number of key/data slots used in a leaf. <a href="#a1a58b9466f1025afe1443fffda360300"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static const unsigned short&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#a0a8dc7c50bc26002a6cacdfff86167cf">mininnerslots</a> = <a class="el" href="a00001.html#aefbcc95b60d5bae8dd7ba9c25e5b6654">btree_impl::mininnerslots</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Computed B+ tree parameter: The minimum number of key slots used in an inner node. <a href="#a0a8dc7c50bc26002a6cacdfff86167cf"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static const bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#aefab8e1341d14a1738961ecaf38c8d63">selfverify</a> = <a class="el" href="a00001.html#a598601fa16cfb97b8b60a4eae6bde5ae">btree_impl::selfverify</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Debug parameter: Enables expensive and thorough checking of the B+ tree invariants after each insert/erase operation. <a href="#aefab8e1341d14a1738961ecaf38c8d63"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static const bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#ae6acad1234b0b3ff715884ecbbda2ac7">debug</a> = <a class="el" href="a00001.html#a224f31a88d50490e14f0f291d70ef2fc">btree_impl::debug</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Debug parameter: Prints out lots of debug information about how the algorithms change the tree. <a href="#ae6acad1234b0b3ff715884ecbbda2ac7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static const bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#abdf2f0d71029020565eb3c9df2a71db6">allow_duplicates</a> = <a class="el" href="a00001.html#acd41575a35d1c5d55e955aafc9762454">btree_impl::allow_duplicates</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Operational parameter: Allow duplicate keys in the btree. <a href="#abdf2f0d71029020565eb3c9df2a71db6"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pri-attribs"></a>
Private Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00005.html#a3d8a91cbf60c0ae367ea7430e2e7b973">btree_impl</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#a4fff5ab80801d04325bb5528bfdc4e1e">tree</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The contained implementation object. <a href="#a4fff5ab80801d04325bb5528bfdc4e1e"></a><br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><h3>template&lt;typename _Key, typename _Data, typename _Compare = std::less&lt;_Key&gt;, typename _Traits = btree_default_map_traits&lt;_Key, _Data&gt;, typename _Alloc = std::allocator&lt;std::pair&lt;_Key, _Data&gt; &gt;&gt;<br/>
class stx::btree_multimap&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;</h3>
<p>Specialized B+ tree template class implementing STL's multimap container. </p>
<p>Implements the STL multimap using a B+ tree. It can be used as a drop-in replacement for std::multimap. Not all asymptotic time requirements are met in theory. The class has a traits class defining B+ tree properties like slots and self-verification. Furthermore an allocator can be specified for tree nodes.</p>
<p>Most noteworthy difference to the default red-black implementation of std::multimap is that the B+ tree does not hold key and data pair together in memory. Instead each B+ tree node has two arrays of keys and data values. This design directly generates many problems in implementing the iterator's operator's which return value_type composition pairs. </p>
<p>Definition at line <a class="el" href="a00030_source.html#l00060">60</a> of file <a class="el" href="a00030_source.html">btree_multimap.h</a>.</p>
</div><hr/><h2>Member Typedef Documentation</h2>
<a class="anchor" id="abd0de8807a5e19e3610d8f2dcf803568"></a><!-- doxytag: member="stx::btree_multimap::allocator_type" ref="abd0de8807a5e19e3610d8f2dcf803568" args="" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Key , typename _Data , typename _Compare = std::less&lt;_Key&gt;, typename _Traits = btree_default_map_traits&lt;_Key, _Data&gt;, typename _Alloc = std::allocator&lt;std::pair&lt;_Key, _Data&gt; &gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname">typedef _Alloc <a class="el" href="a00005.html">stx::btree_multimap</a>&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::<a class="el" href="a00005.html#abd0de8807a5e19e3610d8f2dcf803568">allocator_type</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Fifth template parameter: STL allocator. </p>
<p>Definition at line <a class="el" href="a00030_source.html#l00081">81</a> of file <a class="el" href="a00030_source.html">btree_multimap.h</a>.</p>
</div>
</div>
<a class="anchor" id="a3d8a91cbf60c0ae367ea7430e2e7b973"></a><!-- doxytag: member="stx::btree_multimap::btree_impl" ref="a3d8a91cbf60c0ae367ea7430e2e7b973" args="" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Key , typename _Data , typename _Compare = std::less&lt;_Key&gt;, typename _Traits = btree_default_map_traits&lt;_Key, _Data&gt;, typename _Alloc = std::allocator&lt;std::pair&lt;_Key, _Data&gt; &gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname">typedef <a class="el" href="a00001.html">stx::btree</a>&lt;<a class="el" href="a00005.html#adb607d4142977e7e6ca36ff38c42ace8">key_type</a>, <a class="el" href="a00005.html#acd5f5ea401940bfc91c52571e0a27299">data_type</a>, <a class="el" href="a00005.html#aa9c86e804b95247c742db5ad7b9351fe">value_type</a>, <a class="el" href="a00005.html#abedfcc2e864fadba606bd3c42b278012">key_compare</a>, <a class="el" href="a00005.html#a1156d87c06fbc9814828d9a83b717c0e">traits</a>, true, <a class="el" href="a00005.html#abd0de8807a5e19e3610d8f2dcf803568">allocator_type</a>, false&gt; <a class="el" href="a00005.html">stx::btree_multimap</a>&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::<a class="el" href="a00005.html#a3d8a91cbf60c0ae367ea7430e2e7b973">btree_impl</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Implementation type of the btree_base. </p>
<p>Definition at line <a class="el" href="a00030_source.html#l00100">100</a> of file <a class="el" href="a00030_source.html">btree_multimap.h</a>.</p>
</div>
</div>
<a class="anchor" id="a8994ae561b750a09e636040be65c5246"></a><!-- doxytag: member="stx::btree_multimap::const_iterator" ref="a8994ae561b750a09e636040be65c5246" args="" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Key , typename _Data , typename _Compare = std::less&lt;_Key&gt;, typename _Traits = btree_default_map_traits&lt;_Key, _Data&gt;, typename _Alloc = std::allocator&lt;std::pair&lt;_Key, _Data&gt; &gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname">typedef btree_impl::const_iterator <a class="el" href="a00005.html">stx::btree_multimap</a>&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::<a class="el" href="a00005.html#a8994ae561b750a09e636040be65c5246">const_iterator</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>STL-like iterator object for B+ tree items. </p>
<p>The iterator points to a specific slot number in a leaf. </p>
<p>Definition at line <a class="el" href="a00030_source.html#l00152">152</a> of file <a class="el" href="a00030_source.html">btree_multimap.h</a>.</p>
</div>
</div>
<a class="anchor" id="a0af611010281b93a36b1b0fd3fd2144a"></a><!-- doxytag: member="stx::btree_multimap::const_reverse_iterator" ref="a0af611010281b93a36b1b0fd3fd2144a" args="" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Key , typename _Data , typename _Compare = std::less&lt;_Key&gt;, typename _Traits = btree_default_map_traits&lt;_Key, _Data&gt;, typename _Alloc = std::allocator&lt;std::pair&lt;_Key, _Data&gt; &gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname">typedef btree_impl::const_reverse_iterator <a class="el" href="a00005.html">stx::btree_multimap</a>&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::<a class="el" href="a00005.html#a0af611010281b93a36b1b0fd3fd2144a">const_reverse_iterator</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>create constant reverse iterator by using STL magic </p>
<p>Definition at line <a class="el" href="a00030_source.html#l00158">158</a> of file <a class="el" href="a00030_source.html">btree_multimap.h</a>.</p>
</div>
</div>
<a class="anchor" id="acd5f5ea401940bfc91c52571e0a27299"></a><!-- doxytag: member="stx::btree_multimap::data_type" ref="acd5f5ea401940bfc91c52571e0a27299" args="" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Key , typename _Data , typename _Compare = std::less&lt;_Key&gt;, typename _Traits = btree_default_map_traits&lt;_Key, _Data&gt;, typename _Alloc = std::allocator&lt;std::pair&lt;_Key, _Data&gt; &gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname">typedef _Data <a class="el" href="a00005.html">stx::btree_multimap</a>&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::<a class="el" href="a00005.html#acd5f5ea401940bfc91c52571e0a27299">data_type</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Second template parameter: The data type associated with each key. </p>
<p>Stored in the B+ tree's leaves </p>
<p>Definition at line <a class="el" href="a00030_source.html#l00071">71</a> of file <a class="el" href="a00030_source.html">btree_multimap.h</a>.</p>
</div>
</div>
<a class="anchor" id="a979a7cd352bd12f3fdd4554f65e56322"></a><!-- doxytag: member="stx::btree_multimap::iterator" ref="a979a7cd352bd12f3fdd4554f65e56322" args="" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Key , typename _Data , typename _Compare = std::less&lt;_Key&gt;, typename _Traits = btree_default_map_traits&lt;_Key, _Data&gt;, typename _Alloc = std::allocator&lt;std::pair&lt;_Key, _Data&gt; &gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname">typedef btree_impl::iterator <a class="el" href="a00005.html">stx::btree_multimap</a>&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::<a class="el" href="a00005.html#a979a7cd352bd12f3fdd4554f65e56322">iterator</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>STL-like iterator object for B+ tree items. </p>
<p>The iterator points to a specific slot number in a leaf. </p>
<p>Definition at line <a class="el" href="a00030_source.html#l00148">148</a> of file <a class="el" href="a00030_source.html">btree_multimap.h</a>.</p>
</div>
</div>
<a class="anchor" id="abedfcc2e864fadba606bd3c42b278012"></a><!-- doxytag: member="stx::btree_multimap::key_compare" ref="abedfcc2e864fadba606bd3c42b278012" args="" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Key , typename _Data , typename _Compare = std::less&lt;_Key&gt;, typename _Traits = btree_default_map_traits&lt;_Key, _Data&gt;, typename _Alloc = std::allocator&lt;std::pair&lt;_Key, _Data&gt; &gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname">typedef _Compare <a class="el" href="a00005.html">stx::btree_multimap</a>&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::<a class="el" href="a00005.html#abedfcc2e864fadba606bd3c42b278012">key_compare</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Third template parameter: Key comparison function object. </p>
<p>Definition at line <a class="el" href="a00030_source.html#l00074">74</a> of file <a class="el" href="a00030_source.html">btree_multimap.h</a>.</p>
</div>
</div>
<a class="anchor" id="adb607d4142977e7e6ca36ff38c42ace8"></a><!-- doxytag: member="stx::btree_multimap::key_type" ref="adb607d4142977e7e6ca36ff38c42ace8" args="" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Key , typename _Data , typename _Compare = std::less&lt;_Key&gt;, typename _Traits = btree_default_map_traits&lt;_Key, _Data&gt;, typename _Alloc = std::allocator&lt;std::pair&lt;_Key, _Data&gt; &gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname">typedef _Key <a class="el" href="a00005.html">stx::btree_multimap</a>&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::<a class="el" href="a00005.html#adb607d4142977e7e6ca36ff38c42ace8">key_type</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>First template parameter: The key type of the btree. </p>
<p>This is stored in inner nodes and leaves </p>
<p>Definition at line <a class="el" href="a00030_source.html#l00067">67</a> of file <a class="el" href="a00030_source.html">btree_multimap.h</a>.</p>
</div>
</div>
<a class="anchor" id="aa54a3a740748e22fae3b05f599458863"></a><!-- doxytag: member="stx::btree_multimap::reverse_iterator" ref="aa54a3a740748e22fae3b05f599458863" args="" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Key , typename _Data , typename _Compare = std::less&lt;_Key&gt;, typename _Traits = btree_default_map_traits&lt;_Key, _Data&gt;, typename _Alloc = std::allocator&lt;std::pair&lt;_Key, _Data&gt; &gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname">typedef btree_impl::reverse_iterator <a class="el" href="a00005.html">stx::btree_multimap</a>&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::<a class="el" href="a00005.html#aa54a3a740748e22fae3b05f599458863">reverse_iterator</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>create mutable reverse iterator by using STL magic </p>
<p>Definition at line <a class="el" href="a00030_source.html#l00155">155</a> of file <a class="el" href="a00030_source.html">btree_multimap.h</a>.</p>
</div>
</div>
<a class="anchor" id="aae5bae110a73423fd534e6d9e769a23a"></a><!-- doxytag: member="stx::btree_multimap::self" ref="aae5bae110a73423fd534e6d9e769a23a" args="" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Key , typename _Data , typename _Compare = std::less&lt;_Key&gt;, typename _Traits = btree_default_map_traits&lt;_Key, _Data&gt;, typename _Alloc = std::allocator&lt;std::pair&lt;_Key, _Data&gt; &gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname">typedef <a class="el" href="a00005.html">btree_multimap</a>&lt;<a class="el" href="a00005.html#adb607d4142977e7e6ca36ff38c42ace8">key_type</a>, <a class="el" href="a00005.html#acd5f5ea401940bfc91c52571e0a27299">data_type</a>, <a class="el" href="a00005.html#abedfcc2e864fadba606bd3c42b278012">key_compare</a>, <a class="el" href="a00005.html#a1156d87c06fbc9814828d9a83b717c0e">traits</a>, <a class="el" href="a00005.html#abd0de8807a5e19e3610d8f2dcf803568">allocator_type</a>&gt; <a class="el" href="a00005.html">stx::btree_multimap</a>&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::<a class="el" href="a00005.html#aae5bae110a73423fd534e6d9e769a23a">self</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Typedef of our own type. </p>
<p>Definition at line <a class="el" href="a00030_source.html#l00092">92</a> of file <a class="el" href="a00030_source.html">btree_multimap.h</a>.</p>
</div>
</div>
<a class="anchor" id="abd83889e9697c609bffd95ec4548ddb4"></a><!-- doxytag: member="stx::btree_multimap::size_type" ref="abd83889e9697c609bffd95ec4548ddb4" args="" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Key , typename _Data , typename _Compare = std::less&lt;_Key&gt;, typename _Traits = btree_default_map_traits&lt;_Key, _Data&gt;, typename _Alloc = std::allocator&lt;std::pair&lt;_Key, _Data&gt; &gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname">typedef <a class="el" href="a00001.html#aa692f5303dd2c4fee4958cbbfc3db5da">btree_impl::size_type</a> <a class="el" href="a00005.html">stx::btree_multimap</a>&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::<a class="el" href="a00005.html#abd83889e9697c609bffd95ec4548ddb4">size_type</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Size type used to count keys. </p>
<p>Definition at line <a class="el" href="a00030_source.html#l00106">106</a> of file <a class="el" href="a00030_source.html">btree_multimap.h</a>.</p>
</div>
</div>
<a class="anchor" id="a1156d87c06fbc9814828d9a83b717c0e"></a><!-- doxytag: member="stx::btree_multimap::traits" ref="a1156d87c06fbc9814828d9a83b717c0e" args="" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Key , typename _Data , typename _Compare = std::less&lt;_Key&gt;, typename _Traits = btree_default_map_traits&lt;_Key, _Data&gt;, typename _Alloc = std::allocator&lt;std::pair&lt;_Key, _Data&gt; &gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname">typedef _Traits <a class="el" href="a00005.html">stx::btree_multimap</a>&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::<a class="el" href="a00005.html#a1156d87c06fbc9814828d9a83b717c0e">traits</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Fourth template parameter: Traits object used to define more parameters of the B+ tree. </p>
<p>Definition at line <a class="el" href="a00030_source.html#l00078">78</a> of file <a class="el" href="a00030_source.html">btree_multimap.h</a>.</p>
</div>
</div>
<a class="anchor" id="ac5b2a55d1982b407a1075b9474c0d986"></a><!-- doxytag: member="stx::btree_multimap::tree_stats" ref="ac5b2a55d1982b407a1075b9474c0d986" args="" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Key , typename _Data , typename _Compare = std::less&lt;_Key&gt;, typename _Traits = btree_default_map_traits&lt;_Key, _Data&gt;, typename _Alloc = std::allocator&lt;std::pair&lt;_Key, _Data&gt; &gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname">typedef btree_impl::tree_stats <a class="el" href="a00005.html">stx::btree_multimap</a>&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::<a class="el" href="a00005.html#ac5b2a55d1982b407a1075b9474c0d986">tree_stats</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Small structure containing statistics about the tree. </p>
<p>Definition at line <a class="el" href="a00030_source.html#l00109">109</a> of file <a class="el" href="a00030_source.html">btree_multimap.h</a>.</p>
</div>
</div>
<a class="anchor" id="aaf6e0051b191679e462a0f4f8fd49f93"></a><!-- doxytag: member="stx::btree_multimap::value_compare" ref="aaf6e0051b191679e462a0f4f8fd49f93" args="" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Key , typename _Data , typename _Compare = std::less&lt;_Key&gt;, typename _Traits = btree_default_map_traits&lt;_Key, _Data&gt;, typename _Alloc = std::allocator&lt;std::pair&lt;_Key, _Data&gt; &gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname">typedef btree_impl::value_compare <a class="el" href="a00005.html">stx::btree_multimap</a>&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::<a class="el" href="a00005.html#aaf6e0051b191679e462a0f4f8fd49f93">value_compare</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Function class comparing two value_type pairs. </p>
<p>Definition at line <a class="el" href="a00030_source.html#l00103">103</a> of file <a class="el" href="a00030_source.html">btree_multimap.h</a>.</p>
</div>
</div>
<a class="anchor" id="aa9c86e804b95247c742db5ad7b9351fe"></a><!-- doxytag: member="stx::btree_multimap::value_type" ref="aa9c86e804b95247c742db5ad7b9351fe" args="" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Key , typename _Data , typename _Compare = std::less&lt;_Key&gt;, typename _Traits = btree_default_map_traits&lt;_Key, _Data&gt;, typename _Alloc = std::allocator&lt;std::pair&lt;_Key, _Data&gt; &gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname">typedef std::pair&lt;<a class="el" href="a00005.html#adb607d4142977e7e6ca36ff38c42ace8">key_type</a>, <a class="el" href="a00005.html#acd5f5ea401940bfc91c52571e0a27299">data_type</a>&gt; <a class="el" href="a00005.html">stx::btree_multimap</a>&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::<a class="el" href="a00005.html#aa9c86e804b95247c742db5ad7b9351fe">value_type</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Construct the STL-required value_type as a composition pair of key and data types. </p>
<p>Definition at line <a class="el" href="a00030_source.html#l00096">96</a> of file <a class="el" href="a00030_source.html">btree_multimap.h</a>.</p>
</div>
</div>
<hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="af5437efbbc9ea35223ac6bfbcfbaf05c"></a><!-- doxytag: member="stx::btree_multimap::btree_multimap" ref="af5437efbbc9ea35223ac6bfbcfbaf05c" args="(const allocator_type &amp;alloc=allocator_type())" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Key , typename _Data , typename _Compare = std::less&lt;_Key&gt;, typename _Traits = btree_default_map_traits&lt;_Key, _Data&gt;, typename _Alloc = std::allocator&lt;std::pair&lt;_Key, _Data&gt; &gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00005.html">stx::btree_multimap</a>&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::<a class="el" href="a00005.html">btree_multimap</a> </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="a00005.html#abd0de8807a5e19e3610d8f2dcf803568">allocator_type</a> &amp;&#160;</td>
<td class="paramname"><em>alloc</em> = <code><a class="el" href="a00005.html#abd0de8807a5e19e3610d8f2dcf803568">allocator_type</a>()</code></td><td>)</td>
<td><code> [inline, explicit]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Default constructor initializing an empty B+ tree with the standard key comparison function. </p>
<p>Definition at line <a class="el" href="a00030_source.html#l00171">171</a> of file <a class="el" href="a00030_source.html">btree_multimap.h</a>.</p>
</div>
</div>
<a class="anchor" id="aa364ef57b237fb7c633346b3b42f9db3"></a><!-- doxytag: member="stx::btree_multimap::btree_multimap" ref="aa364ef57b237fb7c633346b3b42f9db3" args="(const key_compare &amp;kcf, const allocator_type &amp;alloc=allocator_type())" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Key , typename _Data , typename _Compare = std::less&lt;_Key&gt;, typename _Traits = btree_default_map_traits&lt;_Key, _Data&gt;, typename _Alloc = std::allocator&lt;std::pair&lt;_Key, _Data&gt; &gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00005.html">stx::btree_multimap</a>&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::<a class="el" href="a00005.html">btree_multimap</a> </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="a00005.html#abedfcc2e864fadba606bd3c42b278012">key_compare</a> &amp;&#160;</td>
<td class="paramname"><em>kcf</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="a00005.html#abd0de8807a5e19e3610d8f2dcf803568">allocator_type</a> &amp;&#160;</td>
<td class="paramname"><em>alloc</em> = <code><a class="el" href="a00005.html#abd0de8807a5e19e3610d8f2dcf803568">allocator_type</a>()</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td><code> [inline, explicit]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Constructor initializing an empty B+ tree with a special key comparison object. </p>
<p>Definition at line <a class="el" href="a00030_source.html#l00178">178</a> of file <a class="el" href="a00030_source.html">btree_multimap.h</a>.</p>
</div>
</div>
<a class="anchor" id="a3c52e5b56314500448e3262670ab1e75"></a><!-- doxytag: member="stx::btree_multimap::btree_multimap" ref="a3c52e5b56314500448e3262670ab1e75" args="(InputIterator first, InputIterator last, const allocator_type &amp;alloc=allocator_type())" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Key , typename _Data , typename _Compare = std::less&lt;_Key&gt;, typename _Traits = btree_default_map_traits&lt;_Key, _Data&gt;, typename _Alloc = std::allocator&lt;std::pair&lt;_Key, _Data&gt; &gt;&gt; </div>
<div class="memtemplate">
template&lt;class InputIterator &gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00005.html">stx::btree_multimap</a>&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::<a class="el" href="a00005.html">btree_multimap</a> </td>
<td>(</td>
<td class="paramtype">InputIterator&#160;</td>
<td class="paramname"><em>first</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">InputIterator&#160;</td>
<td class="paramname"><em>last</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="a00005.html#abd0de8807a5e19e3610d8f2dcf803568">allocator_type</a> &amp;&#160;</td>
<td class="paramname"><em>alloc</em> = <code><a class="el" href="a00005.html#abd0de8807a5e19e3610d8f2dcf803568">allocator_type</a>()</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Constructor initializing a B+ tree with the range [first,last) </p>
<p>Definition at line <a class="el" href="a00030_source.html#l00186">186</a> of file <a class="el" href="a00030_source.html">btree_multimap.h</a>.</p>
</div>
</div>
<a class="anchor" id="ae32115eb2997acfb493f10421355e953"></a><!-- doxytag: member="stx::btree_multimap::btree_multimap" ref="ae32115eb2997acfb493f10421355e953" args="(InputIterator first, InputIterator last, const key_compare &amp;kcf, const allocator_type &amp;alloc=allocator_type())" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Key , typename _Data , typename _Compare = std::less&lt;_Key&gt;, typename _Traits = btree_default_map_traits&lt;_Key, _Data&gt;, typename _Alloc = std::allocator&lt;std::pair&lt;_Key, _Data&gt; &gt;&gt; </div>
<div class="memtemplate">
template&lt;class InputIterator &gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00005.html">stx::btree_multimap</a>&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::<a class="el" href="a00005.html">btree_multimap</a> </td>
<td>(</td>
<td class="paramtype">InputIterator&#160;</td>
<td class="paramname"><em>first</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">InputIterator&#160;</td>
<td class="paramname"><em>last</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="a00005.html#abedfcc2e864fadba606bd3c42b278012">key_compare</a> &amp;&#160;</td>
<td class="paramname"><em>kcf</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="a00005.html#abd0de8807a5e19e3610d8f2dcf803568">allocator_type</a> &amp;&#160;</td>
<td class="paramname"><em>alloc</em> = <code><a class="el" href="a00005.html#abd0de8807a5e19e3610d8f2dcf803568">allocator_type</a>()</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Constructor initializing a B+ tree with the range [first,last) and a special key comparison object. </p>
<p>Definition at line <a class="el" href="a00030_source.html#l00195">195</a> of file <a class="el" href="a00030_source.html">btree_multimap.h</a>.</p>
</div>
</div>
<a class="anchor" id="a67e377caa7e95aafe58620dd0687a2ab"></a><!-- doxytag: member="stx::btree_multimap::~btree_multimap" ref="a67e377caa7e95aafe58620dd0687a2ab" args="()" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Key , typename _Data , typename _Compare = std::less&lt;_Key&gt;, typename _Traits = btree_default_map_traits&lt;_Key, _Data&gt;, typename _Alloc = std::allocator&lt;std::pair&lt;_Key, _Data&gt; &gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00005.html">stx::btree_multimap</a>&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::~<a class="el" href="a00005.html">btree_multimap</a> </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Frees up all used B+ tree memory pages. </p>
<p>Definition at line <a class="el" href="a00030_source.html#l00202">202</a> of file <a class="el" href="a00030_source.html">btree_multimap.h</a>.</p>
</div>
</div>
<a class="anchor" id="a52cd4e7dd5a8d75e71292985de7837af"></a><!-- doxytag: member="stx::btree_multimap::btree_multimap" ref="a52cd4e7dd5a8d75e71292985de7837af" args="(const self &amp;other)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Key , typename _Data , typename _Compare = std::less&lt;_Key&gt;, typename _Traits = btree_default_map_traits&lt;_Key, _Data&gt;, typename _Alloc = std::allocator&lt;std::pair&lt;_Key, _Data&gt; &gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00005.html">stx::btree_multimap</a>&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::<a class="el" href="a00005.html">btree_multimap</a> </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="a00005.html#aae5bae110a73423fd534e6d9e769a23a">self</a> &amp;&#160;</td>
<td class="paramname"><em>other</em></td><td>)</td>
<td><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Copy constructor. </p>
<p>The newly initialized B+ tree object will contain a copy or all key/data pairs. </p>
<p>Definition at line <a class="el" href="a00030_source.html#l00463">463</a> of file <a class="el" href="a00030_source.html">btree_multimap.h</a>.</p>
</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="adf675fbe6c088fd2b210d7c27b48548f"></a><!-- doxytag: member="stx::btree_multimap::begin" ref="adf675fbe6c088fd2b210d7c27b48548f" args="()" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Key , typename _Data , typename _Compare = std::less&lt;_Key&gt;, typename _Traits = btree_default_map_traits&lt;_Key, _Data&gt;, typename _Alloc = std::allocator&lt;std::pair&lt;_Key, _Data&gt; &gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00005.html#a979a7cd352bd12f3fdd4554f65e56322">iterator</a> <a class="el" href="a00005.html">stx::btree_multimap</a>&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::<a class="el" href="a00005.html#adf675fbe6c088fd2b210d7c27b48548f">begin</a> </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Constructs a read/data-write iterator that points to the first slot in the first leaf of the B+ tree. </p>
<p>Definition at line <a class="el" href="a00030_source.html#l00251">251</a> of file <a class="el" href="a00030_source.html">btree_multimap.h</a>.</p>
<p>References <a class="el" href="a00026_source.html#l01573">stx::btree&lt; _Key, _Data, _Value, _Compare, _Traits, _Duplicates, _Alloc, _UsedAsSet &gt;::begin()</a>, and <a class="el" href="a00030_source.html#l00164">stx::btree_multimap&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::tree</a>.</p>
</div>
</div>
<a class="anchor" id="a7c76d3fe4e370b5f7dc2e77deccf61e6"></a><!-- doxytag: member="stx::btree_multimap::begin" ref="a7c76d3fe4e370b5f7dc2e77deccf61e6" args="() const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Key , typename _Data , typename _Compare = std::less&lt;_Key&gt;, typename _Traits = btree_default_map_traits&lt;_Key, _Data&gt;, typename _Alloc = std::allocator&lt;std::pair&lt;_Key, _Data&gt; &gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00005.html#a8994ae561b750a09e636040be65c5246">const_iterator</a> <a class="el" href="a00005.html">stx::btree_multimap</a>&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::<a class="el" href="a00005.html#adf675fbe6c088fd2b210d7c27b48548f">begin</a> </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const<code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Constructs a read-only constant iterator that points to the first slot in the first leaf of the B+ tree. </p>
<p>Definition at line <a class="el" href="a00030_source.html#l00265">265</a> of file <a class="el" href="a00030_source.html">btree_multimap.h</a>.</p>
<p>References <a class="el" href="a00026_source.html#l01573">stx::btree&lt; _Key, _Data, _Value, _Compare, _Traits, _Duplicates, _Alloc, _UsedAsSet &gt;::begin()</a>, and <a class="el" href="a00030_source.html#l00164">stx::btree_multimap&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::tree</a>.</p>
</div>
</div>
<a class="anchor" id="a03c07294f0b9bfbcd17f15ba23669dca"></a><!-- doxytag: member="stx::btree_multimap::bulk_load" ref="a03c07294f0b9bfbcd17f15ba23669dca" args="(Iterator first, Iterator last)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Key , typename _Data , typename _Compare = std::less&lt;_Key&gt;, typename _Traits = btree_default_map_traits&lt;_Key, _Data&gt;, typename _Alloc = std::allocator&lt;std::pair&lt;_Key, _Data&gt; &gt;&gt; </div>
<div class="memtemplate">
template&lt;typename Iterator &gt; </div>
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="a00005.html">stx::btree_multimap</a>&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::<a class="el" href="a00005.html#a03c07294f0b9bfbcd17f15ba23669dca">bulk_load</a> </td>
<td>(</td>
<td class="paramtype">Iterator&#160;</td>
<td class="paramname"><em>first</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">Iterator&#160;</td>
<td class="paramname"><em>last</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Bulk load a sorted range [first,last). </p>
<p>Loads items into leaves and constructs a B-tree above them. The tree must be empty when calling this function. </p>
<p>Definition at line <a class="el" href="a00030_source.html#l00521">521</a> of file <a class="el" href="a00030_source.html">btree_multimap.h</a>.</p>
<p>References <a class="el" href="a00026_source.html#l02401">stx::btree&lt; _Key, _Data, _Value, _Compare, _Traits, _Duplicates, _Alloc, _UsedAsSet &gt;::bulk_load()</a>, and <a class="el" href="a00030_source.html#l00164">stx::btree_multimap&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::tree</a>.</p>
</div>
</div>
<a class="anchor" id="add3d1d6cad6d331313d1821dbddda9f3"></a><!-- doxytag: member="stx::btree_multimap::clear" ref="add3d1d6cad6d331313d1821dbddda9f3" args="()" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Key , typename _Data , typename _Compare = std::less&lt;_Key&gt;, typename _Traits = btree_default_map_traits&lt;_Key, _Data&gt;, typename _Alloc = std::allocator&lt;std::pair&lt;_Key, _Data&gt; &gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="a00005.html">stx::btree_multimap</a>&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::<a class="el" href="a00005.html#add3d1d6cad6d331313d1821dbddda9f3">clear</a> </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Frees all key/data pairs and all nodes of the tree. </p>
<p>Definition at line <a class="el" href="a00030_source.html#l00241">241</a> of file <a class="el" href="a00030_source.html">btree_multimap.h</a>.</p>
<p>References <a class="el" href="a00026_source.html#l01527">stx::btree&lt; _Key, _Data, _Value, _Compare, _Traits, _Duplicates, _Alloc, _UsedAsSet &gt;::clear()</a>, and <a class="el" href="a00030_source.html#l00164">stx::btree_multimap&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::tree</a>.</p>
</div>
</div>
<a class="anchor" id="a6c0afdca1eb33639f5e8a2a7c939de9a"></a><!-- doxytag: member="stx::btree_multimap::count" ref="a6c0afdca1eb33639f5e8a2a7c939de9a" args="(const key_type &amp;key) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Key , typename _Data , typename _Compare = std::less&lt;_Key&gt;, typename _Traits = btree_default_map_traits&lt;_Key, _Data&gt;, typename _Alloc = std::allocator&lt;std::pair&lt;_Key, _Data&gt; &gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00005.html#abd83889e9697c609bffd95ec4548ddb4">size_type</a> <a class="el" href="a00005.html">stx::btree_multimap</a>&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::<a class="el" href="a00005.html#a6c0afdca1eb33639f5e8a2a7c939de9a">count</a> </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="a00005.html#adb607d4142977e7e6ca36ff38c42ace8">key_type</a> &amp;&#160;</td>
<td class="paramname"><em>key</em></td><td>)</td>
<td> const<code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Tries to locate a key in the B+ tree and returns the number of identical key entries found. </p>
<p>Definition at line <a class="el" href="a00030_source.html#l00359">359</a> of file <a class="el" href="a00030_source.html">btree_multimap.h</a>.</p>
<p>References <a class="el" href="a00026_source.html#l01822">stx::btree&lt; _Key, _Data, _Value, _Compare, _Traits, _Duplicates, _Alloc, _UsedAsSet &gt;::count()</a>, and <a class="el" href="a00030_source.html#l00164">stx::btree_multimap&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::tree</a>.</p>
</div>
</div>
<a class="anchor" id="a99f1ed0f5efa8232ed7b7e0c870c0865"></a><!-- doxytag: member="stx::btree_multimap::dump" ref="a99f1ed0f5efa8232ed7b7e0c870c0865" args="(std::ostream &amp;os) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Key , typename _Data , typename _Compare = std::less&lt;_Key&gt;, typename _Traits = btree_default_map_traits&lt;_Key, _Data&gt;, typename _Alloc = std::allocator&lt;std::pair&lt;_Key, _Data&gt; &gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="a00005.html">stx::btree_multimap</a>&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::<a class="el" href="a00005.html#a99f1ed0f5efa8232ed7b7e0c870c0865">dump</a> </td>
<td>(</td>
<td class="paramtype">std::ostream &amp;&#160;</td>
<td class="paramname"><em>os</em></td><td>)</td>
<td> const<code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Dump the contents of the B+ tree out onto an ostream as a binary image. </p>
<p>The image contains memory pointers which will be fixed when the image is restored. For this to work your key_type and data_type must be integral types and contain no pointers or references. </p>
<p>Definition at line <a class="el" href="a00030_source.html#l00593">593</a> of file <a class="el" href="a00030_source.html">btree_multimap.h</a>.</p>
<p>References <a class="el" href="a00026_source.html#l03843">stx::btree&lt; _Key, _Data, _Value, _Compare, _Traits, _Duplicates, _Alloc, _UsedAsSet &gt;::dump()</a>, and <a class="el" href="a00030_source.html#l00164">stx::btree_multimap&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::tree</a>.</p>
</div>
</div>
<a class="anchor" id="a4e48d18f8564ea81d6702398767f05dd"></a><!-- doxytag: member="stx::btree_multimap::empty" ref="a4e48d18f8564ea81d6702398767f05dd" args="() const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Key , typename _Data , typename _Compare = std::less&lt;_Key&gt;, typename _Traits = btree_default_map_traits&lt;_Key, _Data&gt;, typename _Alloc = std::allocator&lt;std::pair&lt;_Key, _Data&gt; &gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="a00005.html">stx::btree_multimap</a>&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::<a class="el" href="a00005.html#a4e48d18f8564ea81d6702398767f05dd">empty</a> </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const<code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Returns true if there is at least one key/data pair in the B+ tree. </p>
<p>Definition at line <a class="el" href="a00030_source.html#l00315">315</a> of file <a class="el" href="a00030_source.html">btree_multimap.h</a>.</p>
<p>References <a class="el" href="a00026_source.html#l01734">stx::btree&lt; _Key, _Data, _Value, _Compare, _Traits, _Duplicates, _Alloc, _UsedAsSet &gt;::empty()</a>, and <a class="el" href="a00030_source.html#l00164">stx::btree_multimap&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::tree</a>.</p>
</div>
</div>
<a class="anchor" id="a2ac890e6114060f5a40f9651bfc686cf"></a><!-- doxytag: member="stx::btree_multimap::end" ref="a2ac890e6114060f5a40f9651bfc686cf" args="()" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Key , typename _Data , typename _Compare = std::less&lt;_Key&gt;, typename _Traits = btree_default_map_traits&lt;_Key, _Data&gt;, typename _Alloc = std::allocator&lt;std::pair&lt;_Key, _Data&gt; &gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00005.html#a979a7cd352bd12f3fdd4554f65e56322">iterator</a> <a class="el" href="a00005.html">stx::btree_multimap</a>&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::<a class="el" href="a00005.html#a2ac890e6114060f5a40f9651bfc686cf">end</a> </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Constructs a read/data-write iterator that points to the first invalid slot in the last leaf of the B+ tree. </p>
<p>Definition at line <a class="el" href="a00030_source.html#l00258">258</a> of file <a class="el" href="a00030_source.html">btree_multimap.h</a>.</p>
<p>References <a class="el" href="a00026_source.html#l01580">stx::btree&lt; _Key, _Data, _Value, _Compare, _Traits, _Duplicates, _Alloc, _UsedAsSet &gt;::end()</a>, and <a class="el" href="a00030_source.html#l00164">stx::btree_multimap&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::tree</a>.</p>
</div>
</div>
<a class="anchor" id="ab00f7a57cbb9bb1bce4a7a8bd7a1885b"></a><!-- doxytag: member="stx::btree_multimap::end" ref="ab00f7a57cbb9bb1bce4a7a8bd7a1885b" args="() const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Key , typename _Data , typename _Compare = std::less&lt;_Key&gt;, typename _Traits = btree_default_map_traits&lt;_Key, _Data&gt;, typename _Alloc = std::allocator&lt;std::pair&lt;_Key, _Data&gt; &gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00005.html#a8994ae561b750a09e636040be65c5246">const_iterator</a> <a class="el" href="a00005.html">stx::btree_multimap</a>&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::<a class="el" href="a00005.html#a2ac890e6114060f5a40f9651bfc686cf">end</a> </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const<code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Constructs a read-only constant iterator that points to the first invalid slot in the last leaf of the B+ tree. </p>
<p>Definition at line <a class="el" href="a00030_source.html#l00272">272</a> of file <a class="el" href="a00030_source.html">btree_multimap.h</a>.</p>
<p>References <a class="el" href="a00026_source.html#l01580">stx::btree&lt; _Key, _Data, _Value, _Compare, _Traits, _Duplicates, _Alloc, _UsedAsSet &gt;::end()</a>, and <a class="el" href="a00030_source.html#l00164">stx::btree_multimap&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::tree</a>.</p>
</div>
</div>
<a class="anchor" id="a2cea662bd204a5d6cd5a994636368a08"></a><!-- doxytag: member="stx::btree_multimap::equal_range" ref="a2cea662bd204a5d6cd5a994636368a08" args="(const key_type &amp;key)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Key , typename _Data , typename _Compare = std::less&lt;_Key&gt;, typename _Traits = btree_default_map_traits&lt;_Key, _Data&gt;, typename _Alloc = std::allocator&lt;std::pair&lt;_Key, _Data&gt; &gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname">std::pair&lt;<a class="el" href="a00005.html#a979a7cd352bd12f3fdd4554f65e56322">iterator</a>, <a class="el" href="a00005.html#a979a7cd352bd12f3fdd4554f65e56322">iterator</a>&gt; <a class="el" href="a00005.html">stx::btree_multimap</a>&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::<a class="el" href="a00005.html#a2cea662bd204a5d6cd5a994636368a08">equal_range</a> </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="a00005.html#adb607d4142977e7e6ca36ff38c42ace8">key_type</a> &amp;&#160;</td>
<td class="paramname"><em>key</em></td><td>)</td>
<td><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Searches the B+ tree and returns both <a class="el" href="a00005.html#a966752ba450e4fc9e373482569d6a2d4" title="Searches the B+ tree and returns an iterator to the first pair equal to or greater than key...">lower_bound()</a> and <a class="el" href="a00005.html#a383fe4dc086b012197acbae9ded8d35f" title="Searches the B+ tree and returns an iterator to the first pair greater than key, or end() if all keys...">upper_bound()</a>. </p>
<p>Definition at line <a class="el" href="a00030_source.html#l00395">395</a> of file <a class="el" href="a00030_source.html">btree_multimap.h</a>.</p>
<p>References <a class="el" href="a00026_source.html#l01940">stx::btree&lt; _Key, _Data, _Value, _Compare, _Traits, _Duplicates, _Alloc, _UsedAsSet &gt;::equal_range()</a>, and <a class="el" href="a00030_source.html#l00164">stx::btree_multimap&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::tree</a>.</p>
</div>
</div>
<a class="anchor" id="a0f4f44a5553b3b0afe077e15e2204c18"></a><!-- doxytag: member="stx::btree_multimap::equal_range" ref="a0f4f44a5553b3b0afe077e15e2204c18" args="(const key_type &amp;key) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Key , typename _Data , typename _Compare = std::less&lt;_Key&gt;, typename _Traits = btree_default_map_traits&lt;_Key, _Data&gt;, typename _Alloc = std::allocator&lt;std::pair&lt;_Key, _Data&gt; &gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname">std::pair&lt;<a class="el" href="a00005.html#a8994ae561b750a09e636040be65c5246">const_iterator</a>, <a class="el" href="a00005.html#a8994ae561b750a09e636040be65c5246">const_iterator</a>&gt; <a class="el" href="a00005.html">stx::btree_multimap</a>&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::<a class="el" href="a00005.html#a2cea662bd204a5d6cd5a994636368a08">equal_range</a> </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="a00005.html#adb607d4142977e7e6ca36ff38c42ace8">key_type</a> &amp;&#160;</td>
<td class="paramname"><em>key</em></td><td>)</td>
<td> const<code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Searches the B+ tree and returns both <a class="el" href="a00005.html#a966752ba450e4fc9e373482569d6a2d4" title="Searches the B+ tree and returns an iterator to the first pair equal to or greater than key...">lower_bound()</a> and <a class="el" href="a00005.html#a383fe4dc086b012197acbae9ded8d35f" title="Searches the B+ tree and returns an iterator to the first pair greater than key, or end() if all keys...">upper_bound()</a>. </p>
<p>Definition at line <a class="el" href="a00030_source.html#l00401">401</a> of file <a class="el" href="a00030_source.html">btree_multimap.h</a>.</p>
<p>References <a class="el" href="a00026_source.html#l01940">stx::btree&lt; _Key, _Data, _Value, _Compare, _Traits, _Duplicates, _Alloc, _UsedAsSet &gt;::equal_range()</a>, and <a class="el" href="a00030_source.html#l00164">stx::btree_multimap&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::tree</a>.</p>
</div>
</div>
<a class="anchor" id="af53814c6408f8708d5c755e3277b92d4"></a><!-- doxytag: member="stx::btree_multimap::erase" ref="af53814c6408f8708d5c755e3277b92d4" args="(const key_type &amp;key)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Key , typename _Data , typename _Compare = std::less&lt;_Key&gt;, typename _Traits = btree_default_map_traits&lt;_Key, _Data&gt;, typename _Alloc = std::allocator&lt;std::pair&lt;_Key, _Data&gt; &gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00005.html#abd83889e9697c609bffd95ec4548ddb4">size_type</a> <a class="el" href="a00005.html">stx::btree_multimap</a>&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::<a class="el" href="a00005.html#af53814c6408f8708d5c755e3277b92d4">erase</a> </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="a00005.html#adb607d4142977e7e6ca36ff38c42ace8">key_type</a> &amp;&#160;</td>
<td class="paramname"><em>key</em></td><td>)</td>
<td><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Erases all the key/data pairs associated with the given key. </p>
<p>This is implemented using <a class="el" href="a00005.html#a63e0ea7673d9a512feb86c990f28cca0" title="Erases one (the first) of the key/data pairs associated with the given key.">erase_one()</a> and thus not very efficient. </p>
<p>Definition at line <a class="el" href="a00030_source.html#l00538">538</a> of file <a class="el" href="a00030_source.html">btree_multimap.h</a>.</p>
<p>References <a class="el" href="a00026_source.html#l02619">stx::btree&lt; _Key, _Data, _Value, _Compare, _Traits, _Duplicates, _Alloc, _UsedAsSet &gt;::erase()</a>, and <a class="el" href="a00030_source.html#l00164">stx::btree_multimap&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::tree</a>.</p>
</div>
</div>
<a class="anchor" id="a2e1cd81a36b44a74d3602c9cca2fc07d"></a><!-- doxytag: member="stx::btree_multimap::erase" ref="a2e1cd81a36b44a74d3602c9cca2fc07d" args="(iterator iter)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Key , typename _Data , typename _Compare = std::less&lt;_Key&gt;, typename _Traits = btree_default_map_traits&lt;_Key, _Data&gt;, typename _Alloc = std::allocator&lt;std::pair&lt;_Key, _Data&gt; &gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="a00005.html">stx::btree_multimap</a>&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::<a class="el" href="a00005.html#af53814c6408f8708d5c755e3277b92d4">erase</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00005.html#a979a7cd352bd12f3fdd4554f65e56322">iterator</a>&#160;</td>
<td class="paramname"><em>iter</em></td><td>)</td>
<td><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Erase the key/data pair referenced by the iterator. </p>
<p>Definition at line <a class="el" href="a00030_source.html#l00544">544</a> of file <a class="el" href="a00030_source.html">btree_multimap.h</a>.</p>
<p>References <a class="el" href="a00026_source.html#l02619">stx::btree&lt; _Key, _Data, _Value, _Compare, _Traits, _Duplicates, _Alloc, _UsedAsSet &gt;::erase()</a>, and <a class="el" href="a00030_source.html#l00164">stx::btree_multimap&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::tree</a>.</p>
</div>
</div>
<a class="anchor" id="a213de9620ab9ecee3286769bb4415030"></a><!-- doxytag: member="stx::btree_multimap::erase" ref="a213de9620ab9ecee3286769bb4415030" args="(iterator, iterator)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Key , typename _Data , typename _Compare = std::less&lt;_Key&gt;, typename _Traits = btree_default_map_traits&lt;_Key, _Data&gt;, typename _Alloc = std::allocator&lt;std::pair&lt;_Key, _Data&gt; &gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="a00005.html">stx::btree_multimap</a>&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::<a class="el" href="a00005.html#af53814c6408f8708d5c755e3277b92d4">erase</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00005.html#a979a7cd352bd12f3fdd4554f65e56322">iterator</a>&#160;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00005.html#a979a7cd352bd12f3fdd4554f65e56322">iterator</a>&#160;</td>
<td class="paramname">&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Erase all key/data pairs in the range [first,last). </p>
<p>This function is currently not implemented by the B+ Tree. </p>
<p>Definition at line <a class="el" href="a00030_source.html#l00552">552</a> of file <a class="el" href="a00030_source.html">btree_multimap.h</a>.</p>
</div>
</div>
<a class="anchor" id="a63e0ea7673d9a512feb86c990f28cca0"></a><!-- doxytag: member="stx::btree_multimap::erase_one" ref="a63e0ea7673d9a512feb86c990f28cca0" args="(const key_type &amp;key)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Key , typename _Data , typename _Compare = std::less&lt;_Key&gt;, typename _Traits = btree_default_map_traits&lt;_Key, _Data&gt;, typename _Alloc = std::allocator&lt;std::pair&lt;_Key, _Data&gt; &gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="a00005.html">stx::btree_multimap</a>&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::<a class="el" href="a00005.html#a63e0ea7673d9a512feb86c990f28cca0">erase_one</a> </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="a00005.html#adb607d4142977e7e6ca36ff38c42ace8">key_type</a> &amp;&#160;</td>
<td class="paramname"><em>key</em></td><td>)</td>
<td><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Erases one (the first) of the key/data pairs associated with the given key. </p>
<p>Definition at line <a class="el" href="a00030_source.html#l00531">531</a> of file <a class="el" href="a00030_source.html">btree_multimap.h</a>.</p>
<p>References <a class="el" href="a00026_source.html#l02596">stx::btree&lt; _Key, _Data, _Value, _Compare, _Traits, _Duplicates, _Alloc, _UsedAsSet &gt;::erase_one()</a>, and <a class="el" href="a00030_source.html#l00164">stx::btree_multimap&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::tree</a>.</p>
</div>
</div>
<a class="anchor" id="ae5a4cbbd44f3c1ac0380814d42227f08"></a><!-- doxytag: member="stx::btree_multimap::exists" ref="ae5a4cbbd44f3c1ac0380814d42227f08" args="(const key_type &amp;key) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Key , typename _Data , typename _Compare = std::less&lt;_Key&gt;, typename _Traits = btree_default_map_traits&lt;_Key, _Data&gt;, typename _Alloc = std::allocator&lt;std::pair&lt;_Key, _Data&gt; &gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="a00005.html">stx::btree_multimap</a>&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::<a class="el" href="a00005.html#ae5a4cbbd44f3c1ac0380814d42227f08">exists</a> </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="a00005.html#adb607d4142977e7e6ca36ff38c42ace8">key_type</a> &amp;&#160;</td>
<td class="paramname"><em>key</em></td><td>)</td>
<td> const<code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Non-STL function checking whether a key is in the B+ tree. </p>
<p>The same as (find(k) != <a class="el" href="a00005.html#a2ac890e6114060f5a40f9651bfc686cf" title="Constructs a read/data-write iterator that points to the first invalid slot in the last leaf of the B...">end()</a>) or (<a class="el" href="a00005.html#a6c0afdca1eb33639f5e8a2a7c939de9a" title="Tries to locate a key in the B+ tree and returns the number of identical key entries found...">count()</a> != 0). </p>
<p>Definition at line <a class="el" href="a00030_source.html#l00338">338</a> of file <a class="el" href="a00030_source.html">btree_multimap.h</a>.</p>
<p>References <a class="el" href="a00026_source.html#l01757">stx::btree&lt; _Key, _Data, _Value, _Compare, _Traits, _Duplicates, _Alloc, _UsedAsSet &gt;::exists()</a>, and <a class="el" href="a00030_source.html#l00164">stx::btree_multimap&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::tree</a>.</p>
</div>
</div>
<a class="anchor" id="a34e793de6eed772651697e23e8adaf9c"></a><!-- doxytag: member="stx::btree_multimap::find" ref="a34e793de6eed772651697e23e8adaf9c" args="(const key_type &amp;key)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Key , typename _Data , typename _Compare = std::less&lt;_Key&gt;, typename _Traits = btree_default_map_traits&lt;_Key, _Data&gt;, typename _Alloc = std::allocator&lt;std::pair&lt;_Key, _Data&gt; &gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00005.html#a979a7cd352bd12f3fdd4554f65e56322">iterator</a> <a class="el" href="a00005.html">stx::btree_multimap</a>&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::<a class="el" href="a00005.html#a34e793de6eed772651697e23e8adaf9c">find</a> </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="a00005.html#adb607d4142977e7e6ca36ff38c42ace8">key_type</a> &amp;&#160;</td>
<td class="paramname"><em>key</em></td><td>)</td>
<td><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Tries to locate a key in the B+ tree and returns an iterator to the key/data slot if found. </p>
<p>If unsuccessful it returns <a class="el" href="a00005.html#a2ac890e6114060f5a40f9651bfc686cf" title="Constructs a read/data-write iterator that points to the first invalid slot in the last leaf of the B...">end()</a>. </p>
<p>Definition at line <a class="el" href="a00030_source.html#l00345">345</a> of file <a class="el" href="a00030_source.html">btree_multimap.h</a>.</p>
<p>References <a class="el" href="a00026_source.html#l01778">stx::btree&lt; _Key, _Data, _Value, _Compare, _Traits, _Duplicates, _Alloc, _UsedAsSet &gt;::find()</a>, and <a class="el" href="a00030_source.html#l00164">stx::btree_multimap&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::tree</a>.</p>
</div>
</div>
<a class="anchor" id="a8e1f92f877b124becd55debded93392a"></a><!-- doxytag: member="stx::btree_multimap::find" ref="a8e1f92f877b124becd55debded93392a" args="(const key_type &amp;key) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Key , typename _Data , typename _Compare = std::less&lt;_Key&gt;, typename _Traits = btree_default_map_traits&lt;_Key, _Data&gt;, typename _Alloc = std::allocator&lt;std::pair&lt;_Key, _Data&gt; &gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00005.html#a8994ae561b750a09e636040be65c5246">const_iterator</a> <a class="el" href="a00005.html">stx::btree_multimap</a>&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::<a class="el" href="a00005.html#a34e793de6eed772651697e23e8adaf9c">find</a> </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="a00005.html#adb607d4142977e7e6ca36ff38c42ace8">key_type</a> &amp;&#160;</td>
<td class="paramname"><em>key</em></td><td>)</td>
<td> const<code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Tries to locate a key in the B+ tree and returns an constant iterator to the key/data slot if found. </p>
<p>If unsuccessful it returns <a class="el" href="a00005.html#a2ac890e6114060f5a40f9651bfc686cf" title="Constructs a read/data-write iterator that points to the first invalid slot in the last leaf of the B...">end()</a>. </p>
<p>Definition at line <a class="el" href="a00030_source.html#l00352">352</a> of file <a class="el" href="a00030_source.html">btree_multimap.h</a>.</p>
<p>References <a class="el" href="a00026_source.html#l01778">stx::btree&lt; _Key, _Data, _Value, _Compare, _Traits, _Duplicates, _Alloc, _UsedAsSet &gt;::find()</a>, and <a class="el" href="a00030_source.html#l00164">stx::btree_multimap&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::tree</a>.</p>
</div>
</div>
<a class="anchor" id="af3b5134ebb847dc69e3faa5e17094ecb"></a><!-- doxytag: member="stx::btree_multimap::get_allocator" ref="af3b5134ebb847dc69e3faa5e17094ecb" args="() const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Key , typename _Data , typename _Compare = std::less&lt;_Key&gt;, typename _Traits = btree_default_map_traits&lt;_Key, _Data&gt;, typename _Alloc = std::allocator&lt;std::pair&lt;_Key, _Data&gt; &gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00005.html#abd0de8807a5e19e3610d8f2dcf803568">allocator_type</a> <a class="el" href="a00005.html">stx::btree_multimap</a>&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::<a class="el" href="a00005.html#af3b5134ebb847dc69e3faa5e17094ecb">get_allocator</a> </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const<code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Return the base node allocator provided during construction. </p>
<p>Definition at line <a class="el" href="a00030_source.html#l00232">232</a> of file <a class="el" href="a00030_source.html">btree_multimap.h</a>.</p>
<p>References <a class="el" href="a00026_source.html#l01445">stx::btree&lt; _Key, _Data, _Value, _Compare, _Traits, _Duplicates, _Alloc, _UsedAsSet &gt;::get_allocator()</a>, and <a class="el" href="a00030_source.html#l00164">stx::btree_multimap&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::tree</a>.</p>
</div>
</div>
<a class="anchor" id="ac6d2b48072e4917eae4db73f21212d09"></a><!-- doxytag: member="stx::btree_multimap::get_stats" ref="ac6d2b48072e4917eae4db73f21212d09" args="() const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Key , typename _Data , typename _Compare = std::less&lt;_Key&gt;, typename _Traits = btree_default_map_traits&lt;_Key, _Data&gt;, typename _Alloc = std::allocator&lt;std::pair&lt;_Key, _Data&gt; &gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="a00005.html#ac5b2a55d1982b407a1075b9474c0d986">tree_stats</a>&amp; <a class="el" href="a00005.html">stx::btree_multimap</a>&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::<a class="el" href="a00005.html#ac6d2b48072e4917eae4db73f21212d09">get_stats</a> </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const<code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Return a const reference to the current statistics. </p>
<p>Definition at line <a class="el" href="a00030_source.html#l00328">328</a> of file <a class="el" href="a00030_source.html">btree_multimap.h</a>.</p>
<p>References <a class="el" href="a00026_source.html#l01747">stx::btree&lt; _Key, _Data, _Value, _Compare, _Traits, _Duplicates, _Alloc, _UsedAsSet &gt;::get_stats()</a>, and <a class="el" href="a00030_source.html#l00164">stx::btree_multimap&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::tree</a>.</p>
</div>
</div>
<a class="anchor" id="ae333d92079886a0c0b2a2d32201b712f"></a><!-- doxytag: member="stx::btree_multimap::insert" ref="ae333d92079886a0c0b2a2d32201b712f" args="(const value_type &amp;x)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Key , typename _Data , typename _Compare = std::less&lt;_Key&gt;, typename _Traits = btree_default_map_traits&lt;_Key, _Data&gt;, typename _Alloc = std::allocator&lt;std::pair&lt;_Key, _Data&gt; &gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00005.html#a979a7cd352bd12f3fdd4554f65e56322">iterator</a> <a class="el" href="a00005.html">stx::btree_multimap</a>&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::<a class="el" href="a00005.html#ae333d92079886a0c0b2a2d32201b712f">insert</a> </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="a00005.html#aa9c86e804b95247c742db5ad7b9351fe">value_type</a> &amp;&#160;</td>
<td class="paramname"><em>x</em></td><td>)</td>
<td><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Attempt to insert a key/data pair into the B+ tree. </p>
<p>As this tree allows duplicates insertion never fails. </p>
<p>Definition at line <a class="el" href="a00030_source.html#l00473">473</a> of file <a class="el" href="a00030_source.html">btree_multimap.h</a>.</p>
<p>References <a class="el" href="a00026_source.html#l02106">stx::btree&lt; _Key, _Data, _Value, _Compare, _Traits, _Duplicates, _Alloc, _UsedAsSet &gt;::insert2()</a>, and <a class="el" href="a00030_source.html#l00164">stx::btree_multimap&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::tree</a>.</p>
</div>
</div>
<a class="anchor" id="a21efd634ae0900fa4255933e41d1fc55"></a><!-- doxytag: member="stx::btree_multimap::insert" ref="a21efd634ae0900fa4255933e41d1fc55" args="(const key_type &amp;key, const data_type &amp;data)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Key , typename _Data , typename _Compare = std::less&lt;_Key&gt;, typename _Traits = btree_default_map_traits&lt;_Key, _Data&gt;, typename _Alloc = std::allocator&lt;std::pair&lt;_Key, _Data&gt; &gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00005.html#a979a7cd352bd12f3fdd4554f65e56322">iterator</a> <a class="el" href="a00005.html">stx::btree_multimap</a>&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::<a class="el" href="a00005.html#ae333d92079886a0c0b2a2d32201b712f">insert</a> </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="a00005.html#adb607d4142977e7e6ca36ff38c42ace8">key_type</a> &amp;&#160;</td>
<td class="paramname"><em>key</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="a00005.html#acd5f5ea401940bfc91c52571e0a27299">data_type</a> &amp;&#160;</td>
<td class="paramname"><em>data</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Attempt to insert a key/data pair into the B+ tree. </p>
<p>Beware that if key_type == data_type, then the template iterator <a class="el" href="a00005.html#ae333d92079886a0c0b2a2d32201b712f" title="Attempt to insert a key/data pair into the B+ tree.">insert()</a> is called instead. As this tree allows duplicates insertion never fails. </p>
<p>Definition at line <a class="el" href="a00030_source.html#l00481">481</a> of file <a class="el" href="a00030_source.html">btree_multimap.h</a>.</p>
<p>References <a class="el" href="a00026_source.html#l02106">stx::btree&lt; _Key, _Data, _Value, _Compare, _Traits, _Duplicates, _Alloc, _UsedAsSet &gt;::insert2()</a>, and <a class="el" href="a00030_source.html#l00164">stx::btree_multimap&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::tree</a>.</p>
</div>
</div>
<a class="anchor" id="a29e267a1e4178dca1f954d12aaff5cee"></a><!-- doxytag: member="stx::btree_multimap::insert" ref="a29e267a1e4178dca1f954d12aaff5cee" args="(iterator hint, const value_type &amp;x)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Key , typename _Data , typename _Compare = std::less&lt;_Key&gt;, typename _Traits = btree_default_map_traits&lt;_Key, _Data&gt;, typename _Alloc = std::allocator&lt;std::pair&lt;_Key, _Data&gt; &gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00005.html#a979a7cd352bd12f3fdd4554f65e56322">iterator</a> <a class="el" href="a00005.html">stx::btree_multimap</a>&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::<a class="el" href="a00005.html#ae333d92079886a0c0b2a2d32201b712f">insert</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00005.html#a979a7cd352bd12f3fdd4554f65e56322">iterator</a>&#160;</td>
<td class="paramname"><em>hint</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="a00005.html#aa9c86e804b95247c742db5ad7b9351fe">value_type</a> &amp;&#160;</td>
<td class="paramname"><em>x</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Attempt to insert a key/data pair into the B+ tree. </p>
<p>The iterator hint is currently ignored by the B+ tree insertion routine. </p>
<p>Definition at line <a class="el" href="a00030_source.html#l00497">497</a> of file <a class="el" href="a00030_source.html">btree_multimap.h</a>.</p>
<p>References <a class="el" href="a00026_source.html#l02106">stx::btree&lt; _Key, _Data, _Value, _Compare, _Traits, _Duplicates, _Alloc, _UsedAsSet &gt;::insert2()</a>, and <a class="el" href="a00030_source.html#l00164">stx::btree_multimap&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::tree</a>.</p>
</div>
</div>
<a class="anchor" id="ad1d876c4c9afe1c8ecf3a28d23be5049"></a><!-- doxytag: member="stx::btree_multimap::insert" ref="ad1d876c4c9afe1c8ecf3a28d23be5049" args="(InputIterator first, InputIterator last)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Key , typename _Data , typename _Compare = std::less&lt;_Key&gt;, typename _Traits = btree_default_map_traits&lt;_Key, _Data&gt;, typename _Alloc = std::allocator&lt;std::pair&lt;_Key, _Data&gt; &gt;&gt; </div>
<div class="memtemplate">
template&lt;typename InputIterator &gt; </div>
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="a00005.html">stx::btree_multimap</a>&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::<a class="el" href="a00005.html#ae333d92079886a0c0b2a2d32201b712f">insert</a> </td>
<td>(</td>
<td class="paramtype">InputIterator&#160;</td>
<td class="paramname"><em>first</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">InputIterator&#160;</td>
<td class="paramname"><em>last</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Attempt to insert the range [first,last) of value_type pairs into the B+ tree. </p>
<p>Each key/data pair is inserted individually. </p>
<p>Definition at line <a class="el" href="a00030_source.html#l00512">512</a> of file <a class="el" href="a00030_source.html">btree_multimap.h</a>.</p>
<p>References <a class="el" href="a00026_source.html#l02088">stx::btree&lt; _Key, _Data, _Value, _Compare, _Traits, _Duplicates, _Alloc, _UsedAsSet &gt;::insert()</a>, and <a class="el" href="a00030_source.html#l00164">stx::btree_multimap&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::tree</a>.</p>
</div>
</div>
<a class="anchor" id="a73db5a4a7d48733d515319436935ae5c"></a><!-- doxytag: member="stx::btree_multimap::insert2" ref="a73db5a4a7d48733d515319436935ae5c" args="(const key_type &amp;key, const data_type &amp;data)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Key , typename _Data , typename _Compare = std::less&lt;_Key&gt;, typename _Traits = btree_default_map_traits&lt;_Key, _Data&gt;, typename _Alloc = std::allocator&lt;std::pair&lt;_Key, _Data&gt; &gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00005.html#a979a7cd352bd12f3fdd4554f65e56322">iterator</a> <a class="el" href="a00005.html">stx::btree_multimap</a>&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::<a class="el" href="a00005.html#a73db5a4a7d48733d515319436935ae5c">insert2</a> </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="a00005.html#adb607d4142977e7e6ca36ff38c42ace8">key_type</a> &amp;&#160;</td>
<td class="paramname"><em>key</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="a00005.html#acd5f5ea401940bfc91c52571e0a27299">data_type</a> &amp;&#160;</td>
<td class="paramname"><em>data</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Attempt to insert a key/data pair into the B+ tree. </p>
<p>This function is the same as the other insert, however if key_type == data_type then the non-template function cannot be called. As this tree allows duplicates insertion never fails. </p>
<p>Definition at line <a class="el" href="a00030_source.html#l00490">490</a> of file <a class="el" href="a00030_source.html">btree_multimap.h</a>.</p>
<p>References <a class="el" href="a00026_source.html#l02106">stx::btree&lt; _Key, _Data, _Value, _Compare, _Traits, _Duplicates, _Alloc, _UsedAsSet &gt;::insert2()</a>, and <a class="el" href="a00030_source.html#l00164">stx::btree_multimap&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::tree</a>.</p>
</div>
</div>
<a class="anchor" id="afbb8f4655de73accf1fefdb14a71c755"></a><!-- doxytag: member="stx::btree_multimap::insert2" ref="afbb8f4655de73accf1fefdb14a71c755" args="(iterator hint, const key_type &amp;key, const data_type &amp;data)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Key , typename _Data , typename _Compare = std::less&lt;_Key&gt;, typename _Traits = btree_default_map_traits&lt;_Key, _Data&gt;, typename _Alloc = std::allocator&lt;std::pair&lt;_Key, _Data&gt; &gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00005.html#a979a7cd352bd12f3fdd4554f65e56322">iterator</a> <a class="el" href="a00005.html">stx::btree_multimap</a>&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::<a class="el" href="a00005.html#a73db5a4a7d48733d515319436935ae5c">insert2</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00005.html#a979a7cd352bd12f3fdd4554f65e56322">iterator</a>&#160;</td>
<td class="paramname"><em>hint</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="a00005.html#adb607d4142977e7e6ca36ff38c42ace8">key_type</a> &amp;&#160;</td>
<td class="paramname"><em>key</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="a00005.html#acd5f5ea401940bfc91c52571e0a27299">data_type</a> &amp;&#160;</td>
<td class="paramname"><em>data</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Attempt to insert a key/data pair into the B+ tree. </p>
<p>The iterator hint is currently ignored by the B+ tree insertion routine. </p>
<p>Definition at line <a class="el" href="a00030_source.html#l00504">504</a> of file <a class="el" href="a00030_source.html">btree_multimap.h</a>.</p>
<p>References <a class="el" href="a00026_source.html#l02106">stx::btree&lt; _Key, _Data, _Value, _Compare, _Traits, _Duplicates, _Alloc, _UsedAsSet &gt;::insert2()</a>, and <a class="el" href="a00030_source.html#l00164">stx::btree_multimap&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::tree</a>.</p>
</div>
</div>
<a class="anchor" id="abd05c6ac64de9889b2ed8888be6ca3e8"></a><!-- doxytag: member="stx::btree_multimap::key_comp" ref="abd05c6ac64de9889b2ed8888be6ca3e8" args="() const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Key , typename _Data , typename _Compare = std::less&lt;_Key&gt;, typename _Traits = btree_default_map_traits&lt;_Key, _Data&gt;, typename _Alloc = std::allocator&lt;std::pair&lt;_Key, _Data&gt; &gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00005.html#abedfcc2e864fadba606bd3c42b278012">key_compare</a> <a class="el" href="a00005.html">stx::btree_multimap</a>&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::<a class="el" href="a00005.html#abd05c6ac64de9889b2ed8888be6ca3e8">key_comp</a> </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const<code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Constant access to the key comparison object sorting the B+ tree. </p>
<p>Definition at line <a class="el" href="a00030_source.html#l00216">216</a> of file <a class="el" href="a00030_source.html">btree_multimap.h</a>.</p>
<p>References <a class="el" href="a00026_source.html#l01395">stx::btree&lt; _Key, _Data, _Value, _Compare, _Traits, _Duplicates, _Alloc, _UsedAsSet &gt;::key_comp()</a>, and <a class="el" href="a00030_source.html#l00164">stx::btree_multimap&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::tree</a>.</p>
</div>
</div>
<a class="anchor" id="a966752ba450e4fc9e373482569d6a2d4"></a><!-- doxytag: member="stx::btree_multimap::lower_bound" ref="a966752ba450e4fc9e373482569d6a2d4" args="(const key_type &amp;key)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Key , typename _Data , typename _Compare = std::less&lt;_Key&gt;, typename _Traits = btree_default_map_traits&lt;_Key, _Data&gt;, typename _Alloc = std::allocator&lt;std::pair&lt;_Key, _Data&gt; &gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00005.html#a979a7cd352bd12f3fdd4554f65e56322">iterator</a> <a class="el" href="a00005.html">stx::btree_multimap</a>&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::<a class="el" href="a00005.html#a966752ba450e4fc9e373482569d6a2d4">lower_bound</a> </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="a00005.html#adb607d4142977e7e6ca36ff38c42ace8">key_type</a> &amp;&#160;</td>
<td class="paramname"><em>key</em></td><td>)</td>
<td><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Searches the B+ tree and returns an iterator to the first pair equal to or greater than key, or <a class="el" href="a00005.html#a2ac890e6114060f5a40f9651bfc686cf" title="Constructs a read/data-write iterator that points to the first invalid slot in the last leaf of the B...">end()</a> if all keys are smaller. </p>
<p>Definition at line <a class="el" href="a00030_source.html#l00366">366</a> of file <a class="el" href="a00030_source.html">btree_multimap.h</a>.</p>
<p>References <a class="el" href="a00026_source.html#l01855">stx::btree&lt; _Key, _Data, _Value, _Compare, _Traits, _Duplicates, _Alloc, _UsedAsSet &gt;::lower_bound()</a>, and <a class="el" href="a00030_source.html#l00164">stx::btree_multimap&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::tree</a>.</p>
</div>
</div>
<a class="anchor" id="abe98b44e72292ab38b1894a892c7db0e"></a><!-- doxytag: member="stx::btree_multimap::lower_bound" ref="abe98b44e72292ab38b1894a892c7db0e" args="(const key_type &amp;key) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Key , typename _Data , typename _Compare = std::less&lt;_Key&gt;, typename _Traits = btree_default_map_traits&lt;_Key, _Data&gt;, typename _Alloc = std::allocator&lt;std::pair&lt;_Key, _Data&gt; &gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00005.html#a8994ae561b750a09e636040be65c5246">const_iterator</a> <a class="el" href="a00005.html">stx::btree_multimap</a>&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::<a class="el" href="a00005.html#a966752ba450e4fc9e373482569d6a2d4">lower_bound</a> </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="a00005.html#adb607d4142977e7e6ca36ff38c42ace8">key_type</a> &amp;&#160;</td>
<td class="paramname"><em>key</em></td><td>)</td>
<td> const<code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Searches the B+ tree and returns a constant iterator to the first pair equal to or greater than key, or <a class="el" href="a00005.html#a2ac890e6114060f5a40f9651bfc686cf" title="Constructs a read/data-write iterator that points to the first invalid slot in the last leaf of the B...">end()</a> if all keys are smaller. </p>
<p>Definition at line <a class="el" href="a00030_source.html#l00374">374</a> of file <a class="el" href="a00030_source.html">btree_multimap.h</a>.</p>
<p>References <a class="el" href="a00026_source.html#l01855">stx::btree&lt; _Key, _Data, _Value, _Compare, _Traits, _Duplicates, _Alloc, _UsedAsSet &gt;::lower_bound()</a>, and <a class="el" href="a00030_source.html#l00164">stx::btree_multimap&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::tree</a>.</p>
</div>
</div>
<a class="anchor" id="a122b57700263111abc6d8740123e2480"></a><!-- doxytag: member="stx::btree_multimap::max_size" ref="a122b57700263111abc6d8740123e2480" args="() const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Key , typename _Data , typename _Compare = std::less&lt;_Key&gt;, typename _Traits = btree_default_map_traits&lt;_Key, _Data&gt;, typename _Alloc = std::allocator&lt;std::pair&lt;_Key, _Data&gt; &gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00005.html#abd83889e9697c609bffd95ec4548ddb4">size_type</a> <a class="el" href="a00005.html">stx::btree_multimap</a>&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::<a class="el" href="a00005.html#a122b57700263111abc6d8740123e2480">max_size</a> </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const<code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Returns the largest possible size of the B+ Tree. </p>
<p>This is just a function required by the STL standard, the B+ Tree can hold more items. </p>
<p>Definition at line <a class="el" href="a00030_source.html#l00322">322</a> of file <a class="el" href="a00030_source.html">btree_multimap.h</a>.</p>
<p>References <a class="el" href="a00026_source.html#l01741">stx::btree&lt; _Key, _Data, _Value, _Compare, _Traits, _Duplicates, _Alloc, _UsedAsSet &gt;::max_size()</a>, and <a class="el" href="a00030_source.html#l00164">stx::btree_multimap&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::tree</a>.</p>
</div>
</div>
<a class="anchor" id="a776810538e2694bb322d7acbfe1d40bb"></a><!-- doxytag: member="stx::btree_multimap::operator!=" ref="a776810538e2694bb322d7acbfe1d40bb" args="(const self &amp;other) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Key , typename _Data , typename _Compare = std::less&lt;_Key&gt;, typename _Traits = btree_default_map_traits&lt;_Key, _Data&gt;, typename _Alloc = std::allocator&lt;std::pair&lt;_Key, _Data&gt; &gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="a00005.html">stx::btree_multimap</a>&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::operator!= </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="a00005.html#aae5bae110a73423fd534e6d9e769a23a">self</a> &amp;&#160;</td>
<td class="paramname"><em>other</em></td><td>)</td>
<td> const<code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Inequality relation. Based on operator==. </p>
<p>Definition at line <a class="el" href="a00030_source.html#l00418">418</a> of file <a class="el" href="a00030_source.html">btree_multimap.h</a>.</p>
<p>References <a class="el" href="a00030_source.html#l00164">stx::btree_multimap&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::tree</a>.</p>
</div>
</div>
<a class="anchor" id="a6a5db9c99ef0795047d9830ca874835b"></a><!-- doxytag: member="stx::btree_multimap::operator&lt;" ref="a6a5db9c99ef0795047d9830ca874835b" args="(const self &amp;other) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Key , typename _Data , typename _Compare = std::less&lt;_Key&gt;, typename _Traits = btree_default_map_traits&lt;_Key, _Data&gt;, typename _Alloc = std::allocator&lt;std::pair&lt;_Key, _Data&gt; &gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="a00005.html">stx::btree_multimap</a>&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::operator&lt; </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="a00005.html#aae5bae110a73423fd534e6d9e769a23a">self</a> &amp;&#160;</td>
<td class="paramname"><em>other</em></td><td>)</td>
<td> const<code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Total ordering relation of B+ trees of the same type. </p>
<p>It uses std::lexicographical_compare() for the actual comparison of elements. </p>
<p>Definition at line <a class="el" href="a00030_source.html#l00425">425</a> of file <a class="el" href="a00030_source.html">btree_multimap.h</a>.</p>
<p>References <a class="el" href="a00030_source.html#l00164">stx::btree_multimap&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::tree</a>.</p>
</div>
</div>
<a class="anchor" id="a3307b73ee5b14e6b9448e8d015d6f6ca"></a><!-- doxytag: member="stx::btree_multimap::operator&lt;=" ref="a3307b73ee5b14e6b9448e8d015d6f6ca" args="(const self &amp;other) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Key , typename _Data , typename _Compare = std::less&lt;_Key&gt;, typename _Traits = btree_default_map_traits&lt;_Key, _Data&gt;, typename _Alloc = std::allocator&lt;std::pair&lt;_Key, _Data&gt; &gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="a00005.html">stx::btree_multimap</a>&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::operator&lt;= </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="a00005.html#aae5bae110a73423fd534e6d9e769a23a">self</a> &amp;&#160;</td>
<td class="paramname"><em>other</em></td><td>)</td>
<td> const<code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Less-equal relation. Based on operator&lt;. </p>
<p>Definition at line <a class="el" href="a00030_source.html#l00437">437</a> of file <a class="el" href="a00030_source.html">btree_multimap.h</a>.</p>
<p>References <a class="el" href="a00030_source.html#l00164">stx::btree_multimap&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::tree</a>.</p>
</div>
</div>
<a class="anchor" id="ac46186ae3adf35e4ed2a2f3146294f2a"></a><!-- doxytag: member="stx::btree_multimap::operator=" ref="ac46186ae3adf35e4ed2a2f3146294f2a" args="(const self &amp;other)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Key , typename _Data , typename _Compare = std::less&lt;_Key&gt;, typename _Traits = btree_default_map_traits&lt;_Key, _Data&gt;, typename _Alloc = std::allocator&lt;std::pair&lt;_Key, _Data&gt; &gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00005.html#aae5bae110a73423fd534e6d9e769a23a">self</a>&amp; <a class="el" href="a00005.html">stx::btree_multimap</a>&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::operator= </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="a00005.html#aae5bae110a73423fd534e6d9e769a23a">self</a> &amp;&#160;</td>
<td class="paramname"><em>other</em></td><td>)</td>
<td><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>*** Fast Copy: Assign Operator and Copy Constructors </p>
<p>Assignment operator. All the key/data pairs are copied </p>
<p>Definition at line <a class="el" href="a00030_source.html#l00452">452</a> of file <a class="el" href="a00030_source.html">btree_multimap.h</a>.</p>
<p>References <a class="el" href="a00030_source.html#l00164">stx::btree_multimap&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::tree</a>.</p>
</div>
</div>
<a class="anchor" id="a28eb83b95a403ae4e22e857a53f1c312"></a><!-- doxytag: member="stx::btree_multimap::operator==" ref="a28eb83b95a403ae4e22e857a53f1c312" args="(const self &amp;other) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Key , typename _Data , typename _Compare = std::less&lt;_Key&gt;, typename _Traits = btree_default_map_traits&lt;_Key, _Data&gt;, typename _Alloc = std::allocator&lt;std::pair&lt;_Key, _Data&gt; &gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="a00005.html">stx::btree_multimap</a>&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::operator== </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="a00005.html#aae5bae110a73423fd534e6d9e769a23a">self</a> &amp;&#160;</td>
<td class="paramname"><em>other</em></td><td>)</td>
<td> const<code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Equality relation of B+ trees of the same type. </p>
<p>B+ trees of the same size and equal elements (both key and data) are considered equal. Beware of the random ordering of duplicate keys. </p>
<p>Definition at line <a class="el" href="a00030_source.html#l00412">412</a> of file <a class="el" href="a00030_source.html">btree_multimap.h</a>.</p>
<p>References <a class="el" href="a00030_source.html#l00164">stx::btree_multimap&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::tree</a>.</p>
</div>
</div>
<a class="anchor" id="adee49a9016375954653fb9e636b34fd4"></a><!-- doxytag: member="stx::btree_multimap::operator&gt;" ref="adee49a9016375954653fb9e636b34fd4" args="(const self &amp;other) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Key , typename _Data , typename _Compare = std::less&lt;_Key&gt;, typename _Traits = btree_default_map_traits&lt;_Key, _Data&gt;, typename _Alloc = std::allocator&lt;std::pair&lt;_Key, _Data&gt; &gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="a00005.html">stx::btree_multimap</a>&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::operator&gt; </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="a00005.html#aae5bae110a73423fd534e6d9e769a23a">self</a> &amp;&#160;</td>
<td class="paramname"><em>other</em></td><td>)</td>
<td> const<code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Greater relation. Based on operator&lt;. </p>
<p>Definition at line <a class="el" href="a00030_source.html#l00431">431</a> of file <a class="el" href="a00030_source.html">btree_multimap.h</a>.</p>
<p>References <a class="el" href="a00030_source.html#l00164">stx::btree_multimap&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::tree</a>.</p>
</div>
</div>
<a class="anchor" id="aa6feaadc9209791ac4b324b9fbaec951"></a><!-- doxytag: member="stx::btree_multimap::operator&gt;=" ref="aa6feaadc9209791ac4b324b9fbaec951" args="(const self &amp;other) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Key , typename _Data , typename _Compare = std::less&lt;_Key&gt;, typename _Traits = btree_default_map_traits&lt;_Key, _Data&gt;, typename _Alloc = std::allocator&lt;std::pair&lt;_Key, _Data&gt; &gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="a00005.html">stx::btree_multimap</a>&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::operator&gt;= </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="a00005.html#aae5bae110a73423fd534e6d9e769a23a">self</a> &amp;&#160;</td>
<td class="paramname"><em>other</em></td><td>)</td>
<td> const<code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Greater-equal relation. Based on operator&lt;. </p>
<p>Definition at line <a class="el" href="a00030_source.html#l00443">443</a> of file <a class="el" href="a00030_source.html">btree_multimap.h</a>.</p>
<p>References <a class="el" href="a00030_source.html#l00164">stx::btree_multimap&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::tree</a>.</p>
</div>
</div>
<a class="anchor" id="a1beb6a5071999014c38504e595e39138"></a><!-- doxytag: member="stx::btree_multimap::print" ref="a1beb6a5071999014c38504e595e39138" args="(std::ostream &amp;os) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Key , typename _Data , typename _Compare = std::less&lt;_Key&gt;, typename _Traits = btree_default_map_traits&lt;_Key, _Data&gt;, typename _Alloc = std::allocator&lt;std::pair&lt;_Key, _Data&gt; &gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="a00005.html">stx::btree_multimap</a>&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::<a class="el" href="a00005.html#a1beb6a5071999014c38504e595e39138">print</a> </td>
<td>(</td>
<td class="paramtype">std::ostream &amp;&#160;</td>
<td class="paramname"><em>os</em></td><td>)</td>
<td> const<code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Print out the B+ tree structure with keys onto the given ostream. </p>
<p>This function requires that the header is compiled with BTREE_DEBUG and that key_type is printable via std::ostream. </p>
<p>Definition at line <a class="el" href="a00030_source.html#l00565">565</a> of file <a class="el" href="a00030_source.html">btree_multimap.h</a>.</p>
<p>References <a class="el" href="a00026_source.html#l03556">stx::btree&lt; _Key, _Data, _Value, _Compare, _Traits, _Duplicates, _Alloc, _UsedAsSet &gt;::print()</a>, and <a class="el" href="a00030_source.html#l00164">stx::btree_multimap&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::tree</a>.</p>
</div>
</div>
<a class="anchor" id="a57515b3f833998d01408a65a92a8edf2"></a><!-- doxytag: member="stx::btree_multimap::print_leaves" ref="a57515b3f833998d01408a65a92a8edf2" args="(std::ostream &amp;os) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Key , typename _Data , typename _Compare = std::less&lt;_Key&gt;, typename _Traits = btree_default_map_traits&lt;_Key, _Data&gt;, typename _Alloc = std::allocator&lt;std::pair&lt;_Key, _Data&gt; &gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="a00005.html">stx::btree_multimap</a>&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::<a class="el" href="a00005.html#a57515b3f833998d01408a65a92a8edf2">print_leaves</a> </td>
<td>(</td>
<td class="paramtype">std::ostream &amp;&#160;</td>
<td class="paramname"><em>os</em></td><td>)</td>
<td> const<code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Print out only the leaves via the double linked list. </p>
<p>Definition at line <a class="el" href="a00030_source.html#l00571">571</a> of file <a class="el" href="a00030_source.html">btree_multimap.h</a>.</p>
<p>References <a class="el" href="a00026_source.html#l03564">stx::btree&lt; _Key, _Data, _Value, _Compare, _Traits, _Duplicates, _Alloc, _UsedAsSet &gt;::print_leaves()</a>, and <a class="el" href="a00030_source.html#l00164">stx::btree_multimap&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::tree</a>.</p>
</div>
</div>
<a class="anchor" id="a26f25e4676e2e40f775f206d15ec410a"></a><!-- doxytag: member="stx::btree_multimap::rbegin" ref="a26f25e4676e2e40f775f206d15ec410a" args="()" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Key , typename _Data , typename _Compare = std::less&lt;_Key&gt;, typename _Traits = btree_default_map_traits&lt;_Key, _Data&gt;, typename _Alloc = std::allocator&lt;std::pair&lt;_Key, _Data&gt; &gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00005.html#aa54a3a740748e22fae3b05f599458863">reverse_iterator</a> <a class="el" href="a00005.html">stx::btree_multimap</a>&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::<a class="el" href="a00005.html#a26f25e4676e2e40f775f206d15ec410a">rbegin</a> </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Constructs a read/data-write reverse iterator that points to the first invalid slot in the last leaf of the B+ tree. </p>
<p>Uses STL magic. </p>
<p>Definition at line <a class="el" href="a00030_source.html#l00279">279</a> of file <a class="el" href="a00030_source.html">btree_multimap.h</a>.</p>
<p>References <a class="el" href="a00026_source.html#l01601">stx::btree&lt; _Key, _Data, _Value, _Compare, _Traits, _Duplicates, _Alloc, _UsedAsSet &gt;::rbegin()</a>, and <a class="el" href="a00030_source.html#l00164">stx::btree_multimap&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::tree</a>.</p>
</div>
</div>
<a class="anchor" id="a25803c0b24900806f18ba1c437000b8f"></a><!-- doxytag: member="stx::btree_multimap::rbegin" ref="a25803c0b24900806f18ba1c437000b8f" args="() const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Key , typename _Data , typename _Compare = std::less&lt;_Key&gt;, typename _Traits = btree_default_map_traits&lt;_Key, _Data&gt;, typename _Alloc = std::allocator&lt;std::pair&lt;_Key, _Data&gt; &gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00005.html#a0af611010281b93a36b1b0fd3fd2144a">const_reverse_iterator</a> <a class="el" href="a00005.html">stx::btree_multimap</a>&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::<a class="el" href="a00005.html#a26f25e4676e2e40f775f206d15ec410a">rbegin</a> </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const<code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Constructs a read-only reverse iterator that points to the first invalid slot in the last leaf of the B+ tree. </p>
<p>Uses STL magic. </p>
<p>Definition at line <a class="el" href="a00030_source.html#l00293">293</a> of file <a class="el" href="a00030_source.html">btree_multimap.h</a>.</p>
<p>References <a class="el" href="a00026_source.html#l01601">stx::btree&lt; _Key, _Data, _Value, _Compare, _Traits, _Duplicates, _Alloc, _UsedAsSet &gt;::rbegin()</a>, and <a class="el" href="a00030_source.html#l00164">stx::btree_multimap&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::tree</a>.</p>
</div>
</div>
<a class="anchor" id="a65869601a55e3f965a847adea7ab48be"></a><!-- doxytag: member="stx::btree_multimap::rend" ref="a65869601a55e3f965a847adea7ab48be" args="()" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Key , typename _Data , typename _Compare = std::less&lt;_Key&gt;, typename _Traits = btree_default_map_traits&lt;_Key, _Data&gt;, typename _Alloc = std::allocator&lt;std::pair&lt;_Key, _Data&gt; &gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00005.html#aa54a3a740748e22fae3b05f599458863">reverse_iterator</a> <a class="el" href="a00005.html">stx::btree_multimap</a>&lt; _Key, _Data, _Compare, _Traits, _Alloc &gt;::<a class="el" href="a00005.html#a65869601a55e3f965a847adea7ab48be">rend</a> </td>