796 lines
17 KiB
HTML
796 lines
17 KiB
HTML
<!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" xml:lang="en" lang="en">
|
|
<head>
|
|
<meta name="generator" content=
|
|
"HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
|
|
|
|
<title>hash_standard_resize_policy Interface</title>
|
|
<meta http-equiv="Content-Type" content=
|
|
"text/html; charset=us-ascii" />
|
|
</head>
|
|
|
|
<body>
|
|
<div id="page">
|
|
<h1><tt>hash_standard_resize_policy</tt> Interface</h1>
|
|
|
|
<p>A resize policy which delegates operations to size and
|
|
trigger policies.</p>
|
|
|
|
<p>Defined in: <a href=
|
|
"http://gcc.gnu.org/viewcvs/*checkout*/trunk/libstdc%2B%2B-v3/include/ext/pb_ds/hash_policy.hpp"><tt>hash_policy.hpp</tt></a></p>
|
|
|
|
<h2><a name="link1" id="link1">Template Parameters</a></h2>
|
|
|
|
<table class="c1" width="100%" border="1" summary=
|
|
"Template Parameters">
|
|
<tr>
|
|
<td width="20%" align="left"><b>Parameter</b></td>
|
|
|
|
<td width="50%" align="left"><b>Description</b></td>
|
|
|
|
<td width="30%" align="left"><b>Default Value</b></td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
<pre>
|
|
<a name="Size_Policy1072992366" id=
|
|
"Size_Policy1072992366"><b>class</b> Size_Policy </a>
|
|
</pre>
|
|
</td>
|
|
|
|
<td>
|
|
<p>Size policy type.</p>
|
|
</td>
|
|
|
|
<td><a href=
|
|
"hash_exponential_size_policy.html"><span class="c2"><tt>hash_exponential_size_policy</tt></span></a></td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
<pre>
|
|
<a name="Trigger_Policy3611271815" id=
|
|
"Trigger_Policy3611271815"><b>class</b> Trigger_Policy </a>
|
|
</pre>
|
|
</td>
|
|
|
|
<td>
|
|
<p>Trigger policy type.</p>
|
|
</td>
|
|
|
|
<td><a href=
|
|
"hash_load_check_resize_trigger.html"><span class=
|
|
"c2"><tt>hash_load_check_resize_trigger</tt></span></a></td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
<pre>
|
|
<a name="External_Size_Access1380482982" id=
|
|
"External_Size_Access1380482982"><b>bool</b> External_Size_Access </a>
|
|
</pre>
|
|
</td>
|
|
|
|
<td>
|
|
<p>Indicates whether physical sizes can be accessed
|
|
externally.</p>
|
|
</td>
|
|
|
|
<td><tt><b>false</b></tt></td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
<pre>
|
|
<a name="Size_Type42920436" id=
|
|
"Size_Type42920436"><b>typename</b> Size_Type </a>
|
|
</pre>
|
|
</td>
|
|
|
|
<td>
|
|
<p>Size type.</p>
|
|
</td>
|
|
|
|
<td>size_t</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<h2><a name="link2" id="link2">Base Classes</a></h2>
|
|
|
|
<table class="c1" width="100%" border="1" summary="Bases">
|
|
<tr>
|
|
<td width="80%" align="left"><b>Class</b></td>
|
|
|
|
<td width="20%" align="left"><b>Derivation Type</b></td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
<pre>
|
|
<a href="#Size_Policy1072992366"><tt>Size_Policy</tt></a>
|
|
</pre>
|
|
</td>
|
|
|
|
<td>
|
|
<p>public</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
<pre>
|
|
<a href="#Trigger_Policy3611271815"><tt>Trigger_Policy</tt></a>
|
|
</pre>
|
|
</td>
|
|
|
|
<td>
|
|
<p>public</p>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<h2><a name="link3" id="link3">Public Types and
|
|
Constants</a></h2>
|
|
|
|
<h3><a name="link4" id="link4">General Definitions</a></h3>
|
|
|
|
<table class="c1" width="100%" border="1" summary="Types">
|
|
<tr>
|
|
<td width="30%" align="left"><b>Type</b></td>
|
|
|
|
<td width="55%" align="left"><b>Definition</b></td>
|
|
|
|
<td width="15%" align="left"><b>Description</b></td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
<pre>
|
|
<a name="size_type55424436" id="size_type55424436">size_type</a>
|
|
</pre>
|
|
</td>
|
|
|
|
<td>
|
|
<pre>
|
|
<a href="#Size_Type42920436"><tt>Size_Type</tt></a>
|
|
</pre>
|
|
</td>
|
|
|
|
<td>
|
|
<p>Size type.</p>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<h3><a name="link5" id="link5">Policy Definitions</a></h3>
|
|
|
|
<table class="c1" width="100%" border="1" summary="Types">
|
|
<tr>
|
|
<td width="30%" align="left"><b>Type</b></td>
|
|
|
|
<td width="55%" align="left"><b>Definition</b></td>
|
|
|
|
<td width="15%" align="left"><b>Description</b></td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
<pre>
|
|
<a name="trigger_policy4019166151" id=
|
|
"trigger_policy4019166151">trigger_policy</a>
|
|
</pre>
|
|
</td>
|
|
|
|
<td>
|
|
<pre>
|
|
<a href="#Trigger_Policy3611271815"><tt>Trigger_Policy</tt></a>
|
|
</pre>
|
|
</td>
|
|
|
|
<td>
|
|
<p>Trigger policy type.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
<pre>
|
|
<a name="size_policy1385592366" id=
|
|
"size_policy1385592366">size_policy</a>
|
|
</pre>
|
|
</td>
|
|
|
|
<td>
|
|
<pre>
|
|
<a href="#Size_Policy1072992366"><tt>Size_Policy</tt></a>
|
|
</pre>
|
|
</td>
|
|
|
|
<td>
|
|
<p>Size policy type.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
<pre>
|
|
<a name="external_size_access4043083014" id=
|
|
"external_size_access4043083014">external_size_access</a>
|
|
</pre>
|
|
</td>
|
|
|
|
<td>
|
|
<pre>
|
|
<a href=
|
|
"#External_Size_Access1380482982"><tt>External_Size_Access</tt></a>
|
|
</pre>
|
|
</td>
|
|
|
|
<td>
|
|
<p>Indicates whether sizes can be accessed
|
|
externally.</p>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<h2><a name="link6" id="link6">Public Methods</a></h2>
|
|
|
|
<h3><a name="link7" id="link7">Constructors, Destructor, and
|
|
Related</a></h3>
|
|
|
|
<table class="c1" width="100%" border="1" summary="Methods">
|
|
<tr>
|
|
<td width="45%" align="left"><b>Method</b></td>
|
|
|
|
<td width="55%" align="left"><b>Description</b></td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
<pre>
|
|
hash_standard_resize_policy
|
|
()
|
|
</pre>
|
|
</td>
|
|
|
|
<td>
|
|
<p>Default constructor.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
<pre>
|
|
hash_standard_resize_policy
|
|
(<b>const</b> <a href=
|
|
"#Size_Policy1072992366"><tt>Size_Policy</tt></a> &r_size_policy)
|
|
</pre>
|
|
</td>
|
|
|
|
<td>
|
|
<p>constructor taking some policies <span class=
|
|
"c1"><tt>r_size_policy</tt></span> will be copied by the
|
|
<a href="#Size_Policy1072992366"><tt>Size_Policy</tt></a>
|
|
object of this object.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
<pre>
|
|
hash_standard_resize_policy
|
|
(<b>const</b> <a href=
|
|
"#Size_Policy1072992366"><tt>Size_Policy</tt></a> &r_size_policy,
|
|
<b>const</b> <a href=
|
|
"#Trigger_Policy3611271815"><tt>Trigger_Policy</tt></a> &r_trigger_policy)
|
|
</pre>
|
|
</td>
|
|
|
|
<td>
|
|
<p>constructor taking some policies. <span class=
|
|
"c1"><tt>r_size_policy</tt></span> will be copied by the
|
|
<a href="#Size_Policy1072992366"><tt>Size_Policy</tt></a>
|
|
object of this object. <span class=
|
|
"c1"><tt>r_trigger_policy</tt></span> will be copied by
|
|
the <a href=
|
|
"#Trigger_Policy3611271815"><tt>Trigger_Policy</tt></a>
|
|
object of this object.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
<pre>
|
|
<b>virtual</b>
|
|
~hash_standard_resize_policy
|
|
()
|
|
</pre>
|
|
</td>
|
|
|
|
<td>
|
|
<p>Destructor.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
<pre>
|
|
<b>inline</b> <b>void</b>
|
|
swap
|
|
(<span class=
|
|
"c2"><tt>hash_standard_resize_policy</tt></span> &other)
|
|
</pre>
|
|
</td>
|
|
|
|
<td>
|
|
<p>Swaps content.</p>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<h3><a name="link8" id="link8">Policy Access Methods</a></h3>
|
|
|
|
<table class="c1" width="100%" border="1" summary="Methods">
|
|
<tr>
|
|
<td width="45%" align="left"><b>Method</b></td>
|
|
|
|
<td width="55%" align="left"><b>Description</b></td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
<pre>
|
|
<a href="#Size_Policy1072992366"><tt>Size_Policy</tt></a> &
|
|
get_size_policy
|
|
()
|
|
</pre>
|
|
</td>
|
|
|
|
<td>
|
|
<p>Access to the <a href=
|
|
"#Size_Policy1072992366"><tt>Size_Policy</tt></a> object
|
|
used.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
<pre>
|
|
<b>const</b> <a href=
|
|
"#Size_Policy1072992366"><tt>Size_Policy</tt></a> &
|
|
get_size_policy
|
|
() <b>const</b>
|
|
</pre>
|
|
</td>
|
|
|
|
<td>
|
|
<p>Const access to the <a href=
|
|
"#Size_Policy1072992366"><tt>Size_Policy</tt></a> object
|
|
used.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
<pre>
|
|
<a href=
|
|
"#Trigger_Policy3611271815"><tt>Trigger_Policy</tt></a> &
|
|
get_trigger_policy
|
|
()
|
|
</pre>
|
|
</td>
|
|
|
|
<td>
|
|
<p>Access to the <a href=
|
|
"#Trigger_Policy3611271815"><tt>Trigger_Policy</tt></a>
|
|
object used.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
<pre>
|
|
<b>const</b> <a href=
|
|
"#Trigger_Policy3611271815"><tt>Trigger_Policy</tt></a> &
|
|
get_trigger_policy
|
|
() <b>const</b>
|
|
</pre>
|
|
</td>
|
|
|
|
<td>
|
|
<p>Access to the <a href=
|
|
"#Trigger_Policy3611271815"><tt>Trigger_Policy</tt></a>
|
|
object used.</p>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<h3><a name="link9" id="link9">Size Access Methods</a></h3>
|
|
|
|
<p>These methods are available only if the external size
|
|
parameter indicates that external size access is allowed.</p>
|
|
|
|
<table class="c1" width="100%" border="1" summary="Methods">
|
|
<tr>
|
|
<td width="45%" align="left"><b>Method</b></td>
|
|
|
|
<td width="55%" align="left"><b>Description</b></td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
<pre>
|
|
<b>inline</b> <a href="#size_type55424436"><tt>size_type</tt></a>
|
|
get_actual_size
|
|
() <b>const</b>
|
|
</pre>
|
|
</td>
|
|
|
|
<td>
|
|
<p>Returns the actual size of the container.</p>
|
|
|
|
<p>This method returns the number of entries (used and
|
|
unused) in the container. It is different from the
|
|
container's size method, which returns the number of used
|
|
entries. Calling this method will not compile when
|
|
<a href=
|
|
"#External_Size_Access1380482982"><tt>External_Size_Access</tt></a>
|
|
== <tt><b>false</b></tt>.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
<pre>
|
|
<b>void</b>
|
|
resize
|
|
(<a href=
|
|
"#size_type55424436"><tt>size_type</tt></a> suggested_new_size)
|
|
</pre>
|
|
</td>
|
|
|
|
<td>
|
|
<p>Resizes the container to <span class=
|
|
"c1"><tt>suggested_new_size</tt></span>, a suggested size
|
|
(the actual size will be determined by the <a href=
|
|
"#Size_Policy1072992366"><tt>Size_Policy</tt></a>
|
|
object).</p>
|
|
|
|
<p>Calling this method will not compile when <a href=
|
|
"#External_Size_Access1380482982"><tt>External_Size_Access</tt></a>
|
|
== <tt><b>false</b></tt>.</p>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<h2><a name="link10" id="link10">Protected Methods</a></h2>
|
|
|
|
<h3><a name="link11" id="link11">Insert Search
|
|
Notifications.</a></h3>
|
|
|
|
<p>Notifications called during an insert operation.</p>
|
|
|
|
<table class="c1" width="100%" border="1" summary="Methods">
|
|
<tr>
|
|
<td width="45%" align="left"><b>Method</b></td>
|
|
|
|
<td width="55%" align="left"><b>Description</b></td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
<pre>
|
|
<b>inline</b> <b>void</b>
|
|
notify_insert_search_start
|
|
()
|
|
</pre>
|
|
</td>
|
|
|
|
<td>
|
|
<p>Notifies a search started.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
<pre>
|
|
<b>inline</b> <b>void</b>
|
|
notify_insert_search_collision
|
|
()
|
|
</pre>
|
|
</td>
|
|
|
|
<td>
|
|
<p>Notifies a search encountered a collision.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
<pre>
|
|
<b>inline</b> <b>void</b>
|
|
notify_insert_search_end
|
|
()
|
|
</pre>
|
|
</td>
|
|
|
|
<td>
|
|
<p>Notifies a search ended.</p>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<h3><a name="link12" id="link12">Find Search
|
|
Notifications.</a></h3>
|
|
|
|
<p>Notifications called during a find operation.</p>
|
|
|
|
<table class="c1" width="100%" border="1" summary="Methods">
|
|
<tr>
|
|
<td width="45%" align="left"><b>Method</b></td>
|
|
|
|
<td width="55%" align="left"><b>Description</b></td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
<pre>
|
|
<b>inline</b> <b>void</b>
|
|
notify_find_search_start
|
|
()
|
|
</pre>
|
|
</td>
|
|
|
|
<td>
|
|
<p>Notifies a search started.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
<pre>
|
|
<b>inline</b> <b>void</b>
|
|
notify_find_search_collision
|
|
()
|
|
</pre>
|
|
</td>
|
|
|
|
<td>
|
|
<p>Notifies a search encountered a collision.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
<pre>
|
|
<b>inline</b> <b>void</b>
|
|
notify_find_search_end
|
|
()
|
|
</pre>
|
|
</td>
|
|
|
|
<td>
|
|
<p>Notifies a search ended.</p>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<h3><a name="link13" id="link13">Erase Search
|
|
Notifications.</a></h3>
|
|
|
|
<p>Notifications called during an insert operation.</p>
|
|
|
|
<table class="c1" width="100%" border="1" summary="Methods">
|
|
<tr>
|
|
<td width="45%" align="left"><b>Method</b></td>
|
|
|
|
<td width="55%" align="left"><b>Description</b></td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
<pre>
|
|
<b>inline</b> <b>void</b>
|
|
notify_erase_search_start
|
|
()
|
|
</pre>
|
|
</td>
|
|
|
|
<td>
|
|
<p>Notifies a search started.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
<pre>
|
|
<b>inline</b> <b>void</b>
|
|
notify_erase_search_collision
|
|
()
|
|
</pre>
|
|
</td>
|
|
|
|
<td>
|
|
<p>Notifies a search encountered a collision.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
<pre>
|
|
<b>inline</b> <b>void</b>
|
|
notify_erase_search_end
|
|
()
|
|
</pre>
|
|
</td>
|
|
|
|
<td>
|
|
<p>Notifies a search ended.</p>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<h3><a name="link14" id="link14">Content Change
|
|
Notifications</a></h3>
|
|
|
|
<p>Notifications called when the content of the table changes
|
|
in a way that can affect the resize policy.</p>
|
|
|
|
<table class="c1" width="100%" border="1" summary="Methods">
|
|
<tr>
|
|
<td width="45%" align="left"><b>Method</b></td>
|
|
|
|
<td width="55%" align="left"><b>Description</b></td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
<pre>
|
|
<b>inline</b> <b>void</b>
|
|
notify_inserted
|
|
(<a href="#size_type55424436"><tt>size_type</tt></a> num_e)
|
|
</pre>
|
|
</td>
|
|
|
|
<td>
|
|
<p>Notifies an element was inserted.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
<pre>
|
|
<b>inline</b> <b>void</b>
|
|
notify_erased
|
|
(<a href="#size_type55424436"><tt>size_type</tt></a> num_e)
|
|
</pre>
|
|
</td>
|
|
|
|
<td>
|
|
<p>Notifies an element was erased.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
<pre>
|
|
<b>void</b>
|
|
notify_cleared
|
|
()
|
|
</pre>
|
|
</td>
|
|
|
|
<td>
|
|
<p>Notifies the table was cleared.</p>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<h3><a name="link15" id="link15">Size Change
|
|
Notifications</a></h3>
|
|
|
|
<p>Notifications called when the table changes size.</p>
|
|
|
|
<table class="c1" width="100%" border="1" summary="Methods">
|
|
<tr>
|
|
<td width="45%" align="left"><b>Method</b></td>
|
|
|
|
<td width="55%" align="left"><b>Description</b></td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
<pre>
|
|
<b>void</b>
|
|
notify_resized
|
|
(<a href="#size_type55424436"><tt>size_type</tt></a> new_size)
|
|
</pre>
|
|
</td>
|
|
|
|
<td>
|
|
<p>Notifies the table was resized to <span class=
|
|
"c1"><tt>new_size</tt></span>.</p>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<h3><a name="link16" id="link16">Queries</a></h3>
|
|
|
|
<p>Called to query whether/how to resize.</p>
|
|
|
|
<table class="c1" width="100%" border="1" summary="Methods">
|
|
<tr>
|
|
<td width="45%" align="left"><b>Method</b></td>
|
|
|
|
<td width="55%" align="left"><b>Description</b></td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
<pre>
|
|
<b>inline</b> <b>bool</b>
|
|
is_resize_needed
|
|
() <b>const</b>
|
|
</pre>
|
|
</td>
|
|
|
|
<td>
|
|
<p>Queries whether a resize is needed.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
<pre>
|
|
<a href="#size_type55424436"><tt>size_type</tt></a>
|
|
get_new_size
|
|
(<a href="#size_type55424436"><tt>size_type</tt></a> size,
|
|
<a href=
|
|
"#size_type55424436"><tt>size_type</tt></a> num_used_e) <b>const</b>
|
|
</pre>
|
|
</td>
|
|
|
|
<td>
|
|
<p>Queries what the new <span class=
|
|
"c1"><tt>size</tt></span> should be, when the container
|
|
is resized naturally. The current size of the container
|
|
is <span class="c1"><tt>size</tt></span>, and the number
|
|
of used entries within the container is <span class=
|
|
"c1"><tt>num_used_e</tt></span>.</p>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<h2><a name="link17" id="link17">Private Methods</a></h2>
|
|
|
|
<h3><a name="link18" id="link18">Overrides</a></h3>
|
|
|
|
<table class="c1" width="100%" border="1" summary="Methods">
|
|
<tr>
|
|
<td width="45%" align="left"><b>Method</b></td>
|
|
|
|
<td width="55%" align="left"><b>Description</b></td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
<pre>
|
|
<b>virtual</b> <b>void</b>
|
|
do_resize
|
|
(<a href="#size_type55424436"><tt>size_type</tt></a> new_size)
|
|
</pre>
|
|
</td>
|
|
|
|
<td>
|
|
<p>Resizes to <span class=
|
|
"c1"><tt>new_size</tt></span>.</p>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
</body>
|
|
</html>
|