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

📄 lists_8h-source.html

📁 pwlib开发文档
💻 HTML
📖 第 1 页 / 共 4 页
字号:
00213 00222     <span class="keyword">virtual</span> PINDEX <a class="code" href="classPAbstractList.html#z175_0">Append</a>(00223       <a class="code" href="classPObject.html">PObject</a> * obj   00224     );00225 00238     <span class="keyword">virtual</span> PINDEX <a class="code" href="classPAbstractList.html#z175_1">Insert</a>(00239       <span class="keyword">const</span> <a class="code" href="classPObject.html">PObject</a> &amp; before,   00240       <a class="code" href="classPObject.html">PObject</a> * obj             00241     );00242 00250     <span class="keyword">virtual</span> PINDEX <a class="code" href="classPAbstractList.html#z175_2">InsertAt</a>(00251       PINDEX index,   00252       <a class="code" href="classPObject.html">PObject</a> * obj   00253     );00254 00261     <span class="keyword">virtual</span> BOOL <a class="code" href="classPAbstractList.html#z175_3">Remove</a>(00262       <span class="keyword">const</span> <a class="code" href="classPObject.html">PObject</a> * obj   00263     );00264 00274     <span class="keyword">virtual</span> <a class="code" href="classPObject.html">PObject</a> * <a class="code" href="classPAbstractList.html#z175_4">RemoveAt</a>(00275       PINDEX index   00276     );00277 00289     <span class="keyword">virtual</span> BOOL <a class="code" href="classPAbstractList.html#z175_5">SetAt</a>(00290       PINDEX index,   00291       <a class="code" href="classPObject.html">PObject</a> * val   00292     );00293     00304     <span class="keyword">virtual</span> BOOL <a class="code" href="classPAbstractList.html#z175_6">ReplaceAt</a>(00305       PINDEX index,   00306       <a class="code" href="classPObject.html">PObject</a> * val   00307     );00308 00319     <span class="keyword">virtual</span> <a class="code" href="classPObject.html">PObject</a> * <a class="code" href="classPAbstractList.html#z175_7">GetAt</a>(00320       PINDEX index  <span class="comment">// Index position in the collection of the object.</span>00321     ) <span class="keyword">const</span>;00322 00330     <span class="keyword">virtual</span> PINDEX <a class="code" href="classPAbstractList.html#z175_8">GetObjectsIndex</a>(00331       <span class="keyword">const</span> <a class="code" href="classPObject.html">PObject</a> * obj  00332     ) <span class="keyword">const</span>;00333 00342     <span class="keyword">virtual</span> PINDEX <a class="code" href="classPAbstractList.html#z175_9">GetValuesIndex</a>(00343       <span class="keyword">const</span> <a class="code" href="classPObject.html">PObject</a> &amp; obj  00344     ) <span class="keyword">const</span>;00346 00347 00348   <span class="keyword">protected</span>:00359     <a class="code" href="object_8h.html#a2">PINLINE</a> <a class="code" href="classPObject.html">PObject</a> &amp; <a class="code" href="classPAbstractList.html#b0">GetReferenceAt</a>(00360       PINDEX index  00361     ) <span class="keyword">const</span>;00362 00372     BOOL <a class="code" href="classPAbstractList.html#b1">SetCurrent</a>(00373       PINDEX index  00374     ) <span class="keyword">const</span>;00375 <a name="l00376"></a><a class="code" href="classPAbstractList_1_1Element.html">00376</a>     <span class="keyword">class </span><a class="code" href="classPAbstractList_1_1Element.html">Element</a> {00377       <span class="keyword">public</span>:<a name="l00378"></a><a class="code" href="classPAbstractList_1_1Element.html#l0">00378</a>         <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classPAbstractList_1_1Info.html">Info</a>;00379         <a class="code" href="classPAbstractList_1_1Element.html#a0">Element</a>(<a class="code" href="classPObject.html">PObject</a> * theData);<a name="l00380"></a><a class="code" href="classPAbstractList_1_1Element.html#m0">00380</a>         <a class="code" href="classPAbstractList_1_1Element.html">Element</a> * <a class="code" href="classPAbstractList_1_1Element.html#m0">prev</a>;<a name="l00381"></a><a class="code" href="classPAbstractList_1_1Element.html#m1">00381</a>         <a class="code" href="classPAbstractList_1_1Element.html">Element</a> * <a class="code" href="classPAbstractList_1_1Element.html#m1">next</a>;<a name="l00382"></a><a class="code" href="classPAbstractList_1_1Element.html#m2">00382</a>         <a class="code" href="classPObject.html">PObject</a> * <a class="code" href="classPAbstractList_1_1Element.html#m2">data</a>;00383     };00384 <a name="l00385"></a><a class="code" href="classPAbstractList_1_1Info.html">00385</a>     <span class="keyword">class </span><a class="code" href="classPAbstractList_1_1Info.html">Info</a> {00386       <span class="keyword">public</span>:<a name="l00387"></a><a class="code" href="classPAbstractList_1_1Info.html#a0">00387</a>         <a class="code" href="classPAbstractList_1_1Info.html#a0">Info</a>() { <a class="code" href="classPAbstractList_1_1Info.html#m0">head</a> = <a class="code" href="classPAbstractList_1_1Info.html#m1">tail</a> = <a class="code" href="classPAbstractList_1_1Info.html#m2">lastElement</a> = NULL; }<a name="l00388"></a><a class="code" href="classPAbstractList_1_1Info.html#m0">00388</a>         <a class="code" href="classPAbstractList_1_1Element.html">Element</a> * <a class="code" href="classPAbstractList_1_1Info.html#m0">head</a>;<a name="l00389"></a><a class="code" href="classPAbstractList_1_1Info.html#m1">00389</a>         <a class="code" href="classPAbstractList_1_1Element.html">Element</a> * <a class="code" href="classPAbstractList_1_1Info.html#m1">tail</a>;<a name="l00390"></a><a class="code" href="classPAbstractList_1_1Info.html#m2">00390</a>         <a class="code" href="classPAbstractList_1_1Element.html">Element</a> * <a class="code" href="classPAbstractList_1_1Info.html#m2">lastElement</a>;<a name="l00391"></a><a class="code" href="classPAbstractList_1_1Info.html#m3">00391</a>         PINDEX    <a class="code" href="classPAbstractList_1_1Info.html#m3">lastIndex</a>;00392     } * <a class="code" href="classPAbstractList.html#n0">info</a>;00393 };00394 00395 00396 <span class="preprocessor">#ifdef PHAS_TEMPLATES</span>00397 <span class="preprocessor"></span>00404 <span class="keyword">template</span> &lt;<span class="keyword">class</span> T&gt; <span class="keyword">class </span>PList : <span class="keyword">public</span> <a class="code" href="classPAbstractList.html">PAbstractList</a>00405 {00406   <a class="code" href="object_8h.html#a27">PCLASSINFO</a>(PList, <a class="code" href="classPAbstractList.html">PAbstractList</a>);00407 00408   <span class="keyword">public</span>:00416     PList()00417       : <a class="code" href="classPAbstractList.html#z171_0">PAbstractList</a>() { }00419 00425     <span class="keyword">virtual</span> <a class="code" href="classPObject.html">PObject</a> * <a class="code" href="classPObject.html#z203_0">Clone</a>()<span class="keyword"> const</span>00426 <span class="keyword">      </span>{ <span class="keywordflow">return</span> <a class="code" href="object_8h.html#a18">PNEW</a> PList(0, <span class="keyword">this</span>); }00428 00442     T &amp; operator[](PINDEX index)<span class="keyword"> const</span>00443 <span class="keyword">      </span>{ <span class="keywordflow">return</span> (T &amp;)<a class="code" href="classPAbstractList.html#b0">GetReferenceAt</a>(index); }00445 00446   <span class="keyword">protected</span>:00447     PList(<span class="keywordtype">int</span> dummy, <span class="keyword">const</span> PList * c)00448       : <a class="code" href="classPAbstractList.html">PAbstractList</a>(dummy, c) { }00449 };00450 00451 00463 <span class="preprocessor">#define PLIST(cls, T) typedef PList&lt;T&gt; cls</span>00464 <span class="preprocessor"></span>00476 <span class="preprocessor">#define PDECLARE_LIST(cls, T) \</span>00477 <span class="preprocessor">  PLIST(cls##_PTemplate, T); \</span>00478 <span class="preprocessor">  PDECLARE_CLASS(cls, PList&lt;T&gt;) \</span>00479 <span class="preprocessor">  protected: \</span>00480 <span class="preprocessor">    cls(int dummy, const cls * c) \</span>00481 <span class="preprocessor">      : PList&lt;T&gt;(dummy, c) { } \</span>00482 <span class="preprocessor">  public: \</span>00483 <span class="preprocessor">    cls() \</span>00484 <span class="preprocessor">      : PList&lt;T&gt;() { } \</span>00485 <span class="preprocessor">    virtual PObject * Clone() const \</span>00486 <span class="preprocessor">      { return PNEW cls(0, this); } \</span>00487 <span class="preprocessor"></span>00488 <span class="preprocessor"></span>00501 <span class="keyword">template</span> &lt;<span class="keyword">class</span> T&gt; <span class="keyword">class </span>PQueue : <span class="keyword">public</span> <a class="code" href="classPAbstractList.html">PAbstractList</a>00502 {00503   <a class="code" href="object_8h.html#a27">PCLASSINFO</a>(PQueue, <a class="code" href="classPAbstractList.html">PAbstractList</a>);00504 00505   <span class="keyword">public</span>:00514     PQueue()00515       : <a class="code" href="classPAbstractList.html">PAbstractList</a>() { <a class="code" href="classPCollection.html#z75_11">DisallowDeleteObjects</a>(); }00517 00523     <span class="keyword">virtual</span> <a class="code" href="classPObject.html">PObject</a> * <a class="code" href="classPObject.html#z203_0">Clone</a>()<span class="keyword"> const</span>00524 <span class="keyword">      </span>{ <span class="keywordflow">return</span> <a class="code" href="object_8h.html#a18">PNEW</a> PQueue(0, <span class="keyword">this</span>); }00526 00532     <span class="keyword">virtual</span> <span class="keywordtype">void</span> Enqueue(00533       T * obj   00534     ) { <a class="code" href="classPAbstractList.html#z175_0">PAbstractList::Append</a>(obj); }00540     <span class="keyword">virtual</span> T * Dequeue()00541       { <span class="keywordflow">if</span> (<a class="code" href="classPContainer.html#z69_0">GetSize</a>() == 0) <span class="keywordflow">return</span> NULL; <span class="keywordflow">else</span> <span class="keywordflow">return</span> (T *)<a class="code" href="classPAbstractList.html#z175_4">PAbstractList::RemoveAt</a>(0);}00543 00544   <span class="keyword">protected</span>:00545     PQueue(<span class="keywordtype">int</span> dummy, <span class="keyword">const</span> PQueue * c)00546       : <a class="code" href="classPAbstractList.html">PAbstractList</a>(dummy, c)00547       { reference-&gt;deleteObjects = c-&gt;reference-&gt;deleteObjects; }00548 };00549 00550 00563 <span class="preprocessor">#define PQUEUE(cls, T) typedef PQueue&lt;T&gt; cls</span>00564 <span class="preprocessor"></span>00565 00578 <span class="preprocessor">#define PDECLARE_QUEUE(cls, T) \</span>00579 <span class="preprocessor">  PQUEUE(cls##_PTemplate, T); \</span>00580 <span class="preprocessor">  PDECLARE_CLASS(cls, cls##_PTemplate) \</span>00581 <span class="preprocessor">  protected: \</span>00582 <span class="preprocessor">    cls(int dummy, const cls * c) \</span>00583 <span class="preprocessor">      : cls##_PTemplate(dummy, c) { } \</span>00584 <span class="preprocessor">  public: \</span>00585 <span class="preprocessor">    cls() \</span>00586 <span class="preprocessor">      : cls##_PTemplate() { } \</span>00587 <span class="preprocessor">    virtual PObject * Clone() const \</span>00588 <span class="preprocessor">      { return PNEW cls(0, this); } \</span>00589 <span class="preprocessor"></span>00590 <span class="preprocessor"></span>00603 <span class="keyword">template</span> &lt;<span class="keyword">class</span> T&gt; <span class="keyword">class </span>PStack : <span class="keyword">public</span> <a class="code" href="classPAbstractList.html">PAbstractList</a>00604 {

⌨️ 快捷键说明

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