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

📄 fg__list_8h-source.html

📁 《道法自然》书的源码FishGUI,一个跨平台的界面库
💻 HTML
📖 第 1 页 / 共 4 页
字号:
00686     }00687 00688     <span class="comment">//##ModelId=3FD885070141</span><a name="l00693"></a><a class="code" href="classFG__BList.html#a3">00693</a> <span class="comment"></span>    forward_iterator <a class="code" href="classFG__BList.html#a3">First</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_pFirst; }00694     00695     <span class="comment">//##ModelId=3FD885070142</span><a name="l00700"></a><a class="code" href="classFG__BList.html#a4">00700</a> <span class="comment"></span>    back_iterator <a class="code" href="classFG__BList.html#a4">Last</a>()     <span class="keyword">const</span> { <span class="keywordflow">return</span> m_pLast; }00701 00709     <span class="keyword">template</span> &lt;<span class="keyword">class</span> ITERATOR&gt;<a name="l00710"></a><a class="code" href="classFG__BList.html#a5">00710</a>     <span class="keywordtype">bool</span> <a class="code" href="classFG__BList.html#a5">Remove</a>(<span class="keyword">const</span> ITERATOR i) { <span class="keywordflow">return</span> <a class="code" href="classFG__BList.html#a5">Remove</a>((item *)i); }00711 00712     <span class="comment">//##ModelId=3FD88507014B</span><a name="l00720"></a><a class="code" href="classFG__BList.html#a6">00720</a> <span class="comment"></span>    <span class="keywordtype">bool</span> <a class="code" href="classFG__BList.html#a6">Add</a>(item * <span class="keyword">const</span> pItem)00721     {00722         <span class="keywordflow">if</span> (! m_pFirst &amp;&amp; ! m_pLast)00723         {00724             <span class="comment">// 容器为空</span>00725             m_pFirst = m_pLast = <span class="keyword">new</span> <a class="code" href="classFG__BList.html#w0">node</a>(pItem);00726         }00727         <span class="keywordflow">else</span> <span class="keywordflow">if</span> (m_pFirst &amp;&amp; m_pLast)00728         {00729             <span class="comment">// 容器不为空,调整链表指针</span>00730             node * pNode = <span class="keyword">new</span> <a class="code" href="classFG__BList.html#w0">node</a>(pItem);00731             pNode-&gt;m_pPrev = m_pLast;00732             m_pLast-&gt;m_pNext = pNode;00733             m_pLast = pNode;00734         }00735         <span class="keywordflow">else</span>00736         {00737             <span class="comment">// 不可能发生的情况</span>00738             <span class="keywordflow">return</span> <span class="keyword">false</span>;00739         }00740         <span class="keywordflow">return</span> <span class="keyword">true</span>;00741     }00742 00743     <span class="comment">//##ModelId=3FD885070160</span><a name="l00752"></a><a class="code" href="classFG__BList.html#a7">00752</a> <span class="comment"></span>    <span class="keywordtype">bool</span> <a class="code" href="classFG__BList.html#a5">Remove</a>(item * <span class="keyword">const</span> pItem)00753     {00754         node * pNode = m_pLast;00755 00756         <span class="keywordflow">while</span> (pNode)00757         {00758             <span class="keywordflow">if</span> (pNode-&gt;m_pItem == pItem)00759             {00760                 <span class="comment">// 调整链表指针</span>00761                 node * pPrev = pNode-&gt;m_pPrev;00762                 node * pNext = pNode-&gt;m_pNext;00763 00764                 <span class="keywordflow">if</span> (pPrev)00765                     pPrev-&gt;m_pNext = pNext;00766                 <span class="keywordflow">else</span>00767                     m_pFirst = pNext;00768 00769                 <span class="keywordflow">if</span> (pNext)00770                     pNext-&gt;m_pPrev = pPrev;00771                 <span class="keywordflow">else</span>00772                     m_pLast = pPrev;00773 00774                 <span class="keyword">delete</span> pNode;00775                 <span class="keywordflow">return</span> <span class="keyword">true</span>;00776             }00777             <span class="keywordflow">else</span>00778             {00779                 pNode = pNode-&gt;m_pPrev;00780             }00781         }00782         <span class="keywordflow">return</span> <span class="keyword">false</span>;00783     }00784 00785     <span class="comment">//##ModelId=3FD885070174</span><a name="l00792"></a><a class="code" href="classFG__BList.html#a8">00792</a> <span class="comment"></span>    <span class="keywordtype">bool</span> <a class="code" href="classFG__BList.html#a8">RemoveAll</a>()00793     {00794         node * pNext, * pNode = m_pFirst;00795 00796         <span class="keywordflow">while</span> (pNode)00797         {00798             pNext = pNode-&gt;m_pNext;00799             <span class="keyword">delete</span> pNode;00800             pNode = pNext;00801         }00802         m_pFirst = m_pLast = <a class="code" href="group__Utility.html#ga11">NULL</a>;00803         <span class="keywordflow">return</span> <span class="keyword">true</span>;00804     }00805 00806 00807 <span class="keyword">private</span>:00808     <span class="comment">//##ModelId=3FD8850700F2</span><a name="l00809"></a><a class="code" href="classFG__BList.html#r0">00809</a>     node * m_pFirst;    00810     <span class="comment">//##ModelId=3FD885070106</span><a name="l00811"></a><a class="code" href="classFG__BList.html#r1">00811</a>     node * m_pLast;     00812 };00813 00822 <span class="keyword">template</span> &lt;<span class="keyword">class</span> ITERATOR, <span class="keyword">class</span> ITEM&gt;<a name="l00823"></a><a class="code" href="group__Utility.html#ga9">00823</a> <span class="keywordtype">bool</span> <a class="code" href="group__Utility.html#ga9">FG_ListFind</a>(ITERATOR &amp; i, <span class="keyword">const</span> ITEM * pItem)00824 {00825     <span class="keywordflow">for</span> (; ! i.IsDone(); ++ i)00826     {00827         <span class="keywordflow">if</span> (i == pItem)00828             <span class="keywordflow">return</span> <span class="keyword">true</span>;00829     }00830     <span class="keywordflow">return</span> <span class="keyword">false</span>;00831 }00832 00833 <span class="comment">//##ModelId=3FD88506033F</span>00840 <span class="comment"></span><span class="keyword">template</span> &lt;<span class="keyword">class</span> ITEM&gt;<a name="l00841"></a><a class="code" href="classFG__ListCheck.html">00841</a> <span class="keyword">class </span><a class="code" href="classFG__ListCheck.html">FG_ListCheck</a>00842 {00843 <span class="keyword">public</span>:00844     <span class="comment">//##ModelId=3FD885070372</span>00853 <span class="comment"></span>    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classFG__ListCheck.html#a0">FindIt</a>(<span class="keyword">const</span> ITEM * pItem) = 0;00854 };00855 00865 <span class="keyword">template</span> &lt;<span class="keyword">class</span> ITERATOR, <span class="keyword">class</span> ITEM&gt;<a name="l00866"></a><a class="code" href="group__Utility.html#ga10">00866</a> <span class="keywordtype">bool</span> <a class="code" href="group__Utility.html#ga10">FG_ListFind_If</a>(ITERATOR &amp; i, <a class="code" href="classFG__ListCheck.html">FG_ListCheck&lt;ITEM&gt;</a> &amp; check)00867 {00868     <span class="keywordflow">for</span> (; ! i.IsDone(); ++ i)00869     {00870         <span class="keywordflow">if</span> (check.<a class="code" href="classFG__ListCheck.html#a0">FindIt</a>(i))00871             <span class="keywordflow">return</span> <span class="keyword">true</span>;00872     }00873     <span class="keywordflow">return</span> <span class="keyword">false</span>;00874 }00875 00876 <span class="preprocessor">#endif  </span><span class="comment">/* _FG_LIST_H_ */</span>00877 </pre></div><hr><center>由 DoxyGen 1.3.6 于 Wed Jun 9 22:34:40 2004 生成<br>版权所有 (C) 2003,2004 王咏武</body></html>

⌨️ 快捷键说明

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