📄 ____hash_8h-source.html
字号:
<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 &<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 &<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>-><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>-><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 && 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>-><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>-><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>-><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>-><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> &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 &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> &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>-><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>-><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 &<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 && <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>-><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>-><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 &<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 + -