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

📄 ____hash_8h-source.html

📁 A Set of Simple C++ Hash Templates
💻 HTML
📖 第 1 页 / 共 5 页
字号:
<a name="l00109"></a>00109                         <span class="keyword">delete</span> <a class="code" href="class____hash_1_1listelement.html#a2064f06ba4c690c86bb71a5561bf21c">m_pNext</a>;<a name="l00110"></a>00110                 }<a name="l00111"></a>00111 <a name="l00113"></a><a class="code" href="class____hash_1_1listelement.html#1ba5225ba561cab079378a5abed504e2">00113</a>                 <a class="code" href="class____hash_1_1listelement.html">listelement</a> *<a class="code" href="class____hash_1_1listelement.html#1ba5225ba561cab079378a5abed504e2">next</a>() {CHECK_NEXT_AND_PREV();<span class="keywordflow">return</span> <a class="code" href="class____hash_1_1listelement.html#a2064f06ba4c690c86bb71a5561bf21c">m_pNext</a>;}<a name="l00115"></a><a class="code" href="class____hash_1_1listelement.html#386969602038549f57fc5810ca0840f9">00115</a>                 <span class="keyword">const</span> <a class="code" href="class____hash_1_1listelement.html">listelement</a> *<a class="code" href="class____hash_1_1listelement.html#1ba5225ba561cab079378a5abed504e2">next</a>()<span class="keyword"> const </span>{CHECK_NEXT_AND_PREV();<span class="keywordflow">return</span> <a class="code" href="class____hash_1_1listelement.html#a2064f06ba4c690c86bb71a5561bf21c">m_pNext</a>;}<a name="l00117"></a><a class="code" href="class____hash_1_1listelement.html#da12dd1650f8860e2a203700b5f1c9bf">00117</a>                 <a class="code" href="class____hash_1_1listelement.html">listelement</a> *<a class="code" href="class____hash_1_1listelement.html#da12dd1650f8860e2a203700b5f1c9bf">prev</a>() {CHECK_NEXT_AND_PREV();<span class="keywordflow">return</span> <a class="code" href="class____hash_1_1listelement.html#9c66bb0785ffe4619a38252d200e9fad">m_pPrev</a>;}<a name="l00119"></a><a class="code" href="class____hash_1_1listelement.html#dee05dc6532166d960347292652c564c">00119</a>                 <span class="keyword">const</span> <a class="code" href="class____hash_1_1listelement.html">listelement</a> *<a class="code" href="class____hash_1_1listelement.html#da12dd1650f8860e2a203700b5f1c9bf">prev</a>()<span class="keyword"> const </span>{CHECK_NEXT_AND_PREV();<span class="keywordflow">return</span> <a class="code" href="class____hash_1_1listelement.html#9c66bb0785ffe4619a38252d200e9fad">m_pPrev</a>;}<a name="l00120"></a>00120                 <a name="l00122"></a><a class="code" href="class____hash_1_1listelement.html#faeb87be1e97629a5a4892372b1c4b27">00122</a>                 T &amp;<a class="code" href="class____hash_1_1listelement.html#faeb87be1e97629a5a4892372b1c4b27">operator *</a>() {<a name="l00123"></a>00123                         CHECK_NEXT_AND_PREV();<a name="l00124"></a>00124                         <span class="keywordflow">return</span> <a class="code" href="class____hash_1_1listelement.html#446b37fa68f6e5d2077a279c5514e019">m_element</a>;<a name="l00125"></a>00125                 }<a name="l00127"></a><a class="code" href="class____hash_1_1listelement.html#f421085ac2acc8e7d09738aca99cc6b1">00127</a>                 <span class="keyword">const</span> T &amp;<a class="code" href="class____hash_1_1listelement.html#faeb87be1e97629a5a4892372b1c4b27">operator *</a>()<span class="keyword"> const </span>{<a name="l00128"></a>00128                         CHECK_NEXT_AND_PREV();<a name="l00129"></a>00129                         <span class="keywordflow">return</span> <a class="code" href="class____hash_1_1listelement.html#446b37fa68f6e5d2077a279c5514e019">m_element</a>;<a name="l00130"></a>00130                 }<a name="l00132"></a><a class="code" href="class____hash_1_1listelement.html#f184f68466d02869326d76d4fbdf3a8c">00132</a>                 <span class="keywordtype">bool</span> <a class="code" href="class____hash_1_1listelement.html#f184f68466d02869326d76d4fbdf3a8c">CheckNextAndPrev</a>()<span class="keyword"> const </span>{<a name="l00133"></a>00133                         <span class="keywordtype">bool</span> bNextGood = <a class="code" href="class____hash_1_1listelement.html#a2064f06ba4c690c86bb71a5561bf21c">m_pNext</a> == NULL || <a class="code" href="class____hash_1_1listelement.html#a2064f06ba4c690c86bb71a5561bf21c">m_pNext</a>-&gt;<a class="code" href="class____hash_1_1listelement.html#9c66bb0785ffe4619a38252d200e9fad">m_pPrev</a> == <span class="keyword">this</span>;<a name="l00134"></a>00134                         <span class="keywordtype">bool</span> bPrevGood = <a class="code" href="class____hash_1_1listelement.html#9c66bb0785ffe4619a38252d200e9fad">m_pPrev</a> == NULL || <a class="code" href="class____hash_1_1listelement.html#9c66bb0785ffe4619a38252d200e9fad">m_pPrev</a>-&gt;<a class="code" href="class____hash_1_1listelement.html#a2064f06ba4c690c86bb71a5561bf21c">m_pNext</a> == <span class="keyword">this</span>;<a name="l00135"></a>00135                         <span class="keywordflow">return</span> bNextGood &amp;&amp; bPrevGood;<a name="l00136"></a>00136                 }<a name="l00137"></a>00137 <a name="l00138"></a>00138         <span class="keyword">protected</span>:<a name="l00140"></a>00140 <a name="l00141"></a><a class="code" href="class____hash_1_1listelement.html#fb209cb064cc13949de51041ea308958">00141</a>                 <a class="code" href="class____hash_1_1listelement.html">listelement</a> *<a class="code" href="class____hash_1_1listelement.html#fb209cb064cc13949de51041ea308958">Remove</a>() {<a name="l00142"></a>00142                         <a class="code" href="class____hash_1_1listelement.html">listelement</a> *pOriginalNext = <a class="code" href="class____hash_1_1listelement.html#a2064f06ba4c690c86bb71a5561bf21c">m_pNext</a>;<a name="l00143"></a>00143                         <span class="keywordflow">if</span> (<a class="code" href="class____hash_1_1listelement.html#a2064f06ba4c690c86bb71a5561bf21c">m_pNext</a> != NULL) {<a name="l00144"></a>00144                                 assert(<a class="code" href="class____hash_1_1listelement.html#a2064f06ba4c690c86bb71a5561bf21c">m_pNext</a>-&gt;<a class="code" href="class____hash_1_1listelement.html#9c66bb0785ffe4619a38252d200e9fad">m_pPrev</a> == <span class="keyword">this</span>);<a name="l00145"></a>00145                                 <a class="code" href="class____hash_1_1listelement.html#a2064f06ba4c690c86bb71a5561bf21c">m_pNext</a>-&gt;<a class="code" href="class____hash_1_1listelement.html#9c66bb0785ffe4619a38252d200e9fad">m_pPrev</a> = <a class="code" href="class____hash_1_1listelement.html#9c66bb0785ffe4619a38252d200e9fad">m_pPrev</a>;<a name="l00146"></a>00146                                 <a class="code" href="class____hash_1_1listelement.html#a2064f06ba4c690c86bb71a5561bf21c">m_pNext</a> = NULL;<a name="l00147"></a>00147                         }<a name="l00148"></a>00148                         <span class="keywordflow">if</span> (<a class="code" href="class____hash_1_1listelement.html#9c66bb0785ffe4619a38252d200e9fad">m_pPrev</a> != NULL) {<a name="l00149"></a>00149                                 assert(<a class="code" href="class____hash_1_1listelement.html#9c66bb0785ffe4619a38252d200e9fad">m_pPrev</a>-&gt;<a class="code" href="class____hash_1_1listelement.html#a2064f06ba4c690c86bb71a5561bf21c">m_pNext</a> == <span class="keyword">this</span>);<a name="l00150"></a>00150                                 <a class="code" href="class____hash_1_1listelement.html#9c66bb0785ffe4619a38252d200e9fad">m_pPrev</a>-&gt;<a class="code" href="class____hash_1_1listelement.html#a2064f06ba4c690c86bb71a5561bf21c">m_pNext</a> = pOriginalNext;<a name="l00151"></a>00151                                 <a class="code" href="class____hash_1_1listelement.html#9c66bb0785ffe4619a38252d200e9fad">m_pPrev</a> = NULL;<a name="l00152"></a>00152                         }<a name="l00153"></a>00153                         <span class="keywordflow">return</span> pOriginalNext;<a name="l00154"></a>00154                 }<a name="l00155"></a>00155         <span class="keyword">public</span>:<a name="l00156"></a><a class="code" href="class____hash_1_1listelement.html#446b37fa68f6e5d2077a279c5514e019">00156</a>                 T <a class="code" href="class____hash_1_1listelement.html#446b37fa68f6e5d2077a279c5514e019">m_element</a>;<a name="l00157"></a>00157         <span class="keyword">private</span>:<a name="l00158"></a><a class="code" href="class____hash_1_1listelement.html#9c66bb0785ffe4619a38252d200e9fad">00158</a>                 <a class="code" href="class____hash_1_1listelement.html">listelement</a> *<a class="code" href="class____hash_1_1listelement.html#9c66bb0785ffe4619a38252d200e9fad">m_pPrev</a>, <a name="l00159"></a>00159                                                         *<a class="code" href="class____hash_1_1listelement.html#a2064f06ba4c690c86bb71a5561bf21c">m_pNext</a>;<a name="l00160"></a>00160         };<span class="comment">//class listelement</span><a name="l00161"></a>00161 <a name="l00163"></a><a class="code" href="class____hash_1_1elementlist.html">00163</a>         <span class="keyword">class </span><a class="code" href="class____hash_1_1elementlist.html">elementlist</a> {<a name="l00164"></a>00164         <span class="keyword">public</span>:<a name="l00165"></a>00165                 <a class="code" href="class____hash_1_1elementlist.html">elementlist</a>() : <a class="code" href="class____hash_1_1elementlist.html#50ab5c88a4d5f2bf4e23f4a84a1a8978">m_plist</a>(NULL), <a class="code" href="class____hash_1_1elementlist.html#1b94c068da4cad8afd790b4ac442a3cf">m_ptail</a>(NULL) {<a name="l00166"></a>00166 <span class="preprocessor">                        #ifdef DEBUG_AHASH</span><a name="l00167"></a>00167 <span class="preprocessor"></span>                                m_nSize = 0;<a name="l00168"></a>00168                                 assert(SizeCorrect());<a name="l00169"></a>00169 <span class="preprocessor">                        #endif</span><a name="l00170"></a>00170 <span class="preprocessor"></span>                }<a name="l00172"></a><a class="code" href="class____hash_1_1elementlist.html#81a611efcd8ea1be255c3db0f7c1a094">00172</a>                 <a class="code" href="class____hash_1_1elementlist.html">elementlist</a>(<span class="keyword">const</span> <a class="code" href="class____hash_1_1elementlist.html">elementlist</a> &amp;el) : <a class="code" href="class____hash_1_1elementlist.html#50ab5c88a4d5f2bf4e23f4a84a1a8978">m_plist</a>(NULL), <a class="code" href="class____hash_1_1elementlist.html#1b94c068da4cad8afd790b4ac442a3cf">m_ptail</a>(NULL) {<a name="l00173"></a>00173 <span class="preprocessor">                        #ifdef DEBUG_AHASH</span><a name="l00174"></a>00174 <span class="preprocessor"></span>                                m_nSize = 0;<a name="l00175"></a>00175 <span class="preprocessor">                        #endif</span><a name="l00176"></a>00176 <span class="preprocessor"></span>                        <a class="code" href="class____hash_1_1elementlist.html#c5f6c8e8f42981fbb405913d04145e37">Copy</a>(el);<a name="l00177"></a>00177                 }<a name="l00179"></a>00179 <a name="l00180"></a>00180                 <a class="code" href="class____hash_1_1elementlist.html">elementlist</a>(<span class="keyword">const</span> T &amp;t);<a name="l00181"></a>00181                 ~<a class="code" href="class____hash_1_1elementlist.html">elementlist</a>() {<a name="l00182"></a>00182                         <a class="code" href="class____hash_1_1elementlist.html#4f4447b9309214b537f5185e3d6da2dd">Destroy</a>();<a name="l00183"></a>00183                 }<a name="l00185"></a><a class="code" href="class____hash_1_1elementlist.html#992300bbd9bc9199f67797c5981da762">00185</a>                 <a class="code" href="class____hash_1_1elementlist.html">elementlist</a> *<a class="code" href="class____hash_1_1elementlist.html#992300bbd9bc9199f67797c5981da762">operator=</a>(<span class="keyword">const</span> <a class="code" href="class____hash_1_1elementlist.html">elementlist</a> &amp;el) {<a name="l00186"></a>00186                         <a class="code" href="class____hash_1_1elementlist.html#c5f6c8e8f42981fbb405913d04145e37">Copy</a>(el);<a name="l00187"></a>00187                         <span class="keywordflow">return</span> <span class="keyword">this</span>;<a name="l00188"></a>00188                 }<a name="l00189"></a>00189 <a name="l00191"></a><a class="code" href="class____hash_1_1elementlist.html#00bd481060b0d693231b513d4ceb04b5">00191</a>                 <a class="code" href="class____hash_1_1listelement.html">listelement</a> *<a class="code" href="class____hash_1_1elementlist.html#00bd481060b0d693231b513d4ceb04b5">head</a>() {<a name="l00192"></a>00192 <span class="preprocessor">                        #ifdef DEBUG_AHASH</span><a name="l00193"></a>00193 <span class="preprocessor"></span>                                assert(<a class="code" href="class____hash_1_1elementlist.html#50ab5c88a4d5f2bf4e23f4a84a1a8978">m_plist</a> == NULL || <a class="code" href="class____hash_1_1elementlist.html#50ab5c88a4d5f2bf4e23f4a84a1a8978">m_plist</a>-&gt;<a class="code" href="class____hash_1_1listelement.html#f184f68466d02869326d76d4fbdf3a8c">CheckNextAndPrev</a>());assert(<a class="code" href="class____hash_1_1elementlist.html#cad3ca46cf3542bab13a6b9343efb3d1">BothNULLorNonNULL</a>());assert(SizeCorrect());<a name="l00194"></a>00194 <span class="preprocessor">                        #endif</span><a name="l00195"></a>00195 <span class="preprocessor"></span>                        <span class="keywordflow">return</span> <a class="code" href="class____hash_1_1elementlist.html#50ab5c88a4d5f2bf4e23f4a84a1a8978">m_plist</a>;<a name="l00196"></a>00196                 }<a name="l00198"></a><a class="code" href="class____hash_1_1elementlist.html#4d5cade7c4f3028264551641257d7243">00198</a>                 <span class="keyword">const</span> <a class="code" href="class____hash_1_1listelement.html">listelement</a> *<a class="code" href="class____hash_1_1elementlist.html#00bd481060b0d693231b513d4ceb04b5">head</a>()<span class="keyword"> const </span>{<a name="l00199"></a>00199 <span class="preprocessor">                        #ifdef DEBUG_AHASH</span><a name="l00200"></a>00200 <span class="preprocessor"></span>                                assert(<a class="code" href="class____hash_1_1elementlist.html#50ab5c88a4d5f2bf4e23f4a84a1a8978">m_plist</a> == NULL || <a class="code" href="class____hash_1_1elementlist.html#50ab5c88a4d5f2bf4e23f4a84a1a8978">m_plist</a>-&gt;<a class="code" href="class____hash_1_1listelement.html#f184f68466d02869326d76d4fbdf3a8c">CheckNextAndPrev</a>());assert(<a class="code" href="class____hash_1_1elementlist.html#cad3ca46cf3542bab13a6b9343efb3d1">BothNULLorNonNULL</a>());assert(SizeCorrect());<a name="l00201"></a>00201 <span class="preprocessor">                        #endif</span><a name="l00202"></a>00202 <span class="preprocessor"></span>                        <span class="keywordflow">return</span> <a class="code" href="class____hash_1_1elementlist.html#50ab5c88a4d5f2bf4e23f4a84a1a8978">m_plist</a>;<a name="l00203"></a>00203                 }<a name="l00205"></a><a class="code" href="class____hash_1_1elementlist.html#824e550d702bb5bdd2a4b076947b3af6">00205</a>                 T &amp;<a class="code" href="class____hash_1_1elementlist.html#824e550d702bb5bdd2a4b076947b3af6">back</a>() {<a name="l00206"></a>00206 <span class="preprocessor">                        #ifdef DEBUG_AHASH</span><a name="l00207"></a>00207 <span class="preprocessor"></span>                                assert(<a class="code" href="class____hash_1_1elementlist.html#1b94c068da4cad8afd790b4ac442a3cf">m_ptail</a> != NULL &amp;&amp; <a class="code" href="class____hash_1_1elementlist.html#50ab5c88a4d5f2bf4e23f4a84a1a8978">m_plist</a> != NULL);assert(<a class="code" href="class____hash_1_1elementlist.html#50ab5c88a4d5f2bf4e23f4a84a1a8978">m_plist</a>-&gt;<a class="code" href="class____hash_1_1listelement.html#f184f68466d02869326d76d4fbdf3a8c">CheckNextAndPrev</a>());assert(SizeCorrect());<a name="l00208"></a>00208 <span class="preprocessor">                        #endif</span><a name="l00209"></a>00209 <span class="preprocessor"></span>                        <span class="keywordflow">return</span> <a class="code" href="class____hash_1_1elementlist.html#1b94c068da4cad8afd790b4ac442a3cf">m_ptail</a>-&gt;<a class="code" href="class____hash_1_1listelement.html#446b37fa68f6e5d2077a279c5514e019">m_element</a>;<a name="l00210"></a>00210                 }<a name="l00212"></a><a class="code" href="class____hash_1_1elementlist.html#e71e2614471fa48b6cba9b6f19481377">00212</a>                 <span class="keyword">const</span> T &amp;<a class="code" href="class____hash_1_1elementlist.html#824e550d702bb5bdd2a4b076947b3af6">back</a>()<span class="keyword"> const </span>{<a name="l00213"></a>00213 <span class="preprocessor">                        #ifdef DEBUG_AHASH</span>

⌨️ 快捷键说明

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