<!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>cc_hash_max_collision_check_resize_trigger Interface</title> <meta http-equiv="Content-Type" content= "text/html; charset=us-ascii" /> </head> <body> <div id="page"> <h1><tt>cc_hash_max_collision_check_resize_trigger</tt> Interface</h1> <p>A resize trigger policy based on collision checks. It keeps the simulated load factor lower than some given load factor.</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="External_Load_Access1313998607" id= "External_Load_Access1313998607"><b>bool</b> External_Load_Access </a> </pre> </td> <td> <p>Specifies whether the load factor can be accessed externally. The two options have different trade-offs in terms of flexibility, genericity, and encapsulation.</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">Public Types and Constants</a></h2> <h3><a name="link3" id="link3">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> <tr> <td> <pre> <a name="external_load_access3976598639" id= "external_load_access3976598639">external_load_access</a> </pre> </td> <td> <pre> <a href= "#External_Load_Access1313998607"><tt>External_Load_Access</tt></a> </pre> </td> <td> <p>Indicates whether loads can be accessed externally</p> </td> </tr> </table> <h2><a name="link4" id="link4">Public Methods</a></h2> <h3><a name="link5" id="link5">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> cc_hash_max_collision_check_resize_trigger (float load = 0.5) </pre> </td> <td> <p>Default constructor, or constructor taking <span class="c1"><tt>load</tt></span>, a load factor which it will attempt to maintain.</p> </td> </tr> <tr> <td> <pre> <b>void</b> swap (<span class= "c2"><tt>cc_hash_max_collision_check_resize_trigger</tt></span> &other) </pre> </td> <td> <p>Swaps content.</p> </td> </tr> </table> <h3><a name="link6" id="link6">Load Access Methods</a></h3> <p>These methods are only available if the external access parameter is set.</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> float get_load () <b>const</b> </pre> </td> <td> <p>Returns the current load.</p> <p>Calling this method will not compile when <a href= "#External_Load_Access1313998607"><tt>External_Load_Access</tt></a> == <tt><b>false</b></tt>.</p> </td> </tr> <tr> <td> <pre> <b>void</b> set_load (float load) </pre> </td> <td> <p>Sets the <span class="c1"><tt>load</tt></span>; does not resize the container.</p> <p>It is the responsibility of the user to pass an appropriate <span class="c1"><tt>load</tt></span> to this function. Calling this method will not compile when <a href= "#External_Load_Access1313998607"><tt>External_Load_Access</tt></a> == <tt><b>false</b></tt>.</p> </td> </tr> </table> <h2><a name="link7" id="link7">Protected Methods</a></h2> <h3><a name="link8" id="link8">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="link9" id="link9">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="link10" id="link10">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="link11" id="link11">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_entries) </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_entries) </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="link12" id="link12">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 as a result of this object's signifying that a resize is needed.</p> </td> </tr> <tr> <td> <pre> <b>void</b> notify_externally_resized (<a href="#size_type55424436"><tt>size_type</tt></a> new_size) </pre> </td> <td> <p>Notifies the table was resized externally.</p> </td> </tr> </table> <h3><a name="link13" id="link13">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> <b>inline</b> <b>bool</b> is_grow_needed (<a href= "#size_type55424436"><tt>size_type</tt></a> size, <a href= "#size_type55424436"><tt>size_type</tt></a> num_entries) <b>const</b> </pre> </td> <td> <p>Queries whether a grow is needed.</p> <p>This method is called only if this object indicated is needed.</p> </td> </tr> </table> </div> </body> </html>