⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 class__hashp.html

📁 A Set of Simple C++ Hash Templates
💻 HTML
📖 第 1 页 / 共 2 页
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"><title>ahash: _HashP&lt; T, KEY_TYPE &gt; Class Template Reference</title><link href="doxygen.css" rel="stylesheet" type="text/css"><link href="tabs.css" rel="stylesheet" type="text/css"></head><body><!-- Generated by Doxygen 1.5.0 --><div class="tabs">  <ul>    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>    <li id="current"><a href="classes.html"><span>Classes</span></a></li>    <li><a href="files.html"><span>Files</span></a></li>    <li><a href="dirs.html"><span>Directories</span></a></li>  </ul></div><div class="tabs">  <ul>    <li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>    <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>    <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>    <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>  </ul></div><h1>_HashP&lt; T, KEY_TYPE &gt; Class Template Reference</h1><!-- doxytag: class="_HashP" --><!-- doxytag: inherits="__hash" -->Hash table that doesn't need NULL elements.  <a href="#_details">More...</a><p><code>#include &lt;<a class="el" href="ahashp_8h-source.html">ahashp.h</a>&gt;</code><p><p>Inheritance diagram for _HashP&lt; T, KEY_TYPE &gt;:<p><center><img src="class__HashP.png" usemap="#_HashP< T, KEY_TYPE >_map" border="0" alt=""></center><map name="_HashP< T, KEY_TYPE >_map"><area href="class____hash.html" alt="__hash< T >" shape="rect" coords="0,0,160,24"><area href="class__Hash.html" alt="_Hash< T, KEY_TYPE >" shape="rect" coords="0,112,160,136"></map><a href="class__HashP-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0"><tr><td></td></tr><tr><td colspan="2"><br><h2>Public Types</h2></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="aa586f5e61332a125a6a9ac05d8426ab"></a><!-- doxytag: member="_HashP::hasherator" ref="aa586f5e61332a125a6a9ac05d8426ab" args="" -->typedef <a class="el" href="class____hash.html">__hash</a>&lt; T &gt;::<a class="el" href="class____hash_1_1hasherator.html">hasherator</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class__HashP.html#aa586f5e61332a125a6a9ac05d8426ab">hasherator</a></td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Getting the parent. <br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="697b21bdc54367114d11f61a3a1c1f44"></a><!-- doxytag: member="_HashP::const_hasherator" ref="697b21bdc54367114d11f61a3a1c1f44" args="" -->typedef <a class="el" href="class____hash.html">__hash</a>&lt; T &gt;::<a class="el" href="class____hash_1_1const__hasherator.html">const_hasherator</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class__HashP.html#697b21bdc54367114d11f61a3a1c1f44">const_hasherator</a></td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Getting the parent. <br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="36bec57ba42a749f9e6576b0b62962e3"></a><!-- doxytag: member="_HashP::bucket_array_unit" ref="36bec57ba42a749f9e6576b0b62962e3" args="" -->typedef <a class="el" href="class____hash.html">__hash</a>&lt; T &gt;::<a class="el" href="class__HashP.html#36bec57ba42a749f9e6576b0b62962e3">bucket_array_unit</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class__HashP.html#36bec57ba42a749f9e6576b0b62962e3">bucket_array_unit</a></td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Getting the parent. <br></td></tr><tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class__HashP.html#5e4e2a94d9a033bac864588b4abe8488">erase</a> (KEY_TYPE r)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Erases an element from the table.  <a href="#5e4e2a94d9a033bac864588b4abe8488"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="7e6755d6859d109e884dca47317742bf"></a><!-- doxytag: member="_HashP::Set" ref="7e6755d6859d109e884dca47317742bf" args="(const T &amp;t)" -->T &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class__HashP.html#7e6755d6859d109e884dca47317742bf">Set</a> (const T &amp;t)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Adds a member if its key isn't already there, and assigns the new one if it is. <br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="7d1fca31b4325a61bd9e524da66674d5"></a><!-- doxytag: member="_HashP::Get" ref="7d1fca31b4325a61bd9e524da66674d5" args="(KEY_TYPE ref) const " -->const T *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class__HashP.html#7d1fca31b4325a61bd9e524da66674d5">Get</a> (KEY_TYPE ref) const </td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A const version of <a class="el" href="class__HashP.html#f66e108d50b7fda46362f051567beb2d">Get(KEY_TYPE)</a>. <br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">T *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class__HashP.html#f66e108d50b7fda46362f051567beb2d">Get</a> (KEY_TYPE ref)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get an element from the table.  <a href="#f66e108d50b7fda46362f051567beb2d"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">const T *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class__HashP.html#3ee36fa83d4d6370c6713bdc0a43bcf0">Find</a> (KEY_TYPE ref) const </td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Identical <a class="el" href="class__HashP.html#f66e108d50b7fda46362f051567beb2d">Get(KEY_TYPE)</a>.  <a href="#3ee36fa83d4d6370c6713bdc0a43bcf0"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class__HashP.html#a47d77bd974a16bea038e41850a660fd">IsAdded</a> (KEY_TYPE ref) const </td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Has an element been added?  <a href="#a47d77bd974a16bea038e41850a660fd"></a><br></td></tr><tr><td colspan="2"><br><h2>Protected Member Functions</h2></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="8532366c1aef5677f09c6118e059e314"></a><!-- doxytag: member="_HashP::_HashP" ref="8532366c1aef5677f09c6118e059e314" args="(int nBucketSize=0)" -->&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class__HashP.html#8532366c1aef5677f09c6118e059e314">_HashP</a> (int nBucketSize=0)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructor taking the initial size of the hash lookup table. <br></td></tr><tr><td colspan="2"><br><h2>Private Types</h2></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="fdb35abcdd81ece11dd146b23ed1a7dc"></a><!-- doxytag: member="_HashP::elementlist" ref="fdb35abcdd81ece11dd146b23ed1a7dc" args="" -->typedef <a class="el" href="class____hash.html">__hash</a>&lt; T &gt;::<a class="el" href="class____hash_1_1elementlist.html">elementlist</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class__HashP.html#fdb35abcdd81ece11dd146b23ed1a7dc">elementlist</a></td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Getting the parent. <br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="045d3db5af611c34f7cad1291f8c212d"></a><!-- doxytag: member="_HashP::bucket_array" ref="045d3db5af611c34f7cad1291f8c212d" args="" -->typedef <a class="el" href="class____hash.html">__hash</a>&lt; T &gt;::<a class="el" href="class__HashP.html#045d3db5af611c34f7cad1291f8c212d">bucket_array</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class__HashP.html#045d3db5af611c34f7cad1291f8c212d">bucket_array</a></td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Getting the parent. <br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="d773d67ed3053d3e4e9af42b95a78e71"></a><!-- doxytag: member="_HashP::listelement" ref="d773d67ed3053d3e4e9af42b95a78e71" args="" -->typedef <a class="el" href="class____hash.html">__hash</a>&lt; T &gt;::<a class="el" href="class____hash_1_1listelement.html">listelement</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class__HashP.html#d773d67ed3053d3e4e9af42b95a78e71">listelement</a></td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Getting the parent. <br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="1859cee0f6ab29c8f70cc49d54ce5f17"></a><!-- doxytag: member="_HashP::hashelementlist" ref="1859cee0f6ab29c8f70cc49d54ce5f17" args="" -->typedef <a class="el" href="class____hash.html">__hash</a>&lt; T &gt;::<a class="el" href="class____hash_1_1elementlist.html">hashelementlist</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class__HashP.html#1859cee0f6ab29c8f70cc49d54ce5f17">hashelementlist</a></td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Getting the parent. <br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="4febe3c16f59f17354e27f458d19cc31"></a><!-- doxytag: member="_HashP::phashelementlist" ref="4febe3c16f59f17354e27f458d19cc31" args="" -->typedef <a class="el" href="class____hash.html">__hash</a>&lt; T &gt;::<a class="el" href="class____hash_1_1elementlist.html">phashelementlist</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class__HashP.html#4febe3c16f59f17354e27f458d19cc31">phashelementlist</a></td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Getting the parent. <br></td></tr><tr><td colspan="2"><br><h2>Private Member Functions</h2></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="class__HashP.html#36bec57ba42a749f9e6576b0b62962e3">bucket_array_unit</a> <br>HASHREFERENCEPREATTRIBUTES&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class__HashP.html#d5b50e26f6f37022a0fc347880267750">GetHashReference</a> (KEY_TYPE ref) const HASHREFERENCEPOSTATTRIBUTES=0</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets the bucket in which the sought element is to be found.  <a href="#d5b50e26f6f37022a0fc347880267750"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool COMPAREREFERENCESPREATTRIBUTES&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class__HashP.html#4a91aaccf66b4a916a0f4d27fb6aff29">CompareReferences</a> (const T &amp;ref1, KEY_TYPE ref2) const COMPAREREFERENCESPOSTATTRIBUTES=0</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compares a T type against an KEY_TYPE type.  <a href="#4a91aaccf66b4a916a0f4d27fb6aff29"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="class____hash_1_1listelement.html">listelement</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class__HashP.html#c02c81c0f04e0e4d5edce2518f5764df">SeekIterator</a> (<a class="el" href="class____hash_1_1elementlist.html">phashelementlist</a> &amp;plist, KEY_TYPE)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Searches for an iterator to an element.  <a href="#c02c81c0f04e0e4d5edce2518f5764df"></a><br></td></tr></table><hr><a name="_details"></a><h2>Detailed Description</h2><h3>template&lt;typename T, typename KEY_TYPE = const char *&gt;<br> class _HashP&lt; T, KEY_TYPE &gt;</h3>Hash table that doesn't need NULL elements. <p>Similar to _Hash&lt; T, KEY_TYPE &gt; but does not need the elements to have a "NULL" member to indicate a NULL set from <a class="el" href="class__HashP.html#7d1fca31b4325a61bd9e524da66674d5">Get()</a> calls.<br> To setup this class:<br> 1. You derive your hash class from this class.<br> 2. Implement <a class="el" href="class__HashP.html#d5b50e26f6f37022a0fc347880267750">GetHashReference()</a> and <a class="el" href="class__HashP.html#4a91aaccf66b4a916a0f4d27fb6aff29">CompareReferences()</a>.<br> 3. Follow the requirements for __hash&lt;T&gt;.<br> 4. <em>Optional</em> Define macros COMPAREREFERENCESPREATTRIBUTES and COMPAREREFERENCESPOSTATTRIBUTES. Doing this might optimize performance with whatever compiler you are using, but such things can be dangerous, so be very careful when using them. <p><hr><h2>Member Function Documentation</h2><a class="anchor" name="d5b50e26f6f37022a0fc347880267750"></a><!-- doxytag: member="_HashP::GetHashReference" ref="d5b50e26f6f37022a0fc347880267750" args="(KEY_TYPE ref) const HASHREFERENCEPOSTATTRIBUTES=0" --><div class="memitem"><div class="memproto"><div class="memtemplate">template&lt;typename T, typename KEY_TYPE = const char *&gt; </div>      <table class="memname">        <tr>          <td class="memname">virtual <a class="el" href="class__HashP.html#36bec57ba42a749f9e6576b0b62962e3">bucket_array_unit</a> HASHREFERENCEPREATTRIBUTES <a class="el" href="class__HashP.html">_HashP</a>&lt; T, KEY_TYPE &gt;::GetHashReference           </td>          <td>(</td>          <td class="paramtype">KEY_TYPE&nbsp;</td>          <td class="paramname"> <em>ref</em>          </td>          <td>&nbsp;)&nbsp;</td>          <td width="100%"> const<code> [private, pure virtual]</code></td>        </tr>      </table></div><div class="memdoc"><p>Gets the bucket in which the sought element is to be found. <p>This should essentially do the same thing as __hash&lt; T &gt;::GetHashReference(const T &amp;) except that it works on a different type. <dl compact><dt><b>Parameters:</b></dt><dd>  <table border="0" cellspacing="2" cellpadding="0">    <tr><td valign="top"></td><td valign="top"><em>ref</em>&nbsp;</td><td>The reference data used to locate the element. </td></tr>  </table></dl><dl class="return" compact><dt><b>Returns:</b></dt><dd>The index for m_buckets of the element that has the list. This reference should be &gt;= 0 and &lt; <a class="el" href="class____hash.html#2b3496393272c8d576bb96761d122938">GetBucketSize()</a>. </dd></dl><dl class="note" compact><dt><b>Note:</b></dt><dd><b>Do not neglect to include the HASHREFERENCEPREATTRIBUTES and HASHREFERENCEPOSTATTRIBUTES parts.</b> If you do, you probably won't get a compile or linker error, but your program could behave unpredictably. </dd></dl></div></div><p><a class="anchor" name="4a91aaccf66b4a916a0f4d27fb6aff29"></a><!-- doxytag: member="_HashP::CompareReferences" ref="4a91aaccf66b4a916a0f4d27fb6aff29" args="(const T &amp;ref1, KEY_TYPE ref2) const COMPAREREFERENCESPOSTATTRIBUTES=0" --><div class="memitem"><div class="memproto"><div class="memtemplate">template&lt;typename T, typename KEY_TYPE = const char *&gt; </div>      <table class="memname">        <tr>          <td class="memname">virtual bool COMPAREREFERENCESPREATTRIBUTES <a class="el" href="class__HashP.html">_HashP</a>&lt; T, KEY_TYPE &gt;::CompareReferences           </td>          <td>(</td>          <td class="paramtype">const T &amp;&nbsp;</td>          <td class="paramname"> <em>ref1</em>, </td>        </tr>        <tr>          <td class="paramkey"></td>          <td></td>          <td class="paramtype">KEY_TYPE&nbsp;</td>          <td class="paramname"> <em>ref2</em></td><td>&nbsp;</td>        </tr>        <tr>          <td></td>          <td>)</td>          <td></td><td></td><td width="100%"> const<code> [private, pure virtual]</code></td>        </tr>      </table></div>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -