| <!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= |
| "../../../../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> |